taskCenterService = $taskCenterService; } /** * 查询任务详情 * * @param Request $request * @return mixed */ public function detail(Request $request) { $taskId = (int)$request->input('task_id', 0); if ($taskId <= 0) { Utils::throwError('1002:task_id不能为空'); } $task = $this->taskCenterService->getTaskDetail($taskId); if (!$task) { Utils::throwError('20003:任务不存在'); } return $this->success([ 'task_id' => $task->id, 'task_type' => $task->task_type, 'title' => $task->title, 'status' => $task->status, 'result' => $this->parseResult($task->result) ?? '', 'error_message' => $task->error_message ?? '', 'ref_task_id'=> $task->ref_task_id, 'created_at' => $task->created_at ? $task->created_at->format('Y-m-d H:i:s') : '', 'updated_at' => $task->updated_at ? $task->updated_at->format('Y-m-d H:i:s') : '', ]); } /** * 分页查询任务列表(默认每页20条,按创建时间倒序) * * @param Request $request * @return mixed */ public function taskList(Request $request) { $params = $request->only(['task_id', 'status', 'task_type', 'page', 'page_size']); $tasks = $this->taskCenterService->getTaskList($params); $list = $tasks->map(function ($task) { return [ 'task_id' => $task->id, 'task_type' => $task->task_type, 'title' => $task->title, 'status' => $task->status, 'result' => $this->parseResult($task->result), 'error_message' => $task->error_message, 'ref_task_id' => $task->ref_task_id, 'created_at' => $task->created_at ? $task->created_at->format('Y-m-d H:i:s') : '', 'updated_at' => $task->updated_at ? $task->updated_at->format('Y-m-d H:i:s') : '', ]; }); return $this->success([ 'list' => $list, 'total' => $tasks->total(), 'per_page' => $tasks->perPage(), 'current_page' => $tasks->currentPage(), 'last_page' => $tasks->lastPage(), ]); } /** * 解析结果字段(JSON字符串转换为数组,保持兼容) * * @param mixed $result * @return mixed */ private function parseResult($result) { if (is_string($result) && is_json($result)) { return json_decode($result, true); } return $result; } }