lh преди 4 месеца
родител
ревизия
25b0df6c86
променени са 1 файла, в които са добавени 70 реда и са изтрити 0 реда
  1. 70 0
      app/Http/Controllers/Anime/AnimeController.php

+ 70 - 0
app/Http/Controllers/Anime/AnimeController.php

@@ -1540,6 +1540,76 @@ class AnimeController extends BaseController
 
             if ($count == 0) {
                 $completedCount = DB::table('mp_episode_segments')->where('anime_id', $animeId)->where('episode_id', $episodeId)->where('pic_task_id', '<>', '')->where('pic_task_status', '已完成')->count('id');
+
+                // 获取剧集信息
+                $episode = DB::table('mp_anime_episodes')
+                    ->where('anime_id', $animeId)
+                    ->where('id', $episodeId)
+                    ->select('id as episode_id', 'anime_id', 'episode_number', 'title', 'intro', 'art_style', 'roles', 'scenes')
+                    ->first();
+                
+                if ($episode) {
+                    $episode = (array)$episode;
+                    $episode['roles'] = json_decode($episode['roles'], true);
+                    $episode['scenes'] = json_decode($episode['scenes'], true);
+                    
+                    // 获取所有分镜信息
+                    $allSegments = DB::table('mp_episode_segments')
+                        ->where('anime_id', $animeId)
+                        ->where('episode_id', $episodeId)
+                        ->orderBy('segment_number')
+                        ->select('*')
+                        ->get()
+                        ->map(function ($value) {
+                            return (array)$value;
+                        })->toArray();
+                    
+                    // 按照episodeInfo的格式组织数据
+                    $acts = [];
+                    foreach($allSegments as $segment) {
+                        $segmentData = [
+                            'segment_id' => getProp($segment, 'segment_id'),
+                            'segment_number' => getProp($segment, 'segment_number'),
+                            'segment_content' => getProp($segment, 'segment_content'),
+                            'description' => getProp($segment, 'description'),
+                            'composition' => getProp($segment, 'composition'),
+                            'camera_movement' => getProp($segment, 'camera_movement'),
+                            'voice_actor' => getProp($segment, 'voice_actor'),
+                            'dialogue' => getProp($segment, 'dialogue'),
+                            'frame_type' => getProp($segment, 'frame_type'),
+                            'scene' => getProp($segment, 'scene'),
+                            'characters' => getProp($segment, 'characters'),
+                            'tail_frame' => getProp($segment, 'tail_frame'),
+                            'emotion' => getProp($segment, 'emotion'),
+                            'emotion_type' => getProp($segment, 'emotion_type'),
+                            'gender' => getProp($segment, 'gender'),
+                            'speed_ratio' => getProp($segment, 'speed_ratio'),
+                            'loudness_ratio' => getProp($segment, 'loudness_ratio'),
+                            'emotion_scale' => getProp($segment, 'emotion_scale'),
+                            'pitch' => getProp($segment, 'pitch'),
+                            'voice_name' => getProp($segment, 'voice_name'),
+                            'voice_type' => getProp($segment, 'voice_type'),
+                            'voice_audio_url' => getProp($segment, 'voice_audio_url'),
+                            'img_url' => getProp($segment, 'img_url'),
+                            'audio_url' => getProp($segment, 'audio_url'),
+                            'video_url' => getProp($segment, 'video_url'),
+                            'last_frame_url' => getProp($segment, 'last_frame_url'),
+                        ];
+                        
+                        $actNumber = getProp($segment, 'act_number');
+                        if (isset($acts[$actNumber])) {
+                            $acts[$actNumber]['segments'][] = $segmentData;
+                        } else {
+                            $acts[$actNumber] = [
+                                'act_number' => $actNumber,
+                                'act_title' => getProp($segment, 'act_title'),
+                                'segments' => [$segmentData]
+                            ];
+                        }
+                    }
+                    $episode['acts'] = array_values($acts);
+                }
+
                 echo "data: " . json_encode([
                     'type' => 'completed',
                     'data' => [