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