|
|
@@ -347,6 +347,9 @@ class AIVideoGenerationService
|
|
|
// 更新分镜表
|
|
|
DB::table('mp_episode_segments')->where('segment_id', $segment_id)->update($segmentUpdateData);
|
|
|
|
|
|
+ // 添加视频生成对话记录
|
|
|
+ $this->addVideoGenerationRecords($segment_id, $statusInfo['result_url']);
|
|
|
+
|
|
|
DB::commit();
|
|
|
|
|
|
} catch (\Exception $e) {
|
|
|
@@ -604,6 +607,9 @@ class AIVideoGenerationService
|
|
|
// 更新分镜表
|
|
|
DB::table('mp_episode_segments')->where('segment_id', $segment_id)->update($segmentUpdateData);
|
|
|
|
|
|
+ // 添加视频生成对话记录
|
|
|
+ $this->addVideoGenerationRecords($segment_id, $statusInfo['result_url']);
|
|
|
+
|
|
|
DB::commit();
|
|
|
|
|
|
} catch (\Exception $e) {
|
|
|
@@ -1377,6 +1383,9 @@ class AIVideoGenerationService
|
|
|
// 更新分镜表
|
|
|
DB::table('mp_episode_segments')->where('segment_id', $segment_id)->update($segmentUpdateData);
|
|
|
|
|
|
+ // 添加视频生成对话记录
|
|
|
+ $this->addVideoGenerationRecords($segment_id, $statusInfo['result_url']);
|
|
|
+
|
|
|
DB::commit();
|
|
|
|
|
|
} catch (\Exception $e) {
|
|
|
@@ -1894,5 +1903,72 @@ class AIVideoGenerationService
|
|
|
return $query->orderBy('created_at', 'desc')
|
|
|
->paginate($filters['page_size'] ?? 20);
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 添加视频生成对话记录
|
|
|
+ *
|
|
|
+ * @param int $segmentId 分镜ID
|
|
|
+ * @param string $videoUrl 视频URL
|
|
|
+ * @return void
|
|
|
+ */
|
|
|
+ private function addVideoGenerationRecords($segmentId, $videoUrl)
|
|
|
+ {
|
|
|
+ try {
|
|
|
+ // 获取分镜信息
|
|
|
+ $segment = DB::table('mp_episode_segments')
|
|
|
+ ->where('segment_id', $segmentId)
|
|
|
+ ->select('uid', 'anime_id', 'episode_number', 'tail_frame')
|
|
|
+ ->first();
|
|
|
+
|
|
|
+ if (!$segment) {
|
|
|
+ dLog('generate')->warning('分镜信息不存在,无法添加对话记录', ['segment_id' => $segmentId]);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ $now = date('Y-m-d H:i:s');
|
|
|
+
|
|
|
+ // 保存对话记录
|
|
|
+ $records = [
|
|
|
+ [
|
|
|
+ 'uid' => $segment->uid,
|
|
|
+ 'anime_id' => $segment->anime_id,
|
|
|
+ 'sequence' => $segment->episode_number,
|
|
|
+ 'role' => 'user',
|
|
|
+ 'content' => '图片转视频',
|
|
|
+ 'segment_id' => $segmentId,
|
|
|
+ 'video_url' => '',
|
|
|
+ 'created_at' => $now,
|
|
|
+ 'updated_at' => $now
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ 'uid' => $segment->uid,
|
|
|
+ 'anime_id' => $segment->anime_id,
|
|
|
+ 'sequence' => $segment->episode_number,
|
|
|
+ 'role' => 'assistant',
|
|
|
+ 'content' => $segment->tail_frame ?: '',
|
|
|
+ 'segment_id' => $segmentId,
|
|
|
+ 'video_url' => $videoUrl,
|
|
|
+ 'created_at' => $now,
|
|
|
+ 'updated_at' => $now
|
|
|
+ ]
|
|
|
+ ];
|
|
|
+
|
|
|
+ DB::table('mp_anime_records')->insert($records);
|
|
|
+
|
|
|
+ dLog('generate')->info('视频生成对话记录添加成功', [
|
|
|
+ 'segment_id' => $segmentId,
|
|
|
+ 'video_url' => $videoUrl,
|
|
|
+ 'uid' => $segment->uid,
|
|
|
+ 'anime_id' => $segment->anime_id
|
|
|
+ ]);
|
|
|
+
|
|
|
+ } catch (\Exception $e) {
|
|
|
+ dLog('generate')->error('添加视频生成对话记录失败: ' . $e->getMessage(), [
|
|
|
+ 'segment_id' => $segmentId,
|
|
|
+ 'video_url' => $videoUrl,
|
|
|
+ 'error' => $e->getMessage()
|
|
|
+ ]);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|