lh 2 ماه پیش
والد
کامیت
1369fe2cce
2فایلهای تغییر یافته به همراه42 افزوده شده و 12 حذف شده
  1. 30 12
      app/Http/Controllers/Anime/AnimeController.php
  2. 12 0
      app/Services/AIGeneration/AIVideoGenerationService.php

+ 30 - 12
app/Http/Controllers/Anime/AnimeController.php

@@ -455,14 +455,23 @@ class AnimeController extends BaseController
                                     $segmentId = $segment->segment_id;
                                     
                                     // 更新分镜表
+                                    $segmentUpdateData = [
+                                        'video_url' => $statusResult['result_url'],
+                                        'video_task_status' => '已完成',
+                                        'last_frame_url' => $statusResult['last_frame_url'] ?? '',
+                                        'updated_at' => $now
+                                    ];
+                                    
+                                    // 只有当video_duration存在且大于0时才更新
+                                    if (isset($statusResult['video_duration']) && $statusResult['video_duration'] > 0) {
+                                        $segmentUpdateData['video_duration'] = $statusResult['video_duration'];
+                                        $segmentUpdateData['video_time_point_start'] = 0;
+                                        $segmentUpdateData['video_time_point_end'] = $statusResult['video_duration'];
+                                    }
+                                    
                                     $updateResult = DB::table('mp_episode_segments')
                                         ->where('segment_id', $segmentId)
-                                        ->update([
-                                            'video_url' => $statusResult['result_url'],
-                                            'video_task_status' => '已完成',
-                                            'last_frame_url' => $statusResult['last_frame_url'] ?? '',
-                                            'updated_at' => $now
-                                        ]);
+                                        ->update($segmentUpdateData);
                                     
                                     if (!$updateResult) {
                                         Utils::throwError('20003:更新分镜表失败');
@@ -863,14 +872,23 @@ class AnimeController extends BaseController
                                         
                                         $now = date('Y-m-d H:i:s');
                                         // 更新分镜表
+                                        $segmentUpdateData = [
+                                            'video_url' => $statusResult['result_url'],
+                                            'video_task_status' => '已完成',
+                                            'last_frame_url' => $statusResult['last_frame_url'] ?? '',
+                                            'updated_at' => $now
+                                        ];
+                                        
+                                        // 只有当video_duration存在且大于0时才更新
+                                        if (isset($statusResult['video_duration']) && $statusResult['video_duration'] > 0) {
+                                            $segmentUpdateData['video_duration'] = $statusResult['video_duration'];
+                                            $segmentUpdateData['video_time_point_start'] = 0;
+                                            $segmentUpdateData['video_time_point_end'] = $statusResult['video_duration'];
+                                        }
+                                        
                                         $updateResult = DB::table('mp_episode_segments')
                                             ->where('segment_id', $segmentId)
-                                            ->update([
-                                                'video_url' => $statusResult['result_url'],
-                                                'video_task_status' => '已完成',
-                                                'last_frame_url' => $statusResult['last_frame_url'] ?? '',
-                                                'updated_at' => $now
-                                            ]);
+                                            ->update($segmentUpdateData);
                                         
                                         if (!$updateResult) {
                                             Utils::throwError('20003:更新分镜表失败');

+ 12 - 0
app/Services/AIGeneration/AIVideoGenerationService.php

@@ -258,6 +258,8 @@ class AIVideoGenerationService
                 // 只有当video_duration > 0时才添加到返回数据中
                 if ($video_duration > 0) {
                     $returnData['video_duration'] = $video_duration;
+                    $returnData['video_time_point_start'] = 0;
+                    $returnData['video_time_point_end'] = $video_duration;
                 }
                 
                 $returnData['status'] = 'success';
@@ -337,6 +339,8 @@ class AIVideoGenerationService
                     // 只有当video_duration存在且大于0时才更新
                     if (isset($statusInfo['video_duration']) && $statusInfo['video_duration'] > 0) {
                         $segmentUpdateData['video_duration'] = $statusInfo['video_duration'];
+                        $segmentUpdateData['video_time_point_start'] = 0;
+                        $segmentUpdateData['video_time_point_end'] = $statusInfo['video_duration'];
                     }
                     
                     // 更新分镜表
@@ -591,6 +595,8 @@ class AIVideoGenerationService
                     // 只有当video_duration存在且大于0时才更新
                     if (isset($statusInfo['video_duration']) && $statusInfo['video_duration'] > 0) {
                         $segmentUpdateData['video_duration'] = $statusInfo['video_duration'];
+                        $segmentUpdateData['video_time_point_start'] = 0;
+                        $segmentUpdateData['video_time_point_end'] = $statusInfo['video_duration'];
                     }
                     
                     // 更新分镜表
@@ -749,6 +755,8 @@ class AIVideoGenerationService
                 // 只有当video_duration > 0时才添加到更新数据中
                 if ($video_duration > 0) {
                     $updateData['video_duration'] = $video_duration;
+                    $updateData['video_time_point_start'] = 0;
+                    $updateData['video_time_point_end'] = $video_duration;
                 }
                 
                 // 处理尾帧图片(如果启用了 return_last_frame)
@@ -1267,6 +1275,8 @@ class AIVideoGenerationService
                     // 只有当video_duration > 0时才添加到更新数据中
                     if ($video_duration > 0) {
                         $updateData['video_duration'] = $video_duration;
+                        $updateData['video_time_point_start'] = 0;
+                        $updateData['video_time_point_end'] = $video_duration;
                     }
                 }
                 return $updateData;
@@ -1357,6 +1367,8 @@ class AIVideoGenerationService
                     // 只有当video_duration存在且大于0时才更新
                     if (isset($statusInfo['video_duration']) && $statusInfo['video_duration'] > 0) {
                         $segmentUpdateData['video_duration'] = $statusInfo['video_duration'];
+                        $segmentUpdateData['video_time_point_start'] = 0;
+                        $segmentUpdateData['video_time_point_end'] = $statusInfo['video_duration'];
                     }
                     
                     // 更新分镜表