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

+ 27 - 0
app/Services/Anime/AnimeService.php

@@ -1010,6 +1010,7 @@ class AnimeService
         if (!$segment) Utils::throwError('20003:该分镜不存在');
 
         try {
+            DB::beginTransaction();
             // 准备更新数据
             $update_data = [
                 'updated_at' => date('Y-m-d H:i:s')
@@ -1070,10 +1071,34 @@ class AnimeService
 
             if ($image_url) {
                 $update_data['img_url'] = $image_url;
+
+                // 同时写入一个简单的图片生成任务
+                $pic_task = [
+                    'alias_segment_id'  => $segment_id,
+                    'ref_img_url' => json_encode([]),
+                    'status' => 'success',
+                    'result_url' => json_encode([$image_url], 256),
+                    'model' => '',
+                    'created_at' => date('Y-m-d H:i:s'),
+                    'updated_at' => date('Y-m-d H:i:s'),
+                ];
+
+                DB::table('mp_generate_pic_tasks')->insert($pic_task);
             }
 
             if ($video_url) {
                 $update_data['video_url'] = $video_url;
+
+                // 同时写入一个简单的视频生成任务
+                $video_task = [
+                    'alias_segment_id'  => $segment_id,
+                    'status' => 'success',
+                    'result_url' => $video_url,
+                    'created_at' => date('Y-m-d H:i:s'),
+                    'updated_at' => date('Y-m-d H:i:s'),
+                ];
+
+                DB::table('mp_generate_video_tasks')->insert($video_task);
             }
 
             // 更新分镜信息
@@ -1085,8 +1110,10 @@ class AnimeService
                 Utils::throwError('20003:更新分镜剧本失败');
             }
 
+            DB::commit();
             return true;
         } catch (\Exception $e) {
+            DB::rollBack();
             dLog('anime')->error('更新分镜剧本失败', [
                 'segment_id' => $segment_id,
                 'error' => $e->getMessage()