feat: 优化考试记录接口,支持从任务反推科目名称;更新测试用例以验证新逻辑

This commit is contained in:
2025-12-30 12:00:32 +08:00
parent 7fff13afb7
commit 8cd6950631
7 changed files with 119 additions and 7 deletions

View File

@@ -163,12 +163,24 @@ export class QuizController {
const result = await QuizModel.submitQuiz({ userId, answers: processedAnswers });
if (subjectId || taskId) {
let finalSubjectId: string | null = subjectId || null;
const finalTaskId: string | null = taskId || null;
// 任务考试场景下如果前端未传subjectId则从任务中反查
if (!finalSubjectId && finalTaskId) {
const { ExamTaskModel } = await import('../models/examTask');
const task = await ExamTaskModel.findById(finalTaskId);
if (task?.subjectId) {
finalSubjectId = task.subjectId;
}
}
const sql = `
UPDATE quiz_records
SET subject_id = ?, task_id = ?
WHERE id = ?
`;
await import('../database').then(({ run }) => run(sql, [subjectId || null, taskId || null, result.record.id]));
await import('../database').then(({ run }) => run(sql, [finalSubjectId, finalTaskId, result.record.id]));
}
res.json({