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