This commit is contained in:
Lqc 2025-09-03 16:17:06 +08:00
parent d294bfc606
commit 27dabcce7a

View File

@ -320,11 +320,10 @@ public class AiolExamController extends JeecgController<AiolExam, IAiolExamServi
updateWrapper.set(AiolExamRecord::getDeviceInfo, examRecord.getDeviceInfo()); updateWrapper.set(AiolExamRecord::getDeviceInfo, examRecord.getDeviceInfo());
} }
// 阅卷 // 阅卷
List<AiolExamAnswer> gradedAnswers = gradeExam(examRecord.getExamId(), examRecord.getUserId()); List<AiolExamAnswer> gradedAnswers = gradeExam(examRecord.getExamId(), examRecord.getUserId(), updateWrapper);
examAnswerService.updateBatchById(gradedAnswers); examAnswerService.updateBatchById(gradedAnswers);
// 更新考试状态提交时间 // 更新考试状态提交时间
updateWrapper. updateWrapper.
set(AiolExamRecord::getStatus,1).
set(AiolExamRecord::getSubmittedAt, new Date()); set(AiolExamRecord::getSubmittedAt, new Date());
// 更新 // 更新
return examRecordService.update(updateWrapper) ? Result.OK() : Result.error("提交考试失败"); return examRecordService.update(updateWrapper) ? Result.OK() : Result.error("提交考试失败");
@ -738,9 +737,10 @@ public class AiolExamController extends JeecgController<AiolExam, IAiolExamServi
* 批量阅卷 * 批量阅卷
* @param examId 考试ID * @param examId 考试ID
* @param userId 用户ID * @param userId 用户ID
*
* @return 阅卷后的答题列表 * @return 阅卷后的答题列表
*/ */
private List<AiolExamAnswer> gradeExam(String examId, String userId) { private List<AiolExamAnswer> gradeExam(String examId, String userId , LambdaUpdateWrapper<AiolExamRecord> updateWrapper) {
//获取试卷信息 //获取试卷信息
AiolExam exam = examService.getById(examId); AiolExam exam = examService.getById(examId);
//获取组卷信息 //获取组卷信息
@ -832,6 +832,7 @@ public class AiolExamController extends JeecgController<AiolExam, IAiolExamServi
)); ));
// 遍历学生的答案进行评分 // 遍历学生的答案进行评分
Double totalPoint = 0.0;
for (AiolExamAnswer examAnswer : examAnswerList) { for (AiolExamAnswer examAnswer : examAnswerList) {
String studentAnswer = examAnswer.getAnswer(); String studentAnswer = examAnswer.getAnswer();
AiolQuestion question = questionMap.get(examAnswer.getQuestionId()); AiolQuestion question = questionMap.get(examAnswer.getQuestionId());
@ -936,13 +937,21 @@ public class AiolExamController extends JeecgController<AiolExam, IAiolExamServi
} }
break; break;
} }
totalPoint += score;
examAnswer.setScore(score); examAnswer.setScore(score);
// 只有得了满分才算对 // 只有得了满分才算对
examAnswer.setIzCorrect(score > 0 && score == (paper.getGenerateMode() == 0 ? examAnswer.setIzCorrect(score > 0 && score == (paper.getGenerateMode() == 0 ?
questionScoreMap.get(question.getId()) : questionScoreMap.get(question.getId()) :
ruleJson.getDouble("type" + question.getType() + "_score")) ? 1 : 0); ruleJson.getDouble("type" + question.getType() + "_score")) ? 1 : 0);
} }
if(paper.getRequireReview()==1){
updateWrapper
.set(AiolExamRecord::getStatus, 1);
}else {
updateWrapper
.set(AiolExamRecord::getStatus, 2)
.set(AiolExamRecord::getTotalScore, totalPoint);
}
return examAnswerList; return examAnswerList;
} }