lh 3 miesięcy temu
rodzic
commit
bd561d0215
1 zmienionych plików z 19 dodań i 4 usunięć
  1. 19 4
      app/Console/Anime/AnimeCheckImgUrlCommand.php

+ 19 - 4
app/Console/Anime/AnimeCheckImgUrlCommand.php

@@ -361,8 +361,12 @@ class AnimeCheckImgUrlCommand extends Command
                     $update_data['scenes'] = json_encode($episode_scenes, 256);
                 }
 
+                // 继承URL或创建任务后,将状态改为待执行,等后续检查分集图片成功后再改为成功状态
+                $update_data['generate_status'] = '待执行';
+                $update_data['generate_at'] = date('Y-m-d H:i:s');
+
                 DB::table('mp_anime_episodes')->where('id', $episode_id)->update($update_data);
-                dLog('generate')->info("剧集ID:{$episode_id} 数据已同步更新");
+                dLog('generate')->info("剧集ID:{$episode_id} 数据已同步更新,状态改为待执行");
             }
         }
 
@@ -376,8 +380,8 @@ class AnimeCheckImgUrlCommand extends Command
     private function checkEpisodes() {
         dLog('generate')->info('====================开始检查剧集====================');
 
-        // 获取待执行的剧集数据
-        $data = DB::table('mp_anime_episodes')->where('generate_status', '执行中')->select('id', 'roles', 'scenes')->get();
+        // 获取待执行和执行中的剧集数据
+        $data = DB::table('mp_anime_episodes')->whereIn('generate_status', ['待执行', '执行中'])->select('id', 'roles', 'scenes', 'generate_status')->get();
         
         foreach ($data as $item) {
             $id = getProp($item, 'id');
@@ -385,6 +389,17 @@ class AnimeCheckImgUrlCommand extends Command
             $scenes = json_decode(getProp($item, 'scenes'), true);
             $role_count = count($roles);
             $scene_count = count($scenes);
+            $current_status = getProp($item, 'generate_status');
+
+            // 如果状态是待执行,先改为执行中
+            if ($current_status == '待执行') {
+                DB::table('mp_anime_episodes')->where('id', $id)->update([
+                    'generate_status' => '执行中',
+                    'generate_at' => date('Y-m-d H:i:s'),
+                    'updated_at' => date('Y-m-d H:i:s')
+                ]);
+                dLog('generate')->info("剧集ID:{$id} 状态从待执行改为执行中");
+            }
 
             // 处理角色图片状态
             $role_result = $this->checkEpisodeRoles($id, $roles);
@@ -395,7 +410,7 @@ class AnimeCheckImgUrlCommand extends Command
             if ($role_result['success_count'] == $role_count && $scene_result['success_count'] == $scene_count) {
                 // 更新状态为已完成
                 DB::table('mp_anime_episodes')->where('id', $id)->update(['generate_status' => '已完成', 'updated_at'=>date('Y-m-d H:i:s')]);
-                dLog('generate')->info("剧集ID:{$id} 图片已全部生成完毕");
+                dLog('generate')->info("剧集ID:{$id} 图片已全部生成完毕,状态改为已完成");
             }
         }