From 28fe781cf67b1afe29ee069a42b118a2abe6db05 Mon Sep 17 00:00:00 2001
From: 龚焕茏 <2842157468@qq.com>
Date: 星期一, 27 五月 2024 14:03:41 +0800
Subject: [PATCH] feat:审核后才能重新发起用户调动

---
 src/main/java/com/mindskip/xzs/service/impl/UserServiceImpl.java        |   12 +++---
 src/main/java/com/mindskip/xzs/controller/admin/UserController.java     |    4 -
 src/main/java/com/mindskip/xzs/viewmodel/admin/user/UserResponseVM.java |   22 +++++++++++
 src/main/java/com/mindskip/xzs/repository/UserMapper.java               |    3 +
 src/main/java/com/mindskip/xzs/service/UserService.java                 |    3 +
 src/main/resources/mapper/UserMapper.xml                                |   27 ++++++-------
 6 files changed, 45 insertions(+), 26 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 3ce7a9e..8478851 100644
--- a/src/main/java/com/mindskip/xzs/controller/admin/UserController.java
+++ b/src/main/java/com/mindskip/xzs/controller/admin/UserController.java
@@ -50,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<>();
diff --git a/src/main/java/com/mindskip/xzs/repository/UserMapper.java b/src/main/java/com/mindskip/xzs/repository/UserMapper.java
index 3a00eba..a8ef3a0 100644
--- a/src/main/java/com/mindskip/xzs/repository/UserMapper.java
+++ b/src/main/java/com/mindskip/xzs/repository/UserMapper.java
@@ -8,6 +8,7 @@
 import com.mindskip.xzs.domain.vo.UpdateDeptAdminVO;
 import com.mindskip.xzs.viewmodel.admin.paper.ExamPaperGradeQuery;
 import com.mindskip.xzs.viewmodel.admin.user.UserPageRequestVM;
+import com.mindskip.xzs.viewmodel.admin.user.UserResponseVM;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -80,7 +81,7 @@
      * @param requestVM requestVM
      * @return List<User>
      */
-    List<User> userPage(UserPageRequestVM requestVM);
+    List<UserResponseVM> userPage(UserPageRequestVM requestVM);
 
 
     /**
diff --git a/src/main/java/com/mindskip/xzs/service/UserService.java b/src/main/java/com/mindskip/xzs/service/UserService.java
index c5dd26d..7c77c1a 100644
--- a/src/main/java/com/mindskip/xzs/service/UserService.java
+++ b/src/main/java/com/mindskip/xzs/service/UserService.java
@@ -6,6 +6,7 @@
 import com.mindskip.xzs.domain.User;
 import com.mindskip.xzs.domain.other.KeyValue;
 import com.mindskip.xzs.viewmodel.admin.user.UserPageRequestVM;
+import com.mindskip.xzs.viewmodel.admin.user.UserResponseVM;
 
 import java.util.List;
 
@@ -76,7 +77,7 @@
      * @param requestVM requestVM
      * @return PageInfo<User>
      */
