From a9b46cbcc65da51f64f333d9b18aa6a575612012 Mon Sep 17 00:00:00 2001
From: RuoYi <yzz_ivy@163.com>
Date: 星期三, 09 十二月 2020 10:16:47 +0800
Subject: [PATCH] 删除用户和角色解绑关联

---
 src/main/resources/mybatis/system/SysRoleMenuMapper.xml                     |    7 +++++++
 src/main/java/com/ruoyi/project/system/mapper/SysRoleMenuMapper.java        |    8 ++++++++
 src/main/java/com/ruoyi/project/system/service/impl/SysUserServiceImpl.java |    6 ++++++
 src/main/java/com/ruoyi/project/system/service/impl/SysRoleServiceImpl.java |   10 ++++++++++
 4 files changed, 31 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/ruoyi/project/system/mapper/SysRoleMenuMapper.java b/src/main/java/com/ruoyi/project/system/mapper/SysRoleMenuMapper.java
index 8d2e376..da5b505 100644
--- a/src/main/java/com/ruoyi/project/system/mapper/SysRoleMenuMapper.java
+++ b/src/main/java/com/ruoyi/project/system/mapper/SysRoleMenuMapper.java
@@ -27,6 +27,14 @@
     public int deleteRoleMenuByRoleId(Long roleId);
 
     /**
+     * 鎵归噺鍒犻櫎瑙掕壊鑿滃崟鍏宠仈淇℃伅
+     * 
+     * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID
+     * @return 缁撴灉
+     */
+    public int deleteRoleMenu(Long[] ids);
+
+    /**
      * 鎵归噺鏂板瑙掕壊鑿滃崟淇℃伅
      * 
      * @param roleMenuList 瑙掕壊鑿滃崟鍒楄〃
diff --git a/src/main/java/com/ruoyi/project/system/service/impl/SysRoleServiceImpl.java b/src/main/java/com/ruoyi/project/system/service/impl/SysRoleServiceImpl.java
index 71f3c66..2dea15d 100644
--- a/src/main/java/com/ruoyi/project/system/service/impl/SysRoleServiceImpl.java
+++ b/src/main/java/com/ruoyi/project/system/service/impl/SysRoleServiceImpl.java
@@ -290,8 +290,13 @@
      * @return 缁撴灉
      */
     @Override
+    @Transactional
     public int deleteRoleById(Long roleId)
     {
+        // 鍒犻櫎瑙掕壊涓庤彍鍗曞叧鑱�
+        roleMenuMapper.deleteRoleMenuByRoleId(roleId);
+        // 鍒犻櫎瑙掕壊涓庨儴闂ㄥ叧鑱�
+        roleDeptMapper.deleteRoleDeptByRoleId(roleId);
         return roleMapper.deleteRoleById(roleId);
     }
 
@@ -302,6 +307,7 @@
      * @return 缁撴灉
      */
     @Override
+    @Transactional
     public int deleteRoleByIds(Long[] roleIds)
     {
         for (Long roleId : roleIds)
@@ -313,6 +319,10 @@
                 throw new CustomException(String.format("%1$s宸插垎閰�,涓嶈兘鍒犻櫎", role.getRoleName()));
             }
         }
+        // 鍒犻櫎瑙掕壊涓庤彍鍗曞叧鑱�
+        roleMenuMapper.deleteRoleMenu(roleIds);
+        // 鍒犻櫎瑙掕壊涓庨儴闂ㄥ叧鑱�
+        roleDeptMapper.deleteRoleDept(roleIds);
         return roleMapper.deleteRoleByIds(roleIds);
     }
 }
diff --git a/src/main/java/com/ruoyi/project/system/service/impl/SysUserServiceImpl.java b/src/main/java/com/ruoyi/project/system/service/impl/SysUserServiceImpl.java
index b6842e9..54f9a4f 100644
--- a/src/main/java/com/ruoyi/project/system/service/impl/SysUserServiceImpl.java
+++ b/src/main/java/com/ruoyi/project/system/service/impl/SysUserServiceImpl.java
@@ -363,6 +363,7 @@
      * @return 缁撴灉
      */
     @Override
+    @Transactional
     public int deleteUserById(Long userId)
     {
         // 鍒犻櫎鐢ㄦ埛涓庤鑹插叧鑱�
@@ -379,12 +380,17 @@
      * @return 缁撴灉
      */
     @Override
+    @Transactional
     public int deleteUserByIds(Long[] userIds)
     {
         for (Long userId : userIds)
         {
             checkUserAllowed(new SysUser(userId));
         }
+        // 鍒犻櫎鐢ㄦ埛涓庤鑹插叧鑱�
+        userRoleMapper.deleteUserRole(userIds);
+        // 鍒犻櫎鐢ㄦ埛涓庡矖浣嶅叧鑱�
+        userPostMapper.deleteUserPost(userIds);
         return userMapper.deleteUserByIds(userIds);
     }
 
diff --git a/src/main/resources/mybatis/system/SysRoleMenuMapper.xml b/src/main/resources/mybatis/system/SysRoleMenuMapper.xml
index 005265d..1adf545 100644
--- a/src/main/resources/mybatis/system/SysRoleMenuMapper.xml
+++ b/src/main/resources/mybatis/system/SysRoleMenuMapper.xml
@@ -17,6 +17,13 @@
 		delete from sys_role_menu where role_id=#{roleId}
 	</delete>
 	
+	<delete id="deleteRoleMenu" parameterType="Long">
+ 		delete from sys_role_menu where role_id in
+ 		<foreach collection="array" item="roleId" open="(" separator="," close=")">
+ 			#{roleId}
+        </foreach> 
+ 	</delete>
+ 	
 	<insert id="batchRoleMenu">
 		insert into sys_role_menu(role_id, menu_id) values
 		<foreach item="item" index="index" collection="list" separator=",">

--
Gitblit v1.9.3