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