-    PageInfo<User> userPage(UserPageRequestVM requestVM);
+    PageInfo<UserResponseVM> userPage(UserPageRequestVM requestVM);
 
 
     /**
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 3435fbf..86dfc09 100644
--- a/src/main/java/com/mindskip/xzs/service/impl/UserServiceImpl.java
+++ b/src/main/java/com/mindskip/xzs/service/impl/UserServiceImpl.java
@@ -1,17 +1,17 @@
 package com.mindskip.xzs.service.impl;
 
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
 import com.mindskip.xzs.domain.Department;
 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;
 import com.mindskip.xzs.domain.User;
+import com.mindskip.xzs.domain.other.KeyValue;
 import com.mindskip.xzs.event.OnRegistrationCompleteEvent;
+import com.mindskip.xzs.exception.BusinessException;
 import com.mindskip.xzs.repository.UserMapper;
 import com.mindskip.xzs.service.UserService;
 import com.mindskip.xzs.viewmodel.admin.user.UserPageRequestVM;
-import com.github.pagehelper.PageHelper;
-import com.github.pagehelper.PageInfo;
+import com.mindskip.xzs.viewmodel.admin.user.UserResponseVM;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.ApplicationEventPublisher;
 import org.springframework.stereotype.Service;
@@ -94,7 +94,7 @@
 
 
     @Override
-    public PageInfo<User> userPage(UserPageRequestVM requestVM) {
+    public PageInfo<UserResponseVM> userPage(UserPageRequestVM requestVM) {
         return PageHelper.startPage(requestVM.getPageIndex(), requestVM.getPageSize(), "id desc").doSelectPageInfo(() ->
                 userMapper.userPage(requestVM)
         );
diff --git a/src/main/java/com/mindskip/xzs/viewmodel/admin/user/UserResponseVM.java b/src/main/java/com/mindskip/xzs/viewmodel/admin/user/UserResponseVM.java
index ca26641..c7e389e 100644
--- a/src/main/java/com/mindskip/xzs/viewmodel/admin/user/UserResponseVM.java
+++ b/src/main/java/com/mindskip/xzs/viewmodel/admin/user/UserResponseVM.java
@@ -1,7 +1,9 @@
 package com.mindskip.xzs.viewmodel.admin.user;
 
 import com.mindskip.xzs.domain.User;
+import com.mindskip.xzs.domain.enums.DepartmentExamineEnum;
 import com.mindskip.xzs.domain.enums.UserConditionEnum;
+import com.mindskip.xzs.domain.enums.UserConditionExamineEnum;
 import com.mindskip.xzs.utility.DateTimeUtil;
 import com.mindskip.xzs.viewmodel.BaseVM;
 
@@ -56,6 +58,26 @@
 
     private String password;
 
+    private DepartmentExamineEnum departmentExamineResult;
+
+    private UserConditionExamineEnum conditionExamineResult;
+
+    public DepartmentExamineEnum getDepartmentExamineResult() {
+        return departmentExamineResult;
+    }
+
+    public void setDepartmentExamineResult(DepartmentExamineEnum departmentExamineResult) {
+        this.departmentExamineResult = departmentExamineResult;
+    }
+
+    public UserConditionExamineEnum getConditionExamineResult() {
+        return conditionExamineResult;
+    }
+
+    public void setConditionExamineResult(UserConditionExamineEnum conditionExamineResult) {
+        this.conditionExamineResult = conditionExamineResult;
+    }
+
     public String getPassword() {
         return password;
     }
diff --git a/src/main/resources/mapper/UserMapper.xml b/src/main/resources/mapper/UserMapper.xml
index 68d3dfc..7b36ba1 100644
--- a/src/main/resources/mapper/UserMapper.xml
+++ b/src/main/resources/mapper/UserMapper.xml
@@ -329,30 +329,27 @@
     </select>
 
 
-    <select id="userPage" resultMap="BaseResultMap"
-            parameterType="com.mindskip.xzs.viewmodel.admin.user.UserPageRequestVM">
+    <select id="userPage" resultType="com.mindskip.xzs.viewmodel.admin.user.UserResponseVM" parameterType="com.mindskip.xzs.viewmodel.admin.user.UserPageRequestVM">
         SELECT
-        a.*
+        a.*,
+        c.result as departmentExamineResult,
+        d.result as conditionExamineResult
         FROM t_user a
-        lEFT join
-            (select * from t_user_department
-            <if test="departmentId != null and departmentId.size() > 0">
-                where department_id in <foreach collection="departmentId" item="item" index="index" open="(" separator="," close=")"> #{item} </foreach>
-            </if>
-                group by user_id
-            )
-            b on a.id = b.user_id
-        where
+        LEFT JOIN t_user_department b ON a.id = b.user_id
+        LEFT JOIN t_department_examine c ON a.id = c.user_id AND c.deleted = 0 AND c.result = 0
+        LEFT JOIN t_user_condition_examine d ON a.id = d.user_id AND d.deleted = 0 AND d.result = 0
+        WHERE
             a.deleted=0
             <if test="departmentId != null and departmentId.size() > 0">
-                and b.department_id in <foreach collection="departmentId" item="item" index="index" open="(" separator="," close=")"> #{item} </foreach>
+                AND b.department_id IN <foreach collection="departmentId" item="item" index="index" open="(" separator="," close=")"> #{item} </foreach>
             </if>
             <if test="userName != null and userName != ''">
-                and real_name like concat('%',#{userName},'%')
+                AND real_name LIKE concat('%',#{userName},'%')
             </if>
             <if test="role != null and role.size() > 0">
-                and role in <foreach collection="role" item="item" open="(" separator="," close=")"> #{item} </foreach>
+                AND role IN <foreach collection="role" item="item" open="(" separator="," close=")"> #{item} </foreach>
             </if>
+        GROUP BY a.id
     </select>
 
 

--
Gitblit v1.8.0