From c1dd40bc0f0301de4a959aae69706e8f207e9899 Mon Sep 17 00:00:00 2001
From: 龚焕茏 <2842157468@qq.com>
Date: 星期二, 16 七月 2024 09:56:19 +0800
Subject: [PATCH] feat:补考保留最高分

---
 src/main/java/com/mindskip/xzs/controller/admin/UserController.java |   27 +++++++++++++++++++--------
 1 files changed, 19 insertions(+), 8 deletions(-)

diff --git a/src/main/java/com/mindskip/xzs/controller/admin/UserController.java b/src/main/java/com/mindskip/xzs/controller/admin/UserController.java
index 49a14b9..d155005 100644
--- a/src/main/java/com/mindskip/xzs/controller/admin/UserController.java
+++ b/src/main/java/com/mindskip/xzs/controller/admin/UserController.java
@@ -21,10 +21,7 @@
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.validation.Valid;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.UUID;
+import java.util.*;
 import java.util.stream.Collectors;
 
 
@@ -53,9 +50,7 @@
     @RequestMapping(value = "/page/list", method = RequestMethod.POST)
     public RestResponse<PageInfo<UserResponseVM>> pageList(@RequestBody UserPageRequestVM model) {
         model.setDepartmentId(ObjectUtils.isNotEmpty(model.getDepartmentId()) ? model.getDepartmentId() : getAdminDeptIds());
-        PageInfo<User> pageInfo = userService.userPage(model);
-        PageInfo<UserResponseVM> page = PageInfoHelper.copyMap(pageInfo, d ->
-                UserResponseVM.from(d));
+        PageInfo<UserResponseVM> page = userService.userPage(model);
         page.setList(page.getList().stream().map(e->{
             List<UserDepartment> userDepartments = userDepartmentMapper.selectByUserId(e.getId());
             List<Department> list = new ArrayList<>();
@@ -141,15 +136,21 @@
             user.setModifyTime(new Date());
             userService.updateByIdFilter(user);
         }
+        Map<Integer, UserDepartment> oldDeptUser = userDepartmentMapper.selectByUserId(user.getId()).stream().collect(Collectors.toMap(UserDepartment::getDepartmentId, userDept -> userDept));
         userDepartmentMapper.removeByUserId(user.getId());
         for (Integer s : model.getDeptIds()) {
             UserDepartment userDepartment = new UserDepartment();
             userDepartment.setUserId(user.getId());
             userDepartment.setDepartmentId(s);
+            if (Objects.nonNull(oldDeptUser.get(s))) {
+                userDepartment.setDeptAdmin(oldDeptUser.get(s).getDeptAdmin());
+            } else {
+                userDepartment.setDeptAdmin("0");
+            }
             userDepartmentMapper.insert(userDepartment);
         }
+        tagService.removeUserTagByUserId(user.getId());
         if (ObjectUtils.isNotEmpty(model.getTagIds())) {
-            tagService.removeUserTagByUserId(user.getId());
             tagService.saveBatchUserTag(model.getTagIds().stream().map(
                     tagId -> new UserTag() {{
                         setUserId(user.getId());
@@ -230,4 +231,14 @@
         return RestResponse.ok();
     }
 
+    @GetMapping("/getFailExamUser/{examPaperId}")
+    public RestResponse<List<User>> getFailExamUser(@PathVariable Integer examPaperId) {
+        return RestResponse.ok(userService.getFailExamUser(examPaperId));
+    }
+
+    @GetMapping("/getFailTemplateUser/{templateId}")
+    public RestResponse<List<User>> getFailTemplateUser(@PathVariable Integer templateId) {
+        return RestResponse.ok(userService.getFailTemplateUser(templateId));
+    }
+
 }

--
Gitblit v1.8.0