|
...
|
...
|
@@ -5,6 +5,7 @@ namespace App\Http\Logic\Aside\Task; |
|
|
|
|
|
|
|
use App\Helper\Arr;
|
|
|
|
use App\Http\Logic\Aside\BaseLogic;
|
|
|
|
use App\Http\Logic\Aside\LoginLogic;
|
|
|
|
use App\Models\Task\Task;
|
|
|
|
use App\Models\Task\TaskOwner;
|
|
|
|
use Illuminate\Support\Facades\DB;
|
|
...
|
...
|
@@ -24,6 +25,12 @@ class TaskLogic extends BaseLogic |
|
|
|
$this->model = new Task();
|
|
|
|
}
|
|
|
|
|
|
|
|
public function getInfo($id)
|
|
|
|
{
|
|
|
|
parent::setWith(['owner', 'follow']); //删除缓存要添加带with的cache_key
|
|
|
|
return parent::getInfo($id);
|
|
|
|
}
|
|
|
|
|
|
|
|
public function save($param){
|
|
|
|
|
|
|
|
DB::beginTransaction();
|
|
...
|
...
|
@@ -56,13 +63,44 @@ class TaskLogic extends BaseLogic |
|
|
|
* @author zbj
|
|
|
|
* @date 2023/4/27
|
|
|
|
*/
|
|
|
|
public function status($param){
|
|
|
|
$data = [
|
|
|
|
'id' => $param['id'],
|
|
|
|
'status' => $param['status'],
|
|
|
|
public function status($id, $status){
|
|
|
|
$task = $this::getInfo($id);
|
|
|
|
if(!$task){
|
|
|
|
$this->fail('任务不存在');
|
|
|
|
}
|
|
|
|
$manage_ids = Arr::pluck($task['owner'], 'manage_id', 'id');
|
|
|
|
if(!in_array(LoginLogic::manage('id'), $manage_ids)){
|
|
|
|
$this->fail('非本人任务,不能更新进程');
|
|
|
|
}
|
|
|
|
$task_data = [
|
|
|
|
'id' => $id,
|
|
|
|
'status' => $status,
|
|
|
|
];
|
|
|
|
|
|
|
|
parent::save($data);
|
|
|
|
//个人任务
|
|
|
|
$task_owner_id = array_search(LoginLogic::manage('id'), $manage_ids);
|
|
|
|
(new TaskOwnerLogic())->status($task_owner_id, $status);
|
|
|
|
|
|
|
|
//一个人开始,任务开始,所有人完成,任务才完成
|
|
|
|
$owner_status = TaskOwner::where('task_id', $id)->pluck('status')->toArray();
|
|
|
|
//所有都完成
|
|
|
|
if(array_sum($owner_status) == count($owner_status) * TaskOwner::STATUS_DOWN){
|
|
|
|
$task_data['status'] = Task::STATUS_DOWN;
|
|
|
|
$task_data['done_at'] = date('Y-m-d H:i:s');
|
|
|
|
}else{
|
|
|
|
$task_data['status'] = Task::STATUS_DONGING;
|
|
|
|
$task_data['doing_at'] = date('Y-m-d H:i:s');
|
|
|
|
}
|
|
|
|
|
|
|
|
parent::save($task_data);
|
|
|
|
return $this->success();
|
|
|
|
}
|
|
|
|
|
|
|
|
public function clearCache($id)
|
|
|
|
{
|
|
|
|
parent::clearCache($id);
|
|
|
|
|
|
|
|
parent::setWith(['owner', 'follow']);
|
|
|
|
parent::clearCache($id);
|
|
|
|
}
|
|
|
|
} |
...
|
...
|
|