lh 2 месяцев назад
Родитель
Сommit
4d66c3e659
1 измененных файлов с 15 добавлено и 7 удалено
  1. 15 7
      app/Services/Anime/AnimeService.php

+ 15 - 7
app/Services/Anime/AnimeService.php

@@ -2292,13 +2292,21 @@ class AnimeService
 
             // 如果有全局更新,获取该角色的所有分镜数据并检查是否有变化
             if (!empty($global_update_data)) {
-                if (!$target_voice_actor) Utils::throwError('20003:角色异常');
-
-                $affected_segments = DB::table('mp_episode_segments')
-                    ->where('episode_id', $episode_id)
-                    ->where('voice_actor', $target_voice_actor)
-                    ->select('segment_id', 'audio_url', 'voice_actor', 'dialogue', 'voice_type', 'voice_name', 'voice_audio_url', 'emotion', 'emotion_type', 'gender', 'speed_ratio', 'loudness_ratio', 'emotion_scale', 'pitch')
-                    ->get();
+                // 如果角色不存在,则只更新当前分镜
+                if (!$target_voice_actor) {
+                    // 只处理当前分镜
+                    $affected_segments = DB::table('mp_episode_segments')
+                        ->where('segment_id', $segment_id)
+                        ->select('segment_id', 'audio_url', 'voice_actor', 'dialogue', 'voice_type', 'voice_name', 'voice_audio_url', 'emotion', 'emotion_type', 'gender', 'speed_ratio', 'loudness_ratio', 'emotion_scale', 'pitch')
+                        ->get();
+                } else {
+                    // 获取该角色的所有分镜
+                    $affected_segments = DB::table('mp_episode_segments')
+                        ->where('episode_id', $episode_id)
+                        ->where('voice_actor', $target_voice_actor)
+                        ->select('segment_id', 'audio_url', 'voice_actor', 'dialogue', 'voice_type', 'voice_name', 'voice_audio_url', 'emotion', 'emotion_type', 'gender', 'speed_ratio', 'loudness_ratio', 'emotion_scale', 'pitch')
+                        ->get();
+                }
                 
                 foreach ($affected_segments as $seg) {
                     $seg = (array)$seg;