Răsfoiți Sursa

fix: unify assemble_type 22 response paper_id

Map assemble_type=22 knowledge id to paper_id in task payload and immediate API response so callback and polling clients can consume a consistent paper_id field.

Co-authored-by: Cursor <cursoragent@cursor.com>
yemeishu 6 zile în urmă
părinte
comite
f1ddbd9247
1 a modificat fișierele cu 5 adăugiri și 4 ștergeri
  1. 5 4
      app/Http/Controllers/Api/IntelligentExamController.php

+ 5 - 4
app/Http/Controllers/Api/IntelligentExamController.php

@@ -179,9 +179,10 @@ class IntelligentExamController extends Controller
 
         // API 固定题量:含按卷追练(5)、错题再练(15)、错题追练(16) 等,一律 default_total_questions,不使用请求题量参数
         $data['total_questions'] = (int) config('question_bank.default_total_questions');
-        // 预分配ID:组卷类型使用 paper_id;知识点讲解类型使用 knowledge_id
+        // 预分配ID:组卷类型使用 paper_id;知识点讲解类型使用 knowledge_id(并对外映射为 paper_id 以保持接口一致)
         $reservedPaperId = $assembleType === 22 ? null : $this->questionBankService->generatePaperId();
         $reservedKnowledgeId = $assembleType === 22 ? $this->knowledgeExplanationService->generateKnowledgeId() : null;
+        $responsePaperId = $assembleType === 22 ? $reservedKnowledgeId : $reservedPaperId;
         $this->ensureStudentTeacherRelation($data);
 
         // 【修改】使用series_id、semester_code和grade获取textbook_id
@@ -197,7 +198,7 @@ class IntelligentExamController extends Controller
         }
 
         $taskPayload = array_merge($data, [
-            'paper_id' => $reservedPaperId,
+            'paper_id' => $responsePaperId,
             'knowledge_id' => $reservedKnowledgeId,
             'request_trace_id' => $requestTraceId,
             'request_started_at' => now()->toISOString(),
@@ -210,7 +211,7 @@ class IntelligentExamController extends Controller
             'teacher_id' => $taskPayload['teacher_id'] ?? null,
             'grade' => $taskPayload['grade'] ?? null,
             'assemble_type' => $assembleType,
-            'paper_id' => $reservedPaperId,
+            'paper_id' => $responsePaperId,
             'knowledge_id' => $reservedKnowledgeId,
             'textbook_id' => $taskPayload['textbook_id'] ?? null,
             'chapter_id_list' => $taskPayload['chapter_id_list'] ?? [],
@@ -241,7 +242,7 @@ class IntelligentExamController extends Controller
                     : '智能试卷任务已创建,正在后台组卷并生成PDF...',
                 'data' => [
                     'task_id' => $taskId,
-                    'paper_id' => $reservedPaperId,
+                    'paper_id' => $responsePaperId,
                     'knowledge_id' => $reservedKnowledgeId,
                     'status' => 'processing',
                     'exam_code' => $codes['exam_code'],