Przeglądaj źródła

修正主体和角色图片任务定时脚本的逻辑,写入任务的实际状态而不是都更新为success

lh 4 miesięcy temu
rodzic
commit
6eae620e22
1 zmienionych plików z 20 dodań i 16 usunięć
  1. 20 16
      app/Console/Anime/AnimeCheckImgUrlCommand.php

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

@@ -136,16 +136,17 @@ class AnimeCheckImgUrlCommand extends Command
         foreach ($roles as &$role) {
             $task_id = getProp($role, 'task_id');
             $task_status = getProp($role, 'task_status');
-            if (!$task_id || $task_status == 'success' || getProp($role, 'role') == '旁白') {
+            if (!$task_id || in_array($task_status, ['success', 'failed']) || getProp($role, 'role') == '旁白') {
                 $role_success_count++;
                 continue;
             }
             $task = DB::table('mp_generate_pic_tasks')->where('id', $task_id)->select('result_url', 'status')->first();
-            if (in_array(getProp($task, 'status'), ['success', 'failed'])) {
-                $role['task_status'] = 'success';
+            $status = getProp($task, 'status');
+            if (in_array($status, ['success', 'failed'])) {
+                $role['task_status'] = $status; // 使用实际的任务状态
                 $role['url'] = '';
                 $result_url = getProp($task, 'result_url');
-                if ($result_url && is_json($result_url)) {
+                if ($result_url && is_json($result_url) && $status == 'success') {
                     $role['url'] = json_decode($result_url, true)[0];
                 }
 
@@ -169,16 +170,17 @@ class AnimeCheckImgUrlCommand extends Command
         foreach ($scenes as &$scene) {
             $task_id = getProp($scene, 'task_id');
             $task_status = getProp($scene, 'task_status');
-            if (!$task_id || $task_status == 'success') {
+            if (!$task_id || in_array($task_status, ['success', 'failed'])) {
                 $scene_success_count++;
                 continue;
             }
             $task = DB::table('mp_generate_pic_tasks')->where('id', $task_id)->select('result_url', 'status')->first();
-            if (in_array(getProp($task, 'status'), ['success', 'failed'])) {
-                $scene['task_status'] = 'success';
+            $status = getProp($task, 'status');
+            if (in_array($status, ['success', 'failed'])) {
+                $scene['task_status'] = $status; // 使用实际的任务状态
                 $scene['url'] = '';
                 $result_url = getProp($task, 'result_url');
-                if ($result_url && is_json($result_url)) {
+                if ($result_url && is_json($result_url) && $status == 'success') {
                     $scene['url'] = json_decode($result_url, true)[0];
                 }
 
@@ -423,16 +425,17 @@ class AnimeCheckImgUrlCommand extends Command
         foreach ($roles as &$role) {
             $task_id = getProp($role, 'task_id');
             $task_status = getProp($role, 'task_status');
-            if (!$task_id || $task_status == 'success' || getProp($role, 'role') == '旁白') {
+            if (!$task_id || in_array($task_status, ['success', 'failed']) || getProp($role, 'role') == '旁白') {
                 $role_success_count++;
                 continue;
             }
             $task = DB::table('mp_generate_pic_tasks')->where('id', $task_id)->select('result_url', 'status')->first();
-            if (in_array(getProp($task, 'status'), ['success', 'failed'])) {
-                $role['task_status'] = 'success';
+            $status = getProp($task, 'status');
+            if (in_array($status, ['success', 'failed'])) {
+                $role['task_status'] = $status; // 使用实际的任务状态
                 $role['url'] = '';
                 $result_url = getProp($task, 'result_url');
-                if ($result_url && is_json($result_url)) {
+                if ($result_url && is_json($result_url) && $status == 'success') {
                     $role['url'] = json_decode($result_url, true)[0];
                 }
 
@@ -456,16 +459,17 @@ class AnimeCheckImgUrlCommand extends Command
         foreach ($scenes as &$scene) {
             $task_id = getProp($scene, 'task_id');
             $task_status = getProp($scene, 'task_status');
-            if (!$task_id || $task_status == 'success') {
+            if (!$task_id || in_array($task_status, ['success', 'failed'])) {
                 $scene_success_count++;
                 continue;
             }
             $task = DB::table('mp_generate_pic_tasks')->where('id', $task_id)->select('result_url', 'status')->first();
-            if (in_array(getProp($task, 'status'), ['success', 'failed'])) {
-                $scene['task_status'] = 'success';
+            $status = getProp($task, 'status');
+            if (in_array($status, ['success', 'failed'])) {
+                $scene['task_status'] = $status; // 使用实际的任务状态
                 $scene['url'] = '';
                 $result_url = getProp($task, 'result_url');
-                if ($result_url && is_json($result_url)) {
+                if ($result_url && is_json($result_url) && $status == 'success') {
                     $scene['url'] = json_decode($result_url, true)[0];
                 }