Просмотр исходного кода

fix: 修复快照查询逻辑,直接取最新快照而非skip(1)

mastery_data 内已包含 current_mastery 和 previous_mastery,
查询意图是取最新快照,不需要跳过。skip(1) 会导致拿到更老的数据,
造成掌握度变化计算错误。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
gwd 1 день назад
Родитель
Сommit
a963f4eb1e
1 измененных файлов с 1 добавлено и 3 удалено
  1. 1 3
      app/Services/ExamPdfExportService.php

+ 1 - 3
app/Services/ExamPdfExportService.php

@@ -729,14 +729,12 @@ class ExamPdfExportService
                     'kp_codes' => $examKpCodes,
                 ]);
 
-                // 获取上一个快照的数据(用于计算变化)
-                // 如果没有其他试卷的记录,使用同一试卷的上一次快照
+                // 获取最新快照的数据(mastery_data 内已包含 current_mastery 和 previous_mastery)
                 $lastSnapshot = DB::connection('mysql')
                     ->table('knowledge_point_mastery_snapshots')
                     ->where('student_id', $studentId)
                     ->where('paper_id', $paper->paper_id)
                     ->latest('snapshot_time')
-                    ->skip(1)
                     ->first();
 
                 $previousMasteryData = [];