getMeta($data), // 'header' => $data['header'], 'list' => $this->newEachScriptList($data), ]; } private function newEachScriptList($list): array { $result = []; if (empty($list)) return $result; foreach ($list as $item) { $script_id = getProp($item, 'id'); $is_products = getProp($item, 'is_products', 0); // 如果未生成资产,检查是否有正在生成的资产任务 if ((int)$is_products !== 1) { $latestTask = DB::table('mp_script_generate_tasks') ->where('uid', getProp($item, 'user_id')) ->where('script_id', $script_id) ->orderByDesc('id') ->first(); if ($latestTask) { $is_products = 2; // 有生成任务但还没资产保存 } else { $is_products = 0; } } // 获取分集信息 $episode_content = DB::table('mp_script_episode_group')->where('script_id', $script_id)->orderBy('start_episode_number')->orderBy('id')->value('episode_content'); $episode_content = mb_substr($episode_content, 0, 200); $result[] = [ 'user_id' => getProp($item, 'user_id'), 'script_id' => $script_id, 'script_name' => getProp($item, 'script_name'), 'status' => getProp($item, 'status'), 'created_at' => transDate(getProp($item, 'created_at')), 'updated_at' => transDate(getProp($item, 'updated_at')), 'is_products' => $is_products, 'episode_content' => $episode_content, ]; } return $result; } // 剧本资产生成任务列表 public function newBuildScriptGenerateTaskList($data): array { return [ 'meta' => getMeta($data), 'list' => $this->newEachScriptGenerateTaskList($data), ]; } private function newEachScriptGenerateTaskList($list): array { $result = []; if (empty($list)) return $result; foreach ($list as $item) { $result[] = [ 'task_id' => getProp($item, 'id'), 'script_id' => getProp($item, 'script_id'), 'script_name' => getProp($item, 'script_name'), 'sequence' => getProp($item, 'sequence'), 'status' => getProp($item, 'status'), 'error_message' => getProp($item, 'error_message'), 'started_at' => transDate(getProp($item, 'started_at')), 'completed_at' => transDate(getProp($item, 'completed_at')), ]; } return $result; } }