正在显示
4 个修改的文件
包含
41 行增加
和
6 行删除
| @@ -5,10 +5,12 @@ namespace App\Http\Controllers\Aside\Task; | @@ -5,10 +5,12 @@ namespace App\Http\Controllers\Aside\Task; | ||
| 5 | use App\Http\Controllers\Aside\BaseController; | 5 | use App\Http\Controllers\Aside\BaseController; |
| 6 | use App\Http\Logic\Aside\Task\TaskFollowLogic; | 6 | use App\Http\Logic\Aside\Task\TaskFollowLogic; |
| 7 | use App\Http\Logic\Aside\Task\TaskLogic; | 7 | use App\Http\Logic\Aside\Task\TaskLogic; |
| 8 | +use App\Http\Logic\Aside\Task\TaskOwnerLogic; | ||
| 8 | use App\Http\Requests\Aside\Task\TaskFollowRequest; | 9 | use App\Http\Requests\Aside\Task\TaskFollowRequest; |
| 9 | use App\Http\Requests\Aside\Task\TaskRequest; | 10 | use App\Http\Requests\Aside\Task\TaskRequest; |
| 10 | use App\Models\Task\Task; | 11 | use App\Models\Task\Task; |
| 11 | -use Illuminate\Support\Facades\Request; | 12 | +use App\Models\Task\TaskOwner; |
| 13 | +use Illuminate\Http\Request; | ||
| 12 | use Illuminate\Validation\Rule; | 14 | use Illuminate\Validation\Rule; |
| 13 | 15 | ||
| 14 | 16 | ||
| @@ -26,10 +28,17 @@ class TaskController extends BaseController | @@ -26,10 +28,17 @@ class TaskController extends BaseController | ||
| 26 | { | 28 | { |
| 27 | $map = []; | 29 | $map = []; |
| 28 | if(!empty($this->param['search'])){ | 30 | if(!empty($this->param['search'])){ |
| 29 | - $map[] = ['title', 'like', "%{$this->param['search']}%"]; | 31 | + $map[] = ['content', 'like', "%{$this->param['search']}%"]; |
| 30 | } | 32 | } |
| 33 | + if(!empty($this->param['created_manage_id'])){ | ||
| 34 | + $map[] = ['created_manage_id', $this->param['created_manage_id']]; | ||
| 35 | + } | ||
| 36 | + if(!empty($this->param['owner_manage_id'])){ | ||
| 37 | + $map[] = ['id', 'in', TaskOwner::where('manage_id', $this->param['owner_manage_id'])->pluck('task_id')]; | ||
| 38 | + } | ||
| 39 | + | ||
| 31 | $sort = ['id' => 'desc']; | 40 | $sort = ['id' => 'desc']; |
| 32 | - $data = $logic->getList($map, $sort); | 41 | + $data = $logic->getList($map, $sort, ['id', 'project_id', 'workload', 'priority', 'content', 'attachment', 'status', 'end_at', 'created_manage_id']); |
| 33 | 42 | ||
| 34 | return $this->success($data); | 43 | return $this->success($data); |
| 35 | } | 44 | } |
| @@ -46,6 +55,7 @@ class TaskController extends BaseController | @@ -46,6 +55,7 @@ class TaskController extends BaseController | ||
| 46 | 55 | ||
| 47 | public function save(TaskRequest $request, TaskLogic $logic) | 56 | public function save(TaskRequest $request, TaskLogic $logic) |
| 48 | { | 57 | { |
| 58 | + $this->param['created_manage_id'] = $this->manage->id; | ||
| 49 | $data = $logic->save($this->param); | 59 | $data = $logic->save($this->param); |
| 50 | return $this->success($data); | 60 | return $this->success($data); |
| 51 | } | 61 | } |
| @@ -24,7 +24,8 @@ class TaskFollowLogic extends BaseLogic | @@ -24,7 +24,8 @@ class TaskFollowLogic extends BaseLogic | ||
| 24 | } | 24 | } |
| 25 | 25 | ||
| 26 | public function save($param){ | 26 | public function save($param){ |
| 27 | - $task = $this::getInfo($param['task_id']); | 27 | + $task_logic = new TaskLogic(); |
| 28 | + $task = $task_logic->getCacheInfo($param['task_id']); | ||
| 28 | if(!$task){ | 29 | if(!$task){ |
| 29 | $this->fail('任务不存在'); | 30 | $this->fail('任务不存在'); |
| 30 | } | 31 | } |
| @@ -33,6 +34,11 @@ class TaskFollowLogic extends BaseLogic | @@ -33,6 +34,11 @@ class TaskFollowLogic extends BaseLogic | ||
| 33 | $this->fail('非本人任务,不能添加跟进记录'); | 34 | $this->fail('非本人任务,不能添加跟进记录'); |
| 34 | } | 35 | } |
| 35 | parent::save($param); | 36 | parent::save($param); |
| 37 | + | ||
| 38 | + //清任务缓存 | ||
| 39 | + $task_logic->clearCache($param['task_id']); | ||
| 40 | + | ||
| 41 | + return $this->success(); | ||
| 36 | } | 42 | } |
| 37 | 43 | ||
| 38 | 44 |
| @@ -22,7 +22,7 @@ class TaskOwnerLogic extends BaseLogic | @@ -22,7 +22,7 @@ class TaskOwnerLogic extends BaseLogic | ||
| 22 | 22 | ||
| 23 | public function save($param){ | 23 | public function save($param){ |
| 24 | //获取已分配了的 | 24 | //获取已分配了的 |
| 25 | - $manage_ids = $this->model->where('task_id', $param['task_id'])->pluck('manage_id', 'id'); | 25 | + $manage_ids = $this->model->where('task_id', $param['task_id'])->pluck('manage_id', 'id')->toArray(); |
| 26 | 26 | ||
| 27 | //待删除的 | 27 | //待删除的 |
| 28 | $del_manage_ids = array_diff($manage_ids, $param['manage_ids']); | 28 | $del_manage_ids = array_diff($manage_ids, $param['manage_ids']); |
| @@ -2,6 +2,7 @@ | @@ -2,6 +2,7 @@ | ||
| 2 | 2 | ||
| 3 | namespace App\Models\Task; | 3 | namespace App\Models\Task; |
| 4 | 4 | ||
| 5 | +use App\Http\Logic\Aside\Project\ProjectLogic; | ||
| 5 | use App\Models\Base; | 6 | use App\Models\Base; |
| 6 | use App\Services\Facades\Upload; | 7 | use App\Services\Facades\Upload; |
| 7 | 8 | ||
| @@ -10,6 +11,8 @@ class Task extends Base | @@ -10,6 +11,8 @@ class Task extends Base | ||
| 10 | //设置关联表名 | 11 | //设置关联表名 |
| 11 | protected $table = 'gl_task'; | 12 | protected $table = 'gl_task'; |
| 12 | 13 | ||
| 14 | + protected $appends = ['project_id_text', 'status_text', 'timeout']; | ||
| 15 | + | ||
| 13 | const STATUS_WAIT = 0; | 16 | const STATUS_WAIT = 0; |
| 14 | const STATUS_DONGING = 1; | 17 | const STATUS_DONGING = 1; |
| 15 | const STATUS_DOWN = 2; | 18 | const STATUS_DOWN = 2; |
| @@ -18,11 +21,20 @@ class Task extends Base | @@ -18,11 +21,20 @@ class Task extends Base | ||
| 18 | public static function statusMap(){ | 21 | public static function statusMap(){ |
| 19 | return [ | 22 | return [ |
| 20 | self::STATUS_WAIT => '未开始', | 23 | self::STATUS_WAIT => '未开始', |
| 21 | - self::STATUS_DONGING => '进行中', | 24 | + self::STATUS_DONGING => '进程中', |
| 22 | self::STATUS_DOWN => '已完成', | 25 | self::STATUS_DOWN => '已完成', |
| 23 | ]; | 26 | ]; |
| 24 | } | 27 | } |
| 25 | 28 | ||
| 29 | + public function getProjectIdTextAttribute(){ | ||
| 30 | + $project = ProjectLogic::instance()->getCacheInfo($this->project_id); | ||
| 31 | + return $project['title'] ?? ''; | ||
| 32 | + } | ||
| 33 | + | ||
| 34 | + public function getStatusTextAttribute(){ | ||
| 35 | + return self::statusMap()[$this->status] ?? ''; | ||
| 36 | + } | ||
| 37 | + | ||
| 26 | public function setAttachmentAttribute($value){ | 38 | public function setAttachmentAttribute($value){ |
| 27 | $this->attributes['attachment'] = Upload::url2path($value); | 39 | $this->attributes['attachment'] = Upload::url2path($value); |
| 28 | } | 40 | } |
| @@ -31,6 +43,13 @@ class Task extends Base | @@ -31,6 +43,13 @@ class Task extends Base | ||
| 31 | return Upload::path2url($value); | 43 | return Upload::path2url($value); |
| 32 | } | 44 | } |
| 33 | 45 | ||
| 46 | + public function getTimeoutAttribute(){ | ||
| 47 | + if($this->status != self::STATUS_DOWN && strtotime($this->end_at) < time()){ | ||
| 48 | + return floor((time() - strtotime($this->end_at)) / 60); | ||
| 49 | + } | ||
| 50 | + return 0; | ||
| 51 | + } | ||
| 52 | + | ||
| 34 | public function owner(){ | 53 | public function owner(){ |
| 35 | return $this->hasMany(TaskOwner::class,'task_id','id'); | 54 | return $this->hasMany(TaskOwner::class,'task_id','id'); |
| 36 | 55 |
-
请 注册 或 登录 后发表评论