yemeishu 4 дней назад
Родитель
Сommit
79b585cf67

+ 6 - 1
app/Http/Controllers/Api/IntelligentExamController.php

@@ -53,7 +53,7 @@ class IntelligentExamController extends Controller
         $normalized = $this->normalizePayload($payload);
 
         $validator = validator($normalized, [
-            'student_id' => 'required|string|min:1',  // 接受字符串或数字字符串,如"1764913638"
+            'student_id' => 'required|string|min:1',  // 接受字符串或数字类型,如"1764913638"或1764913638
             'teacher_id' => 'nullable|string',
             'paper_name' => 'nullable|string|max:255',
             'grade' => 'nullable|string|max:50',
@@ -390,6 +390,11 @@ class IntelligentExamController extends Controller
             unset($payload['question_count']);
         }
 
+        // 将student_id转换为字符串(支持数字和字符串输入)
+        if (isset($payload['student_id'])) {
+            $payload['student_id'] = (string) $payload['student_id'];
+        }
+
         // 处理 kp_codes:空字符串或null转换为空数组
         if (isset($payload['kp_codes'])) {
             if (is_string($payload['kp_codes'])) {

+ 16 - 1
app/Http/Controllers/Api/MistakeBookController.php

@@ -538,11 +538,26 @@ class MistakeBookController extends Controller
     public function updateReviewStatus(Request $request, string $mistakeId): JsonResponse
     {
         try {
-            $validated = $request->validate([
+            // 优先从body获取数据,不使用query params
+            $payload = $request->json()->all();
+            if (empty($payload)) {
+                $payload = $request->all();
+            }
+
+            $validator = validator($payload, [
                 'action' => 'required|in:increment,reset,mastered',
                 'force_review' => 'boolean',
             ]);
 
+            if ($validator->fails()) {
+                return response()->json([
+                    'success' => false,
+                    'message' => '参数错误',
+                    'errors' => $validator->errors()->toArray(),
+                ], 422);
+            }
+
+            $validated = $validator->validated();
             $action = $validated['action'];
             $forceReview = $validated['force_review'] ?? false;
 

+ 1 - 1
app/Http/Controllers/ImportStreamController.php

@@ -9,7 +9,7 @@ use Illuminate\Support\Facades\Redis;
 
 class ImportStreamController extends Controller
 {
-    public function stream(Request $request): LaravelStreamedResponse
+    public function stream(Request $request): \Illuminate\Http\StreamedResponse
     {
         if (!Filament::auth()->check()) {
             abort(403);