From 468109c399d40c1a1f3c30bd443e09951aaf4a64 Mon Sep 17 00:00:00 2001
From: 龚焕茏 <2842157468@qq.com>
Date: 星期三, 15 五月 2024 18:19:03 +0800
Subject: [PATCH] fix:部门管理员角色设置

---
 src/main/java/com/mindskip/xzs/service/impl/DepartmentServiceImpl.java |    6 ++++--
 src/main/java/com/mindskip/xzs/repository/UserMapper.java              |    8 ++++++--
 src/main/resources/mapper/UserMapper.xml                               |   23 +++++++++++++++++++++++
 3 files changed, 33 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/mindskip/xzs/repository/UserMapper.java b/src/main/java/com/mindskip/xzs/repository/UserMapper.java
index 4ae498b..f4708eb 100644
--- a/src/main/java/com/mindskip/xzs/repository/UserMapper.java
+++ b/src/main/java/com/mindskip/xzs/repository/UserMapper.java
@@ -2,14 +2,14 @@
 
 import com.mindskip.xzs.domain.ExamPaper;
 import com.mindskip.xzs.domain.ExamPaperAnswer;
-import com.mindskip.xzs.domain.other.KeyValue;
 import com.mindskip.xzs.domain.User;
+import com.mindskip.xzs.domain.other.KeyValue;
+import com.mindskip.xzs.domain.vo.UpdateDeptAdminVO;
 import com.mindskip.xzs.domain.vo.UserVO;
 import com.mindskip.xzs.viewmodel.admin.paper.ExamPaperGradeQuery;
 import com.mindskip.xzs.viewmodel.admin.user.UserPageRequestVM;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
-import org.springframework.security.core.parameters.P;
 
 import java.util.List;
 import java.util.Map;
@@ -161,4 +161,8 @@
     void clearDeptAdmin(List<Integer> userIds, @Param("deptId") Integer deptId);
 
     User getUserByExam(ExamPaper examPaper);
+
+    void updateUserDeptAdmin(UpdateDeptAdminVO form);
+
+    void cancelUserDeptAdmin(UpdateDeptAdminVO form);
 }
diff --git a/src/main/java/com/mindskip/xzs/service/impl/DepartmentServiceImpl.java b/src/main/java/com/mindskip/xzs/service/impl/DepartmentServiceImpl.java
index d2d83e3..d4d2290 100644
--- a/src/main/java/com/mindskip/xzs/service/impl/DepartmentServiceImpl.java
+++ b/src/main/java/com/mindskip/xzs/service/impl/DepartmentServiceImpl.java
@@ -1,10 +1,8 @@
 package com.mindskip.xzs.service.impl;
 
-import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.mindskip.xzs.domain.Department;
-import com.mindskip.xzs.domain.UserDepartment;
 import com.mindskip.xzs.domain.enums.DeptAdminEnum;
 import com.mindskip.xzs.domain.vo.BaseSelect;
 import com.mindskip.xzs.domain.vo.UpdateDeptAdminVO;
@@ -130,5 +128,9 @@
             // 鏍囪瘑閮ㄩ棬绠$悊鍛�
             userMapper.updateDeptAdmin(form.getAdminIds(), DeptAdminEnum.YES.getValue(), entity.getId());
         }
+        // 淇敼琚�夋嫨鐨勭敤鎴蜂负閮ㄩ棬绠$悊鍛�
+        userMapper.updateUserDeptAdmin(form);
+        // 淇敼娌¤閫夋嫨鐨勭敤鎴峰苟涓斾笉鏄埆鐨勯儴闂ㄧ鐞嗗憳鐨勭敤鎴疯鑹蹭负1
+        userMapper.cancelUserDeptAdmin(form);
     }
 }
diff --git a/src/main/resources/mapper/UserMapper.xml b/src/main/resources/mapper/UserMapper.xml
index 67c6b80..e04892e 100644
--- a/src/main/resources/mapper/UserMapper.xml
+++ b/src/main/resources/mapper/UserMapper.xml
@@ -508,4 +508,27 @@
         ]]>
     </select>
 
+
+    <update id="updateUserDeptAdmin">
+        update t_user set role = -1 where id in
+        <foreach collection="adminIds" item="id" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </update>
+
+    <update id="cancelUserDeptAdmin">
+        update t_user set role = 1 where id in(
+            select user_id from t_user_department where department_id = #{id} and user_id not in
+            <foreach collection="adminIds" item="id" open="(" separator="," close=")">
+                #{id}
+            </foreach>
+             and user_id not in
+            (select user_id from t_user_department where dept_admin = 1 and user_id in
+            (select user_id from t_user_department where department_id = #{id} and user_id not in
+           <foreach collection="adminIds" item="id" open="(" separator="," close=")">
+                #{id}
+            </foreach>
+        )))
+    </update>
+
 </mapper>

--
Gitblit v1.8.0