yemeishu hace 4 días
padre
commit
8c6fc39e5d
Se han modificado 1 ficheros con 9 adiciones y 2 borrados
  1. 9 2
      app/Http/Controllers/Api/IntelligentExamController.php

+ 9 - 2
app/Http/Controllers/Api/IntelligentExamController.php

@@ -45,10 +45,15 @@ class IntelligentExamController extends Controller
      */
     public function store(Request $request): JsonResponse
     {
-        $normalized = $this->normalizePayload($request->all());
+        // 优先从body获取数据,不使用query params
+        $payload = $request->json()->all();
+        if (empty($payload)) {
+            $payload = $request->all();
+        }
+        $normalized = $this->normalizePayload($payload);
 
         $validator = validator($normalized, [
-            'student_id' => 'required|string',
+            'student_id' => 'required|string|min:1',  // 接受字符串或数字字符串,如"1764913638"
             'teacher_id' => 'nullable|string',
             'paper_name' => 'nullable|string|max:255',
             'grade' => 'nullable|string|max:50',
@@ -65,6 +70,7 @@ class IntelligentExamController extends Controller
             'mistake_ids.*' => 'string',
             'mistake_question_ids' => 'nullable|array',
             'mistake_question_ids.*' => 'string',
+            'callback_url' => 'nullable|url',  // 异步完成后推送通知的URL
         ]);
 
         if ($validator->fails()) {
@@ -190,6 +196,7 @@ class IntelligentExamController extends Controller
             }
 
             // 第三步:创建异步任务(使用TaskManager)
+            // 注意:callback_url会在TaskManager中被提取并保存
             $taskId = $this->taskManager->createTask(TaskManager::TASK_TYPE_EXAM, array_merge($data, ['paper_id' => $paperId]));
 
             // 生成识别码