lh il y a 1 mois
Parent
commit
5bcec2aebd

+ 11 - 14
app/Services/AIGeneration/AIVideoGenerationService.php

@@ -2802,20 +2802,17 @@ class AIVideoGenerationService
             $apiStatus = strtolower((string)($inner['status'] ?? $outer['status'] ?? 'unknown'));
 
             if (in_array($apiStatus, ['success', 'succeeded'], true)) {
-                // 规范化为火山官方响应结构后,复用Seedance成功处理逻辑(下载/超分/压缩/时长/尾帧)
-                $normalized = [
-                    'status' => 'succeeded',
-                    'content' => [
-                        'video_url' => $inner['content']['video_url'] ?? ($outer['content']['video_url'] ?? ''),
-                        'last_frame_url' => $inner['content']['last_frame_url'] ?? ($outer['content']['last_frame_url'] ?? ''),
-                    ],
-                    'duration' => $inner['duration'] ?? ($outer['duration'] ?? 0),
-                    'framespersecond' => $inner['framespersecond'] ?? 0,
-                    'error_message' => '',
-                    // 保留token用量(快快AI返回结构:data.data.usage),供积分/token统计使用
-                    'usage' => $inner['usage'] ?? ($outer['usage'] ?? []),
-                ];
-                return $this->processSeedanceSuccessResponse($task, $normalized);
+                // 完整保留网关返回的所有字段(code/message/data 等),仅将项目依赖的字段提升到顶层做兼容
+                $resultJson = $responseData;
+                $resultJson['status'] = 'succeeded';
+                $resultJson['content']['video_url'] = $inner['content']['video_url'] ?? ($outer['content']['video_url'] ?? '');
+                $resultJson['content']['last_frame_url'] = $inner['content']['last_frame_url'] ?? ($outer['content']['last_frame_url'] ?? '');
+                $resultJson['duration'] = $inner['duration'] ?? ($outer['duration'] ?? 0);
+                $resultJson['framespersecond'] = $inner['framespersecond'] ?? 0;
+                // 保留token用量(快快AI返回结构:data.data.usage),供积分/token统计使用
+                $resultJson['usage'] = $inner['usage'] ?? ($outer['usage'] ?? []);
+                $resultJson['error_message'] = '';
+                return $this->processSeedanceSuccessResponse($task, $resultJson);
             }
 
             if (in_array($apiStatus, ['failure', 'failed', 'expired'], true)) {

+ 2 - 0
app/Services/PointsService.php

@@ -190,7 +190,9 @@ class PointsService
         // result_json 中已保留规范化后的 usage 字段(queryKuaikuaiTaskStatus 同步)
         if ($task->api_type === 'kuaikuai') {
             $tokens = $resultJson['usage']['total_tokens']
+                ?? $resultJson['data']['data']['usage']['total_tokens']
                 ?? $resultJson['usage']['completion_tokens']
+                ?? $resultJson['data']['data']['usage']['completion_tokens']
                 ?? 0;
             return (int)$tokens;
         }