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