Bläddra i källkod

fix 角色删除时删除相应的权限关联关系

A17404李放 3 år sedan
förälder
incheckning
d99e265ddb

+ 2 - 4
nb-system/src/main/java/com/nb/system/controller/SysRoleController.java

@@ -38,8 +38,6 @@ public class SysRoleController {
     @Resource
     private ISysRoleService sysRoleService;
 
-    @Resource
-    private ISysMenuService menuService;
     /**
      * 分页查询
      */
@@ -78,8 +76,8 @@ public class SysRoleController {
     @PostMapping("/remove")
     @SaCheckPermission("system:sysRole:remove")
     @Log(title = "角色管理删除")
-    public R remove(@RequestParam("ids") String ids) {
-        sysRoleService.remove(ids);
+    public R remove(@RequestParam("ids") String id) {
+        sysRoleService.remove(id);
         return R.success();
     }
 

+ 2 - 2
nb-system/src/main/java/com/nb/system/service/ISysRoleService.java

@@ -57,9 +57,9 @@ public interface ISysRoleService extends IService<SysRole> {
     /**
      * 删除
      *
-     * @param ids
+     * @param id
      */
-    void remove(String ids);
+    void remove(String id);
 
     /**
      * 查看

+ 11 - 17
nb-system/src/main/java/com/nb/system/service/impl/SysRoleServiceImpl.java

@@ -127,23 +127,17 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void remove(String ids) {
-        List<String> idList = Arrays.asList(ids.split(","));
-        idList.forEach(item -> {
-            SysRole sysRole = this.getById(item);
-            if("admin".equalsIgnoreCase(sysRole.getRoleCode())){
-                throw new CustomException("管理员角色不可删除");
-            }
-            long userRoleCount = sysUserRoleService.count(Wrappers.lambdaQuery(SysUserRole.class).eq(SysUserRole::getRoleId, item));
-            if (userRoleCount!=0) {
-                throw new CustomException(String.format("角色【%s】存在用户,无法删除", sysRole.getRoleName()));
-            }
-//            long deptRoleCount = sysRoleDeptService.count(Wrappers.lambdaQuery(SysRoleDept.class).eq(SysRoleDept::getRoleId, item));
-//            if (deptRoleCount!=0) {
-//                throw new CustomException(String.format("角色【%s】已被使用,无法删除", sysRole.getRoleName()));
-//            }
-        });
-        this.removeByIds(Arrays.asList(ids.split(",")));
+    public void remove(String id) {
+        SysRole sysRole = this.getById(id);
+        if("admin".equalsIgnoreCase(sysRole.getRoleCode())){
+            throw new CustomException("管理员角色不可删除");
+        }
+        long userRoleCount = sysUserRoleService.count(Wrappers.lambdaQuery(SysUserRole.class).eq(SysUserRole::getRoleId, id));
+        if (userRoleCount!=0) {
+            throw new CustomException(String.format("角色【%s】存在用户,无法删除", sysRole.getRoleName()));
+        }
+        this.removeById(id);
+        sysRoleMenuService.remove(new QueryWrapper<SysRoleMenu>().lambda().eq(SysRoleMenu::getRoleId,sysRole.getId()));
     }
 
     @Override