From b3b8de1b34dacee4c569fb46c27493a3d9125232 Mon Sep 17 00:00:00 2001
From: 龚焕茏 <2842157468@qq.com>
Date: 星期二, 16 七月 2024 15:15:36 +0800
Subject: [PATCH] fix:补考最高分-本次未提交成绩查不到,改为传值判断
---
src/main/java/com/mindskip/xzs/repository/ExamPaperAnswerMapper.java | 2 +-
src/main/java/com/mindskip/xzs/service/impl/ExamPaperAnswerServiceImpl.java | 14 +++++++-------
src/main/java/com/mindskip/xzs/controller/student/ExamPaperAnswerController.java | 1 +
src/main/java/com/mindskip/xzs/listener/CalculateExamPaperAnswerListener.java | 2 +-
src/main/java/com/mindskip/xzs/service/ExamPaperAnswerService.java | 2 +-
src/main/java/com/mindskip/xzs/domain/ExamPaperAnswerInfo.java | 9 +++++++++
src/main/resources/mapper/ExamPaperAnswerMapper.xml | 10 ++++++----
7 files changed, 26 insertions(+), 14 deletions(-)
diff --git a/src/main/java/com/mindskip/xzs/controller/student/ExamPaperAnswerController.java b/src/main/java/com/mindskip/xzs/controller/student/ExamPaperAnswerController.java
index d08fe72..320f2f5 100644
--- a/src/main/java/com/mindskip/xzs/controller/student/ExamPaperAnswerController.java
+++ b/src/main/java/com/mindskip/xzs/controller/student/ExamPaperAnswerController.java
@@ -87,6 +87,7 @@
+ " 寰楀垎锛�" + scoreVm
+ " 鑰楁椂锛�" + ExamUtil.secondToVM(examPaperAnswer.getDoTime());
userEventLog.setContent(content);
+ examPaperAnswerInfo.setTemplateId(examPaperSubmitVM.getTemplatesId());
eventPublisher.publishEvent(new CalculateExamPaperAnswerCompleteEvent(examPaperAnswerInfo));
eventPublisher.publishEvent(new UserEvent(userEventLog));
//棣栭〉闅忔満璇曞嵎鎿嶄綔
diff --git a/src/main/java/com/mindskip/xzs/domain/ExamPaperAnswerInfo.java b/src/main/java/com/mindskip/xzs/domain/ExamPaperAnswerInfo.java
index dd705be..5e48d9a 100644
--- a/src/main/java/com/mindskip/xzs/domain/ExamPaperAnswerInfo.java
+++ b/src/main/java/com/mindskip/xzs/domain/ExamPaperAnswerInfo.java
@@ -7,6 +7,15 @@
public ExamPaper examPaper;
public ExamPaperAnswer examPaperAnswer;
public List<ExamPaperQuestionCustomerAnswer> examPaperQuestionCustomerAnswers;
+ public Integer templateId;
+
+ public Integer getTemplateId() {
+ return templateId;
+ }
+
+ public void setTemplateId(Integer templateId) {
+ this.templateId = templateId;
+ }
public ExamPaper getExamPaper() {
return examPaper;
diff --git a/src/main/java/com/mindskip/xzs/listener/CalculateExamPaperAnswerListener.java b/src/main/java/com/mindskip/xzs/listener/CalculateExamPaperAnswerListener.java
index 5776629..b76f717 100644
--- a/src/main/java/com/mindskip/xzs/listener/CalculateExamPaperAnswerListener.java
+++ b/src/main/java/com/mindskip/xzs/listener/CalculateExamPaperAnswerListener.java
@@ -60,7 +60,7 @@
examPaperAnswerService.insertByFilter(examPaperAnswer);
// 鏈�浼樻垚缁╂湁鏁堬紝鍏朵綑鏃犳晥
- examPaperAnswerService.maxGrade(examPaperAnswer);
+ examPaperAnswerService.maxGrade(examPaperAnswer, examPaperAnswerInfo.getTemplateId());
examPaperQuestionCustomerAnswers.stream().filter(a -> QuestionTypeEnum.needSaveTextContent(a.getQuestionType())).forEach(d -> {
TextContent textContent = new TextContent(d.getAnswer(), now);
diff --git a/src/main/java/com/mindskip/xzs/repository/ExamPaperAnswerMapper.java b/src/main/java/com/mindskip/xzs/repository/ExamPaperAnswerMapper.java
index bfbbe5a..531b846 100644
--- a/src/main/java/com/mindskip/xzs/repository/ExamPaperAnswerMapper.java
+++ b/src/main/java/com/mindskip/xzs/repository/ExamPaperAnswerMapper.java
@@ -77,7 +77,7 @@
* @param examPaperAnswer 绛斿嵎
* @return 鏈�楂樻垚缁╃瓟鍗�
*/
- ExamPaperAnswer getTemplateOtherExamAnswer(ExamPaperAnswer examPaperAnswer);
+ ExamPaperAnswer getTemplateOtherExamAnswer(@Param("examPaperAnswer") ExamPaperAnswer examPaperAnswer, @Param("templateId") Integer templateId);
/**
* 鏍规嵁璇曞嵎id鑾峰彇鏈�楂樻垚缁╃瓟鍗�
diff --git a/src/main/java/com/mindskip/xzs/service/ExamPaperAnswerService.java b/src/main/java/com/mindskip/xzs/service/ExamPaperAnswerService.java
index 6f4211d..388a450 100644
--- a/src/main/java/com/mindskip/xzs/service/ExamPaperAnswerService.java
+++ b/src/main/java/com/mindskip/xzs/service/ExamPaperAnswerService.java
@@ -77,5 +77,5 @@
* 鑾峰彇涔嬪墠鐨勬垚缁╋紝鍙栨渶浼樻垚缁�
* @param examPaperAnswer 鏈绛斿嵎
*/
- void maxGrade(ExamPaperAnswer examPaperAnswer);
+ void maxGrade(ExamPaperAnswer examPaperAnswer, Integer templateId);
}
diff --git a/src/main/java/com/mindskip/xzs/service/impl/ExamPaperAnswerServiceImpl.java b/src/main/java/com/mindskip/xzs/service/impl/ExamPaperAnswerServiceImpl.java
index deb23cf..4fd310a 100644
--- a/src/main/java/com/mindskip/xzs/service/impl/ExamPaperAnswerServiceImpl.java
+++ b/src/main/java/com/mindskip/xzs/service/impl/ExamPaperAnswerServiceImpl.java
@@ -404,25 +404,25 @@
}
@Override
- public void maxGrade(ExamPaperAnswer examPaperAnswer) {
- // 鑾峰彇鏌愪竴鍦鸿�冭瘯鐨勬渶楂樻垚缁�
+ public void maxGrade(ExamPaperAnswer examPaperAnswer, Integer templateId) {
+ // 鑾峰彇鏌愪竴鍦鸿�冭瘯鏇剧粡鐨勬渶楂樻垚缁�
ExamPaperAnswer maxGrade;
if (Objects.equals(examPaperAnswer.getPaperType(), 7)) {
- maxGrade = examPaperAnswerMapper.getTemplateOtherExamAnswer(examPaperAnswer);
+ maxGrade = examPaperAnswerMapper.getTemplateOtherExamAnswer(examPaperAnswer, templateId);
} else {
maxGrade = examPaperAnswerMapper.getPaperOtherExamAnswer(examPaperAnswer);
}
if (Objects.isNull(maxGrade)) {
return;
}
- // 鏈涓嶆槸鏈�楂樺垎
- if (!Objects.equals(maxGrade.getId(), examPaperAnswer.getId())) {
+ // 鏈鑰冭瘯鍒嗘暟涓嶅涔嬪墠锛屾湰娆℃棤鏁�
+ if (maxGrade.getUserScore() > examPaperAnswer.getUserScore()) {
// 涔嬪墠鐨勬垚缁╂湁鏁�
maxGrade.setInvalid(AnswerInvalidEnum.VALID);
- examPaperAnswerMapper.updateByPrimaryKey(maxGrade);
+ examPaperAnswerMapper.updateByPrimaryKeySelective(maxGrade);
// 鏈鐨勪笉鏄渶楂樺垎锛屾棤鏁�
examPaperAnswer.setInvalid(AnswerInvalidEnum.INVALID);
- examPaperAnswerMapper.updateByPrimaryKey(examPaperAnswer);
+ examPaperAnswerMapper.updateByPrimaryKeySelective(examPaperAnswer);
}
}
diff --git a/src/main/resources/mapper/ExamPaperAnswerMapper.xml b/src/main/resources/mapper/ExamPaperAnswerMapper.xml
index ea34ff9..6692f25 100644
--- a/src/main/resources/mapper/ExamPaperAnswerMapper.xml
+++ b/src/main/resources/mapper/ExamPaperAnswerMapper.xml
@@ -209,6 +209,9 @@
<if test="taskExamId != null">
task_exam_id = #{taskExamId,jdbcType=INTEGER},
</if>
+ <if test="invalid != null">
+ invalid = #{invalid},
+ </if>
</set>
where id = #{id,jdbcType=INTEGER}
</update>
@@ -659,14 +662,13 @@
<select id="getTemplateOtherExamAnswer" resultType="com.mindskip.xzs.domain.ExamPaperAnswer">
SELECT id, user_score FROM t_exam_paper_answer WHERE exam_paper_id IN
- (SELECT exam_paper_id FROM t_exam_templates_user_count WHERE user_id = #{createUser} AND exam_templates_id =
- (SELECT exam_templates_id FROM t_exam_templates_user_count WHERE exam_paper_id = #{examPaperId} LIMIT 1))
- HAVING MAX(user_score) ORDER BY create_time DESC LIMIT 1
+ (SELECT exam_paper_id FROM t_exam_templates_user_count WHERE user_id = #{examPaperAnswer.createUser} AND exam_templates_id = #{templateId})
+ ORDER BY user_score DESC LIMIT 1
</select>
<select id="getPaperOtherExamAnswer" resultType="com.mindskip.xzs.domain.ExamPaperAnswer">
SELECT id, user_score FROM t_exam_paper_answer WHERE exam_paper_id = #{examPaperId} AND create_user = #{createUser}
- HAVING MAX(user_score) ORDER BY create_time DESC LIMIT 1
+ ORDER BY user_score DESC LIMIT 1
</select>
</mapper>
--
Gitblit v1.8.0