From 07523902413e2e06de6ae55f706f770590f94542 Mon Sep 17 00:00:00 2001
From: 龚焕茏 <2842157468@qq.com>
Date: 星期六, 11 五月 2024 11:03:49 +0800
Subject: [PATCH] fix:补考时未选择且未参加过考试的考生新增零分记录、开始考试时非空判断
---
src/main/java/com/mindskip/xzs/repository/ExamPaperAnswerMapper.java | 5 +++++
src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java | 10 ++++++++--
src/main/java/com/mindskip/xzs/domain/enums/UserConditionEnum.java | 1 +
src/main/resources/mapper/ExamPaperAnswerMapper.xml | 16 ++++++++++++++++
src/main/resources/mapper/UserMapper.xml | 2 +-
5 files changed, 31 insertions(+), 3 deletions(-)
diff --git a/src/main/java/com/mindskip/xzs/domain/enums/UserConditionEnum.java b/src/main/java/com/mindskip/xzs/domain/enums/UserConditionEnum.java
index fdcaf01..c1fa8c2 100644
--- a/src/main/java/com/mindskip/xzs/domain/enums/UserConditionEnum.java
+++ b/src/main/java/com/mindskip/xzs/domain/enums/UserConditionEnum.java
@@ -12,6 +12,7 @@
@Getter
public enum UserConditionEnum {
+ NORMAL("0", "姝e父"),
SICK("1", "鐥呭亣"),
BUSINESS_TRIP("2", "鍑哄樊"),
OTHER("3", "鍏朵粬"),
diff --git a/src/main/java/com/mindskip/xzs/repository/ExamPaperAnswerMapper.java b/src/main/java/com/mindskip/xzs/repository/ExamPaperAnswerMapper.java
index 7b3072d..a1ff9fa 100644
--- a/src/main/java/com/mindskip/xzs/repository/ExamPaperAnswerMapper.java
+++ b/src/main/java/com/mindskip/xzs/repository/ExamPaperAnswerMapper.java
@@ -1,5 +1,6 @@
package com.mindskip.xzs.repository;
+import com.mindskip.xzs.domain.ExamPaper;
import com.mindskip.xzs.domain.ExamPaperAnswer;
import com.mindskip.xzs.domain.ExamTemplatesUserCount;
import com.mindskip.xzs.domain.ScoreTemplatesUserCount;
@@ -7,6 +8,7 @@
import com.mindskip.xzs.domain.vo.ScoreTemplatesCountVO;
import com.mindskip.xzs.domain.vo.TeamplatesUserExcelVO;
import com.mindskip.xzs.viewmodel.admin.exam.ExamPaperEditRequestVM;
+import com.mindskip.xzs.viewmodel.admin.exam.ExamPaperEditRequestVO;
import com.mindskip.xzs.viewmodel.admin.paper.ExamPaperGradePageRequestVM;
import com.mindskip.xzs.viewmodel.admin.paper.ExamPaperGradeQuery;
import com.mindskip.xzs.viewmodel.student.exampaper.ExamPaperAnswerPageVM;
@@ -48,4 +50,7 @@
List<TeamplatesUserExcelVO> getByTimeOne();
void setMissExam(ExamPaperEditRequestVM model);
+
+ void insertDefault(ExamPaperEditRequestVM model);
+
}
diff --git a/src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java b/src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java
index 8db064e..67543e5 100644
--- a/src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java
+++ b/src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java
@@ -205,8 +205,11 @@
List<ExamPaperUser> examPaperUsers = examPaperUserService.getByExamPaperId(examPaper.getId());
Integer[][] userIds = new Integer[examPaperUsers.size()][2];
for (int i = 0; i < examPaperUsers.size(); i++) {
- Integer[] userId = {userService.getUserById(examPaperUsers.get(i).getUserId()).getUserLevel(), examPaperUsers.get(i).getUserId()};
- userIds[i] = userId;
+ User user = userService.getUserById(examPaperUsers.get(i).getUserId());
+ if (ObjectUtils.isNotEmpty(user)) {
+ Integer[] userId = {user.getUserLevel(), examPaperUsers.get(i).getUserId()};
+ userIds[i] = userId;
+ }
}
vm.setUserId(userIds);
return vm;
@@ -614,5 +617,8 @@
}
// 鏍规嵁鑰冭瘯id灏嗛�夋嫨鐨勮ˉ鑰冭�冪敓鐨勮�冭瘯鎴愮哗璁剧疆涓烘棤鏁�
examPaperAnswerMapper.setMissExam(model);
+
+ // 琛ヨ�冩椂灏嗘病鏈夐�夋嫨鐨勫苟涓旀病鏈夊弬鍔犺繃鑰冭瘯鐨勮�冪敓澧炲姞涓�鏉¢浂鍒嗚�冭瘯璁板綍锛屽惁鍒欐病鏈夊弬鍔犺繃鑰冭瘯鐨勫嵆浣夸笉琚�夋嫨涔熷彲浠ュ弬鍔犺ˉ鑰�
+ examPaperAnswerMapper.insertDefault(model);
}
}
diff --git a/src/main/resources/mapper/ExamPaperAnswerMapper.xml b/src/main/resources/mapper/ExamPaperAnswerMapper.xml
index afaa892..9f4e0bf 100644
--- a/src/main/resources/mapper/ExamPaperAnswerMapper.xml
+++ b/src/main/resources/mapper/ExamPaperAnswerMapper.xml
@@ -395,4 +395,20 @@
where a.create_time
</select>
+ <insert id="insertDefault">
+ INSERT INTO t_exam_paper_answer(exam_paper_id, paper_name, paper_type, system_score, user_score, paper_score, question_correct, question_count, do_time, status,
+ create_user, create_time, invalid)
+ SELECT
+ a.id, a.name, a.paper_type, 0, 0, a.score, 0, a.question_count, 0, 2, b.user_id, NOW(), 0
+ FROM t_exam_paper a
+ left join t_exam_paper_user b on a.id = b.exam_paper_id and b.deleted = 0
+ left join t_exam_paper_answer c on a.id = c.exam_paper_id and c.create_user = b.user_id
+ WHERE a.id = #{examPaperId}
+ and c.id is null
+ and b.user_id not in
+ <foreach collection="userIds" item="item" open="(" close=")" separator=",">
+ #{item}
+ </foreach>
+ </insert>
+
</mapper>
diff --git a/src/main/resources/mapper/UserMapper.xml b/src/main/resources/mapper/UserMapper.xml
index 62be0a3..45aa42a 100644
--- a/src/main/resources/mapper/UserMapper.xml
+++ b/src/main/resources/mapper/UserMapper.xml
@@ -268,7 +268,7 @@
select
<include refid="Base_Column_List"/>
from t_user
- where id=#{value} and status = 1 and deleted = 0
+ where id=#{value} and status = 1 and deleted = 0 and (`condition` = 0 or `condition` is null)
</select>
<select id="getUserByUserName" resultMap="BaseResultMap">
--
Gitblit v1.8.0