stationTaskChildService=null; } function create(int $amountToCreate):Collection { $stationTasks=collect(); for ($i=0;$i<$amountToCreate;$i++){ $stationTasks->push(StationTask::query()->create(['status'=>'待处理'])); } return $stationTasks; } /** * 两个列表一一对应,每个task注册一组子任务: [task,task...],[[subTask,subTask],[subTask,subTask]....] * @param Collection $tasks * @param Collection $subTaskLists 二维数组,第一维是对应注册的任务 */ function registerSubTasks(Collection $tasks, Collection $subTaskLists) { $this->instant($this->stationTaskChildService,'StationTaskChildService'); $taskChildren_toInsert=collect(); foreach ($subTaskLists as $i=>$subTaskList){ foreach ($subTaskList as $subTask){ $paramToInsert = [ 'station_task_id' => $tasks[$i]['id'], 'station_taskable_type' => get_class($subTask), 'station_taskable_id' => $subTask['id'], ]; $taskChild_existed=$this->stationTaskChildService->get($paramToInsert)->first(); if(!$taskChild_existed) $taskChildren_toInsert->push($paramToInsert); } } $this->stationTaskChildService->insert($taskChildren_toInsert->toArray()); } function markProcessing_byId($stationTaskIds) { StationTask::query() ->whereIn('id',$stationTaskIds) ->update(['status'=>'处理中']); } }