src/main/java/com/mindskip/xzs/controller/admin/DepartmentController.java
@@ -118,6 +118,35 @@ return RestResponse.ok(res); } @RequestMapping(value = "/getDepartmentUserByTemplateId", method = RequestMethod.POST) public RestResponse<List<DepartmentVO>> getDepartmentUserByTemplateId(Integer templateId){ List<DepartmentVO> res = departmentService.gets(isDeptAdmin() ? getAdminDeptIds() : null) .stream().map(e->{ DepartmentVO departmentVO = new DepartmentVO(); List<UserDepartment> userDepartments = userDepartmentMapper.selectByDepartmentId(e.getId()); List<User> list = new ArrayList<>(); for (UserDepartment userDepartment : userDepartments) { User user; // 选择补考用户时查询符合补考条件的用户 if (templateId != null) { ExamPaper examPaper = new ExamPaper(); examPaper.setCreateUser(userDepartment.getUserId()); examPaper.setId(templateId); user = userService.getUserByExamByTemplateId(examPaper); } else { user = userService.getUserById(userDepartment.getUserId()); } if (ObjectUtils.isNotEmpty(user)) { list.add(user); } } departmentVO.setUserList(list); departmentVO.setDepartment(e); return departmentVO; }).collect(Collectors.toList()); return RestResponse.ok(res); } @RequestMapping(value = "/getDeptAdmins", method = RequestMethod.GET) public RestResponse<List<Department>> getDeptAdmins(){ return RestResponse.ok(userService.getDeptAdmins(isDeptAdmin() ? getCurrentUser().getId() : null)); src/main/java/com/mindskip/xzs/controller/admin/ExamPaperController.java
@@ -5,6 +5,7 @@ import com.mindskip.xzs.base.RestResponse; import com.mindskip.xzs.domain.ExamPaper; import com.mindskip.xzs.domain.ExamPaperSubject; import com.mindskip.xzs.domain.vo.ExamTemplatesVO; import com.mindskip.xzs.domain.vo.PaperExcelVO; import com.mindskip.xzs.domain.vo.UserVO; import com.mindskip.xzs.service.ExamPaperDepartmentService; @@ -108,6 +109,17 @@ return RestResponse.ok("操作成功"); } /** * 补考 * @param model 数据 * @return 操作结果 */ @RequestMapping(value = "/missExamByTemplateId", method = RequestMethod.POST) public RestResponse<String> missExamByTemplateId(@RequestBody ExamTemplatesVO model) { examPaperService.missExamByTemplateId(model); return RestResponse.ok("操作成功"); } @RequestMapping(value = "/select/{id}", method = RequestMethod.POST) public RestResponse<ExamPaperEditRequestVO> select(@PathVariable Integer id) { ExamPaperEditRequestVO vm = examPaperService.examPaperToVM(id); src/main/java/com/mindskip/xzs/domain/vo/ExamTemplatesVO.java
@@ -24,4 +24,8 @@ */ private List<Integer> deptId; private List<Integer> userIds; private List<Integer> paperIds; } src/main/java/com/mindskip/xzs/repository/ExamPaperAnswerMapper.java
@@ -5,6 +5,7 @@ import com.mindskip.xzs.domain.ScoreTemplatesUserCount; import com.mindskip.xzs.domain.other.KeyValue; import com.mindskip.xzs.domain.vo.ExamPaperStatisticVO; import com.mindskip.xzs.domain.vo.ExamTemplatesVO; import com.mindskip.xzs.domain.vo.TeamplatesUserExcelVO; import com.mindskip.xzs.viewmodel.admin.exam.ExamPaperEditRequestVM; import com.mindskip.xzs.viewmodel.admin.paper.ExamPaperGradePageRequestVM; @@ -50,8 +51,14 @@ void setMissExam(ExamPaperEditRequestVM model); void setMissExam(ExamTemplatesVO model); void setMissExamByTemplate(ExamTemplatesVO model); void insertDefault(ExamPaperEditRequestVM model); void insertDefaultByTemplate(ExamTemplatesVO model); Map<String, Object> histogram(ExamPaperStatisticVO examPaperStatisticVO); Map<String, Object> pieChart(ExamPaperStatisticVO examPaperStatisticVO); src/main/java/com/mindskip/xzs/repository/ExamPaperMapper.java
@@ -2,6 +2,7 @@ import com.mindskip.xzs.domain.ExamPaper; import com.mindskip.xzs.domain.other.KeyValue; import com.mindskip.xzs.domain.vo.ExamTemplatesVO; import com.mindskip.xzs.domain.vo.PaperExcelVO; import com.mindskip.xzs.domain.vo.UserVO; import com.mindskip.xzs.viewmodel.admin.exam.ExamPaperPageRequestVM; @@ -42,4 +43,6 @@ List<ExamPaper> list(List<Integer> deptIds); List<UserVO> selectStudent(UserVO userVO); List<Integer> getExamPaperByTemplateId(ExamTemplatesVO model); } src/main/java/com/mindskip/xzs/repository/UserMapper.java
@@ -170,4 +170,6 @@ List<Integer> getDeptAdminIds(Integer id); List<Department> getDeptAdmins(Integer id); User getUserByExamByTemplateId(ExamPaper examPaper); } src/main/java/com/mindskip/xzs/service/ExamPaperService.java
@@ -3,6 +3,7 @@ import com.github.pagehelper.PageInfo; import com.mindskip.xzs.domain.ExamPaper; import com.mindskip.xzs.domain.User; import com.mindskip.xzs.domain.vo.ExamTemplatesVO; import com.mindskip.xzs.domain.vo.PaperExcelVO; import com.mindskip.xzs.domain.vo.UserVO; import com.mindskip.xzs.viewmodel.admin.exam.ExamPaperEditRequestVM; @@ -50,4 +51,6 @@ * @return */ PageInfo<UserVO> selectStudent(UserVO userVO, List<Integer> adminDeptIds); void missExamByTemplateId(ExamTemplatesVO model); } src/main/java/com/mindskip/xzs/service/UserService.java
@@ -142,4 +142,6 @@ List<Integer> getDeptAdminIds(Integer id); List<Department> getDeptAdmins(Integer id); User getUserByExamByTemplateId(ExamPaper examPaper); } src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java
@@ -9,6 +9,7 @@ import com.mindskip.xzs.domain.exam.ExamPaperQuestionItemObject; import com.mindskip.xzs.domain.exam.ExamPaperTitleItemObject; import com.mindskip.xzs.domain.other.KeyValue; import com.mindskip.xzs.domain.vo.ExamTemplatesVO; import com.mindskip.xzs.domain.vo.PaperExcelVO; import com.mindskip.xzs.domain.vo.UserVO; import com.mindskip.xzs.repository.ExamPaperAnswerMapper; @@ -626,6 +627,15 @@ } @Override @Transactional public void missExamByTemplateId(ExamTemplatesVO model) { List<Integer> id = examPaperMapper.getExamPaperByTemplateId(model); model.setPaperIds(id); // 根据考试id将选择的补考考生的考试成绩设置为无效 examPaperAnswerMapper.setMissExamByTemplate(model); } @Override public List<ExamPaper> list(List<Integer> deptIds) { return examPaperMapper.list(deptIds); } src/main/java/com/mindskip/xzs/service/impl/UserServiceImpl.java
@@ -194,4 +194,9 @@ public List<Department> getDeptAdmins(Integer id) { return userMapper.getDeptAdmins(id); } @Override public User getUserByExamByTemplateId(ExamPaper examPaper) { return userMapper.getUserByExamByTemplateId(examPaper); } } src/main/resources/mapper/ExamPaperAnswerMapper.xml
@@ -242,6 +242,21 @@ ) </update> <update id="setMissExamByTemplate"> update t_exam_paper_answer set invalid = 1 where exam_paper_id in <foreach collection="paperIds" item="item" separator="," open="(" close=")"> #{item} </foreach> 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 src/main/resources/mapper/ExamPaperMapper.xml
@@ -471,4 +471,8 @@ order by a.id </select> <select id="getExamPaperByTemplateId" resultType="java.lang.Integer" parameterType="com.mindskip.xzs.domain.vo.ExamTemplatesVO"> select exam_paper_id from t_exam_templates_user_count where exam_templates_id = #{id} </select> </mapper> src/main/resources/mapper/UserMapper.xml
@@ -554,4 +554,19 @@ </if> </select> <select id="getUserByExamByTemplateId" resultType="com.mindskip.xzs.domain.User" parameterType="com.mindskip.xzs.domain.ExamPaper"> <![CDATA[ SELECT DISTINCT d.* FROM t_exam_templates a INNER JOIN t_exam_templates_user_count b ON a.id = b.exam_templates_id and a.id = ${id} LEFT JOIN t_exam_paper_answer c ON b.exam_paper_id = c.exam_paper_id AND c.create_user = b.user_id and invalid = 0 LEFT JOIN t_user d ON b.user_id = d.id WHERE ( c.id IS NULL OR ( user_score / paper_score ) < 0.6 ) AND b.user_id = #{createUser} ]]> </select> </mapper>