| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- <?php
- namespace App\Transformer\DeepSeek;
- use Illuminate\Support\Facades\DB;
- class DeepSeekTransformer
- {
- // 剧本列表
- public function newBuildScriptList($data): array
- {
- return [
- 'meta' => 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 && in_array(getProp($latestTask, 'status'), ['pending', 'processing'])) {
- $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;
- }
-
- }
|