lh 3 hónapja
szülő
commit
f5bfb8ad18
1 módosított fájl, 16 hozzáadás és 6 törlés
  1. 16 6
      app/Console/Anime/AnimeCheckImgUrlCommand.php

+ 16 - 6
app/Console/Anime/AnimeCheckImgUrlCommand.php

@@ -121,10 +121,6 @@ class AnimeCheckImgUrlCommand extends Command
             $scene_result = $this->checkScenes($id, $scenes);
 
             if ($role_result['success_count'] == $role_count && $scene_result['success_count'] == $scene_count) {
-                // 更新状态为已完成
-                // DB::table('mp_animes')->where('id', $id)->update(['generate_status' => '已完成', 'updated_at'=>date('Y-m-d H:i:s')]);
-                dLog('generate')->info('动漫对话图片已全部生成完毕');
-
                 // 同步更新该动漫对话剧集的所有角色或场景
                 $this->syncRolesAndScenes($id, $role_result['roles'], $scene_result['scenes']);
             }
@@ -236,16 +232,21 @@ class AnimeCheckImgUrlCommand extends Command
                     $role_name = getProp($role, 'role');
                     $role_description = getProp($role, 'description');
                     $role_url = getProp($role, 'url');
+                    $role_task_id = getProp($role, 'task_id');
+                    $role_task_status = getProp($role, 'task_status');
 
                     // 满足三个条件:1.角色名相同 2.描述相同 3.剧集中URL为空且方法中URL不为空
                     if ($episode_role_name == $role_name 
                         && $episode_description == $role_description 
                         && empty($episode_url) 
                         && !empty($role_url)) {
+                        // 只继承 task_id、task_status 和 url,不继承其他创建图片的参数
+                        $episode_role['task_id'] = $role_task_id;
+                        $episode_role['task_status'] = $role_task_status;
                         $episode_role['url'] = $role_url;
                         $roles_updated = true;
                         $url_inherited = true;
-                        dLog('generate')->info("剧集ID:{$episode_id} 角色:{$role_name} URL已更新");
+                        dLog('generate')->info("剧集ID:{$episode_id} 角色:{$role_name} 继承全局数据 (task_id:{$role_task_id}, task_status:{$role_task_status}, url:{$role_url})");
                         break;
                     }
                 }
@@ -299,16 +300,21 @@ class AnimeCheckImgUrlCommand extends Command
                     $scene_name = getProp($scene, 'scene');
                     $scene_description = getProp($scene, 'description');
                     $scene_url = getProp($scene, 'url');
+                    $scene_task_id = getProp($scene, 'task_id');
+                    $scene_task_status = getProp($scene, 'task_status');
 
                     // 满足三个条件:1.场景名相同 2.描述相同 3.剧集中URL为空且方法中URL不为空
                     if ($episode_scene_name == $scene_name 
                         && $episode_description == $scene_description 
                         && empty($episode_url) 
                         && !empty($scene_url)) {
+                        // 只继承 task_id、task_status 和 url,不继承其他创建图片的参数
+                        $episode_scene['task_id'] = $scene_task_id;
+                        $episode_scene['task_status'] = $scene_task_status;
                         $episode_scene['url'] = $scene_url;
                         $scenes_updated = true;
                         $url_inherited = true;
-                        dLog('generate')->info("剧集ID:{$episode_id} 场景:{$scene_name} URL已更新");
+                        dLog('generate')->info("剧集ID:{$episode_id} 场景:{$scene_name} 继承全局数据 (task_id:{$scene_task_id}, task_status:{$scene_task_status}, url:{$scene_url})");
                         break;
                     }
                 }
@@ -359,6 +365,10 @@ class AnimeCheckImgUrlCommand extends Command
                 dLog('generate')->info("剧集ID:{$episode_id} 数据已同步更新");
             }
         }
+
+        // 更新状态为已完成
+        DB::table('mp_animes')->where('id', $id)->update(['generate_status' => '已完成', 'updated_at'=>date('Y-m-d H:i:s')]);
+        dLog('generate')->info('动漫对话图片已全部生成完毕');
     }