ソースを参照

错题本变化

yemeishu 5 日 前
コミット
acf4ff6870

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

@@ -212,13 +212,7 @@ class MistakeBookController extends Controller
 
             return response()->json([
                 'success' => true,
-                'data' => [
-                    'total' => $summary['total'] ?? 0,
-                    'this_week' => $summary['this_week'] ?? 0,
-                    'pending_review' => $summary['pending_review'] ?? 0,
-                    'mastery_rate' => $summary['mastery_rate'] ?? 0.0,
-                    'statistics' => $mistakesResult['statistics'] ?? null
-                ]
+                'data' => $summary  // ✅ 直接返回统计信息,不嵌套
             ]);
 
         } catch (\Exception $e) {

+ 24 - 0
app/Services/MistakeBookService.php

@@ -118,6 +118,16 @@ class MistakeBookService
             return [
                 'data' => [],
                 'meta' => ['total' => 0, 'page' => $page, 'per_page' => $perPage],
+                'statistics' => [  // ✅ 无 student_id 时也返回空统计
+                    'total' => 0,
+                    'pending' => 0,
+                    'reviewed' => 0,
+                    'mastered' => 0,
+                    'favorites' => 0,
+                    'in_retry_list' => 0,
+                    'this_week' => 0,
+                    'mastery_rate' => 0.0,
+                ],
             ];
         }
 
@@ -150,6 +160,9 @@ class MistakeBookService
                 return $this->transformMistakeRecord($mistake);
             })->toArray();
 
+            // 获取统计信息
+            $summary = $this->summarize($studentId);
+
             $result = [
                 'data' => $data,
                 'meta' => [
@@ -158,6 +171,7 @@ class MistakeBookService
                     'per_page' => $perPage,
                     'last_page' => (int) ceil($total / $perPage),
                 ],
+                'statistics' => $summary,  // ✅ 添加统计信息
             ];
 
             // 缓存结果
@@ -175,6 +189,16 @@ class MistakeBookService
             return [
                 'data' => [],
                 'meta' => ['total' => 0, 'page' => $page, 'per_page' => $perPage],
+                'statistics' => [  // ✅ 错误时也返回空统计
+                    'total' => 0,
+                    'pending' => 0,
+                    'reviewed' => 0,
+                    'mastered' => 0,
+                    'favorites' => 0,
+                    'in_retry_list' => 0,
+                    'this_week' => 0,
+                    'mastery_rate' => 0.0,
+                ],
             ];
         }
     }