From 05d651ca0168025ec451702f1df88dab4f2a9559 Mon Sep 17 00:00:00 2001
From: 龚焕茏 <2842157468@qq.com>
Date: 星期五, 10 五月 2024 17:58:19 +0800
Subject: [PATCH] feat:新增补考按钮
---
src/main/java/com/mindskip/xzs/service/impl/UserServiceImpl.java | 5 ++
src/main/java/com/mindskip/xzs/repository/ExamPaperAnswerMapper.java | 5 +-
src/main/java/com/mindskip/xzs/controller/admin/DepartmentController.java | 14 ++++++-
src/main/java/com/mindskip/xzs/controller/admin/ExamPaperController.java | 11 +++++
src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java | 21 ++++++++++
src/main/java/com/mindskip/xzs/viewmodel/admin/exam/ExamPaperEditRequestVM.java | 1
src/main/resources/mapper/ExamPaperAnswerMapper.xml | 14 +++++-
src/main/java/com/mindskip/xzs/repository/UserMapper.java | 3 +
src/main/java/com/mindskip/xzs/service/ExamPaperService.java | 1
src/main/java/com/mindskip/xzs/service/UserService.java | 3 +
src/main/resources/mapper/UserMapper.xml | 14 +++++++
11 files changed, 83 insertions(+), 9 deletions(-)
diff --git a/src/main/java/com/mindskip/xzs/controller/admin/DepartmentController.java b/src/main/java/com/mindskip/xzs/controller/admin/DepartmentController.java
index 5228899..1d3da20 100644
--- a/src/main/java/com/mindskip/xzs/controller/admin/DepartmentController.java
+++ b/src/main/java/com/mindskip/xzs/controller/admin/DepartmentController.java
@@ -4,6 +4,7 @@
import com.mindskip.xzs.base.BaseApiController;
import com.mindskip.xzs.base.RestResponse;
import com.mindskip.xzs.domain.Department;
+import com.mindskip.xzs.domain.ExamPaper;
import com.mindskip.xzs.domain.User;
import com.mindskip.xzs.domain.UserDepartment;
import com.mindskip.xzs.domain.vo.BaseSelect;
@@ -93,7 +94,7 @@
}
@RequestMapping(value = "/getDepartmentUser", method = RequestMethod.POST)
- public RestResponse<List<DepartmentVO>> getUserDepartment(){
+ public RestResponse<List<DepartmentVO>> getUserDepartment(Integer examPaperId){
User currentUser = webContext.getCurrentUser();
Integer deptId = null;
if (Objects.nonNull(currentUser)) {
@@ -108,7 +109,16 @@
List<UserDepartment> userDepartments = userDepartmentMapper.selectByDepartmentId(e.getId());
List<User> list = new ArrayList<>();
for (UserDepartment userDepartment : userDepartments) {
- User user = userService.getUserById(userDepartment.getUserId());
+ User user;
+ // 閫夋嫨琛ヨ�冪敤鎴锋椂鏌ヨ绗﹀悎琛ヨ�冩潯浠剁殑鐢ㄦ埛
+ if (examPaperId != null) {
+ ExamPaper examPaper = new ExamPaper();
+ examPaper.setCreateUser(userDepartment.getUserId());
+ examPaper.setId(examPaperId);
+ user = userService.getUserByExam(examPaper);
+ } else {
+ user = userService.getUserById(userDepartment.getUserId());
+ }
if (ObjectUtils.isNotEmpty(user)) {
list.add(user);
}
diff --git a/src/main/java/com/mindskip/xzs/controller/admin/ExamPaperController.java b/src/main/java/com/mindskip/xzs/controller/admin/ExamPaperController.java
index 1eb4861..662afdb 100644
--- a/src/main/java/com/mindskip/xzs/controller/admin/ExamPaperController.java
+++ b/src/main/java/com/mindskip/xzs/controller/admin/ExamPaperController.java
@@ -90,6 +90,17 @@
return RestResponse.ok(newVM);
}
+ /**
+ * 琛ヨ��
+ * @param model 鏁版嵁
+ * @return 鎿嶄綔缁撴灉
+ */
+ @RequestMapping(value = "/missExam", method = RequestMethod.POST)
+ public RestResponse<String> missExam(@RequestBody ExamPaperEditRequestVM model) {
+ examPaperService.missExam(model);
+ return RestResponse.ok("鎿嶄綔鎴愬姛");
+ }
+
@RequestMapping(value = "/select/{id}", method = RequestMethod.POST)
public RestResponse<ExamPaperEditRequestVO> select(@PathVariable Integer id) {
ExamPaperEditRequestVO vm = examPaperService.examPaperToVM(id);
diff --git a/src/main/java/com/mindskip/xzs/repository/ExamPaperAnswerMapper.java b/src/main/java/com/mindskip/xzs/repository/ExamPaperAnswerMapper.java
index 8c6d5ec..7b3072d 100644
--- a/src/main/java/com/mindskip/xzs/repository/ExamPaperAnswerMapper.java
+++ b/src/main/java/com/mindskip/xzs/repository/ExamPaperAnswerMapper.java
@@ -6,6 +6,7 @@
import com.mindskip.xzs.domain.other.KeyValue;
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.paper.ExamPaperGradePageRequestVM;
import com.mindskip.xzs.viewmodel.admin.paper.ExamPaperGradeQuery;
import com.mindskip.xzs.viewmodel.student.exampaper.ExamPaperAnswerPageVM;
@@ -46,7 +47,5 @@
List<TeamplatesUserExcelVO> getByTimeOne();
-
-
-
+ void setMissExam(ExamPaperEditRequestVM model);
}
diff --git a/src/main/java/com/mindskip/xzs/repository/UserMapper.java b/src/main/java/com/mindskip/xzs/repository/UserMapper.java
index 1895320..4ae498b 100644
--- a/src/main/java/com/mindskip/xzs/repository/UserMapper.java
+++ b/src/main/java/com/mindskip/xzs/repository/UserMapper.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.other.KeyValue;
import com.mindskip.xzs.domain.User;
@@ -158,4 +159,6 @@
* @param deptId
*/
void clearDeptAdmin(List<Integer> userIds, @Param("deptId") Integer deptId);
+
+ User getUserByExam(ExamPaper examPaper);
}
diff --git a/src/main/java/com/mindskip/xzs/service/ExamPaperService.java b/src/main/java/com/mindskip/xzs/service/ExamPaperService.java
index 015aa52..ba50cd5 100644
--- a/src/main/java/com/mindskip/xzs/service/ExamPaperService.java
+++ b/src/main/java/com/mindskip/xzs/service/ExamPaperService.java
@@ -38,4 +38,5 @@
List<PaperExcelVO> getPaperExcelById(Integer id);
+ void missExam(ExamPaperEditRequestVM model);
}
diff --git a/src/main/java/com/mindskip/xzs/service/UserService.java b/src/main/java/com/mindskip/xzs/service/UserService.java
index ab61ec6..6fc577d 100644
--- a/src/main/java/com/mindskip/xzs/service/UserService.java
+++ b/src/main/java/com/mindskip/xzs/service/UserService.java
@@ -1,5 +1,6 @@
package com.mindskip.xzs.service;
+import com.mindskip.xzs.domain.ExamPaper;
import com.mindskip.xzs.domain.other.KeyValue;
import com.mindskip.xzs.domain.User;
import com.mindskip.xzs.domain.vo.UserVO;
@@ -135,4 +136,6 @@
User getUserByRealName(String realName);
void setStatus(UserVO user);
+
+ User getUserByExam(ExamPaper examPaper);
}
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 cb4ac16..8db064e 100644
--- a/src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java
+++ b/src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java
@@ -10,6 +10,7 @@
import com.mindskip.xzs.domain.exam.ExamPaperTitleItemObject;
import com.mindskip.xzs.domain.other.KeyValue;
import com.mindskip.xzs.domain.vo.PaperExcelVO;
+import com.mindskip.xzs.repository.ExamPaperAnswerMapper;
import com.mindskip.xzs.repository.ExamPaperMapper;
import com.mindskip.xzs.repository.QuestionMapper;
import com.mindskip.xzs.repository.UserDepartmentMapper;
@@ -25,11 +26,13 @@
import com.mindskip.xzs.viewmodel.student.dashboard.PaperFilter;
import com.mindskip.xzs.viewmodel.student.dashboard.PaperInfo;
import com.mindskip.xzs.viewmodel.student.exam.ExamPaperPageVM;
+import org.apache.commons.lang3.ObjectUtils;
import org.modelmapper.ModelMapper;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;
@@ -40,6 +43,7 @@
protected final static ModelMapper modelMapper = ModelMapperSingle.Instance();
private final ExamPaperMapper examPaperMapper;
+ private final ExamPaperAnswerMapper examPaperAnswerMapper;
private final QuestionMapper questionMapper;
private final TextContentService textContentService;
private final QuestionService questionService;
@@ -55,9 +59,10 @@
@Autowired
- public ExamPaperServiceImpl(ExamPaperMapper examPaperMapper, QuestionMapper questionMapper, TextContentService textContentService, QuestionService questionService, SubjectService subjectService, ExamPaperDepartmentService examPaperDepartmentService, ExamPaperSubjectService examPaperSubjectService, QuestionSubjectService questionSubjectService, ExamPaperUserService examPaperUserService, UserService userService, UserDepartmentMapper userDepartmentMapper, DepartmentService departmentService) {
+ public ExamPaperServiceImpl(ExamPaperMapper examPaperMapper, ExamPaperAnswerMapper examPaperAnswerMapper, QuestionMapper questionMapper, TextContentService textContentService, QuestionService questionService, SubjectService subjectService, ExamPaperDepartmentService examPaperDepartmentService, ExamPaperSubjectService examPaperSubjectService, QuestionSubjectService questionSubjectService, ExamPaperUserService examPaperUserService, UserService userService, UserDepartmentMapper userDepartmentMapper, DepartmentService departmentService) {
super(examPaperMapper);
this.examPaperMapper = examPaperMapper;
+ this.examPaperAnswerMapper = examPaperAnswerMapper;
this.questionMapper = questionMapper;
this.textContentService = textContentService;
this.questionService = questionService;
@@ -596,4 +601,18 @@
return randomNumber;
}
+ @Override
+ @Transactional
+ public void missExam(ExamPaperEditRequestVM model) {
+ // 淇敼鍘熸潵鐨勮瘯鍗锋椂闂�
+ if (ObjectUtils.isNotEmpty(model.getLimitDateTime())) {
+ ExamPaper examPaper = new ExamPaper();
+ examPaper.setId(model.getExamPaperId());
+ examPaper.setLimitStartTime(DateTimeUtil.parse(model.getLimitDateTime().get(0), DateTimeUtil.STANDER_FORMAT));
+ examPaper.setLimitEndTime(DateTimeUtil.parse(model.getLimitDateTime().get(1), DateTimeUtil.STANDER_FORMAT));
+ examPaperMapper.updateByPrimaryKeySelective(examPaper);
+ }
+ // 鏍规嵁鑰冭瘯id灏嗛�夋嫨鐨勮ˉ鑰冭�冪敓鐨勮�冭瘯鎴愮哗璁剧疆涓烘棤鏁�
+ examPaperAnswerMapper.setMissExam(model);
+ }
}
diff --git a/src/main/java/com/mindskip/xzs/service/impl/UserServiceImpl.java b/src/main/java/com/mindskip/xzs/service/impl/UserServiceImpl.java
index b7c4452..b470504 100644
--- a/src/main/java/com/mindskip/xzs/service/impl/UserServiceImpl.java
+++ b/src/main/java/com/mindskip/xzs/service/impl/UserServiceImpl.java
@@ -1,5 +1,6 @@
package com.mindskip.xzs.service.impl;
+import com.mindskip.xzs.domain.ExamPaper;
import com.mindskip.xzs.domain.other.KeyValue;
import com.mindskip.xzs.domain.vo.UserVO;
import com.mindskip.xzs.exception.BusinessException;
@@ -178,4 +179,8 @@
userMapper.setStatus(user);
}
+ @Override
+ public User getUserByExam(ExamPaper examPaper) {
+ return userMapper.getUserByExam(examPaper);
+ }
}
diff --git a/src/main/java/com/mindskip/xzs/viewmodel/admin/exam/ExamPaperEditRequestVM.java b/src/main/java/com/mindskip/xzs/viewmodel/admin/exam/ExamPaperEditRequestVM.java
index 5fc0d0a..67fc687 100644
--- a/src/main/java/com/mindskip/xzs/viewmodel/admin/exam/ExamPaperEditRequestVM.java
+++ b/src/main/java/com/mindskip/xzs/viewmodel/admin/exam/ExamPaperEditRequestVM.java
@@ -54,5 +54,6 @@
private String type;
private String status;
private String menuIds;
+ private Integer examPaperId;
}
diff --git a/src/main/resources/mapper/ExamPaperAnswerMapper.xml b/src/main/resources/mapper/ExamPaperAnswerMapper.xml
index 4cf7b6d..afaa892 100644
--- a/src/main/resources/mapper/ExamPaperAnswerMapper.xml
+++ b/src/main/resources/mapper/ExamPaperAnswerMapper.xml
@@ -231,11 +231,19 @@
where id = #{id,jdbcType=INTEGER}
</update>
+ <update id="setMissExam">
+ update t_exam_paper_answer
+ set invalid = 1
+ where exam_paper_id = #{examPaperId}
+ and create_user in (
+ <foreach collection="userIds" item="item" index="index" separator=",">
+ #{item}
+ </foreach>
+ )
+ </update>
-
-
- <select id="studentPage" resultMap="BaseResultMap" parameterType="com.mindskip.xzs.viewmodel.student.exampaper.ExamPaperAnswerPageVM">
+ <select id="studentPage" resultMap="BaseResultMap" parameterType="com.mindskip.xzs.viewmodel.student.exampaper.ExamPaperAnswerPageVM">
SELECT
<include refid="Base_Column_List"/>
FROM t_exam_paper_answer
diff --git a/src/main/resources/mapper/UserMapper.xml b/src/main/resources/mapper/UserMapper.xml
index bf9ec38..62be0a3 100644
--- a/src/main/resources/mapper/UserMapper.xml
+++ b/src/main/resources/mapper/UserMapper.xml
@@ -494,4 +494,18 @@
tu.id desc
</select>
+ <select id="getUserByExam" resultType="com.mindskip.xzs.domain.User">
+ <![CDATA[
+ SELECT
+ d.*
+ 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
+ left join t_user d on b.user_id = d.id
+ WHERE a.id = #{id}
+ and (c.id is null or (user_score / paper_score) < 0.6)
+ and b.user_id = #{createUser}
+ ]]>
+ </select>
+
</mapper>
--
Gitblit v1.8.0