From 47cd9ecc0eff38ffe6b3b794b2bf197e958f4403 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期三, 14 五月 2025 15:50:57 +0800 Subject: [PATCH] bug:学员有状态不能修改问题 --- src/main/java/com/mindskip/xzs/controller/admin/ExamTemplatesUserCountController.java | 98 +++++++++++++++++++++++++++++++++++++----------- 1 files changed, 75 insertions(+), 23 deletions(-) diff --git a/src/main/java/com/mindskip/xzs/controller/admin/ExamTemplatesUserCountController.java b/src/main/java/com/mindskip/xzs/controller/admin/ExamTemplatesUserCountController.java index 1f3375e..ae8c8a3 100644 --- a/src/main/java/com/mindskip/xzs/controller/admin/ExamTemplatesUserCountController.java +++ b/src/main/java/com/mindskip/xzs/controller/admin/ExamTemplatesUserCountController.java @@ -5,14 +5,14 @@ import com.github.pagehelper.PageInfo; import com.mindskip.xzs.base.BaseApiController; import com.mindskip.xzs.base.RestResponse; -import com.mindskip.xzs.domain.ExamPaperAnswer; -import com.mindskip.xzs.domain.ExamTemplates; -import com.mindskip.xzs.domain.ExamTemplatesUserCount; -import com.mindskip.xzs.domain.User; +import com.mindskip.xzs.domain.*; import com.mindskip.xzs.domain.vo.AnswerVO; import com.mindskip.xzs.domain.vo.ExamTemplatesUserCountVO; +import com.mindskip.xzs.domain.vo.TeamplatesUserExcelVO; import com.mindskip.xzs.domain.vo.UserCountExcelVO; +import com.mindskip.xzs.repository.ExamPaperAnswerMapper; import com.mindskip.xzs.repository.ExamTemplatesMapper; +import com.mindskip.xzs.repository.ExamTemplatesUserMapper; import com.mindskip.xzs.service.ExamPaperAnswerService; import com.mindskip.xzs.service.ExamTemplatesUserCountService; import com.mindskip.xzs.service.UserService; @@ -23,14 +23,11 @@ import lombok.SneakyThrows; import org.springframework.web.bind.annotation.*; -import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import java.io.InputStream; -import java.io.UnsupportedEncodingException; -import java.net.URLEncoder; import java.util.ArrayList; import java.util.List; +import java.util.Objects; import java.util.stream.Collectors; @RestController("AdminExamTemplatesUserCountController") @@ -42,12 +39,16 @@ private final ExamTemplatesMapper examTemplatesMapper; private final UserService userService; private final ExamPaperAnswerService examPaperAnswerService; + private final ExamPaperAnswerMapper examPaperAnswerMapper; + private final ExamTemplatesUserMapper examTemplatesUserMapper; - public ExamTemplatesUserCountController(ExamTemplatesUserCountService examTemplatesUserCountService, ExamTemplatesMapper examTemplatesMapper, UserService userService, ExamPaperAnswerService examPaperAnswerService) { + public ExamTemplatesUserCountController(ExamTemplatesUserCountService examTemplatesUserCountService, ExamTemplatesMapper examTemplatesMapper, UserService userService, ExamPaperAnswerService examPaperAnswerService, ExamPaperAnswerMapper examTemplatesUserCountMapper, ExamTemplatesUserMapper examTemplatesUserMapper) { this.examTemplatesUserCountService = examTemplatesUserCountService; this.examTemplatesMapper = examTemplatesMapper; this.userService = userService; this.examPaperAnswerService = examPaperAnswerService; + this.examPaperAnswerMapper = examTemplatesUserCountMapper; + this.examTemplatesUserMapper = examTemplatesUserMapper; } @RequestMapping(value = "/list", method = RequestMethod.POST) @@ -62,8 +63,14 @@ } PageInfo<ExamTemplatesUserCountVO> info = examTemplatesUserCountService.list(model); info.setList(info.getList().stream().map(e -> { - e.setName(examTemplatesMapper.getById(e.getId()).getName()); - e.setUserName(userService.getUserById(e.getUserId()).getRealName()); + ExamTemplates byId = examTemplatesMapper.getById(e.getId()); + if (Objects.nonNull(byId)) { + e.setName(byId.getName()); + } + User userById = userService.getUserById(e.getUserId()); + if (Objects.nonNull(userById)) { + e.setUserName(userById.getRealName()); + } return e; }).collect(Collectors.toList())); return RestResponse.ok(info); @@ -116,21 +123,66 @@ @SneakyThrows public void exportTemplatesId(@PathVariable("id") Integer id, HttpServletResponse response, HttpServletRequest request) { List<UserCountExcelVO> list = examTemplatesUserCountService.getByExamTemplates(id); -// response.setContentType("application/vnd.ms-excel"); -// response.setCharacterEncoding("UTF-8"); -// -// String fileName = URLEncoder.encode("1","UTF-8"); -// response.setHeader("Content-disposition","attachment;filename=" + fileName + ".xlsx"); -// -// ServletOutputStream outputStream = response.getOutputStream(); -// InputStream resourceAsStream = Application.class.getClassLoader().getResourceAsStream("count.xlsx"); -// EasyExcel.write(outputStream) -// .withTemplate(resourceAsStream) -// .sheet() -// .doFill(list); ExcelUtils.export(response,"涓汉缁冧範",list,UserCountExcelVO.class); } + @RequestMapping(value = "/exportRandownTemplatesId/{id}", method = RequestMethod.GET) + @SneakyThrows + public void exportRandownTemplatesId(@PathVariable("id") Integer id, HttpServletResponse response, HttpServletRequest request) { + // 鏌ュ嚭璇曞嵎妯℃澘 + ExamTemplates byId = examTemplatesMapper.getById(id); + // 鏌ュ嚭璇ユā鏉跨殑鍙傝�冧汉鏁版嵁 + List<ExamTemplatesUser> byId1 = examTemplatesUserMapper.getById(id); + // 鏌ュ嚭杩欏紶璇曞嵎鐨勫弬鑰冭褰� + List<ExamTemplatesUserCount> byTemplates = examTemplatesUserCountService.getByTemplates(id); + // 鑾峰彇姣忎釜浜虹殑璇曞嵎ID + List<Integer> list = byTemplates.stream().map(ExamTemplatesUserCount::getExamPaperId).collect(Collectors.toList()); + // 鑾峰彇鍙傝�冪敤鎴稩D + List<Integer> userIds = byId1.stream().map(e->Integer.parseInt(e.getUserId())).collect(Collectors.toList()); + // 绛斿嵎 + List<ExamPaperAnswer> result = new ArrayList<>(); + + // 鑾峰彇鑰冭瘯绛斿嵎 + if(list.size()!=0){ + result = examPaperAnswerMapper.getResult(list); + } + + //鐢ㄦ埛 + List<User> users = userService.selectByIds(userIds); + + List<TeamplatesUserExcelVO> list1 = new ArrayList<>(); + + for (User user : users) { + TeamplatesUserExcelVO vo = new TeamplatesUserExcelVO(); + vo.setName(byId.getName()); + vo.setUserName(user.getRealName()); + Boolean str = false; + for (ExamPaperAnswer answer: result) { + if(user.getId().equals(answer.getCreateUser())){ + str = true; + vo.setUserScore(answer.getUserScore() == 0 ? "0" : String.valueOf(answer.getUserScore() / 10)); + vo.setPaperScore(answer.getPaperScore() == 0 ? "0" : String.valueOf(answer.getPaperScore() / 10)); + vo.setDoTime(answer.getDoTime().toString()); + list1.add(vo); + continue; + } + } + if(!str){ + list1.add(vo); + } + str = false; + + } + ExcelUtils.export(response,"涓汉缁冧範",list1, TeamplatesUserExcelVO.class); + } + + @RequestMapping(value = "/timeOne", method = RequestMethod.GET) + @SneakyThrows + public void time( HttpServletResponse response, HttpServletRequest request) { + List<TeamplatesUserExcelVO> list = examPaperAnswerMapper.getByTimeOne(); + ExcelUtils.export(response,"涓汉缁冧範",list,TeamplatesUserExcelVO.class); + } + } -- Gitblit v1.8.0