update 优化 获取菜单数据权限接口

This commit is contained in:
疯狂的狮子li 2023-02-07 18:54:50 +08:00
parent 69d7d04169
commit af9556b2be
5 changed files with 20 additions and 48 deletions

View File

@ -9,8 +9,6 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import java.util.Set;
/**
* 角色表 sys_role
*
@ -81,24 +79,6 @@ public class SysRole extends BaseEntity {
@TableField(exist = false)
private boolean flag = false;
/**
* 菜单组
*/
@TableField(exist = false)
private Long[] menuIds;
/**
* 部门组数据权限
*/
@TableField(exist = false)
private Long[] deptIds;
/**
* 角色菜单权限
*/
@TableField(exist = false)
private Set<String> permissions;
public SysRole(Long roleId) {
this.roleId = roleId;
}

View File

@ -3,11 +3,12 @@ package com.ruoyi.system.domain.bo;
import com.ruoyi.common.core.constant.UserConstants;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.mybatis.core.domain.BaseEntity;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import com.ruoyi.common.mybatis.core.domain.BaseEntity;
import lombok.NoArgsConstructor;
/**
@ -72,6 +73,16 @@ public class SysRoleBo extends BaseEntity {
*/
private String remark;
/**
* 菜单组
*/
private Long[] menuIds;
/**
* 部门组数据权限
*/
private Long[] deptIds;
public SysRoleBo(Long roleId) {
this.roleId = roleId;
}

View File

@ -10,7 +10,6 @@ import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
import java.util.Set;
/**
* 角色信息视图对象 sys_role
@ -91,11 +90,6 @@ public class SysRoleVo implements Serializable {
*/
private boolean flag = false;
/**
* 角色菜单权限
*/
private Set<String> permissions;
public boolean isAdmin() {
return UserConstants.SUPER_ADMIN_ID.equals(this.roleId);
}

View File

@ -1,12 +1,9 @@
package com.ruoyi.system.service;
import cn.hutool.core.collection.CollUtil;
import com.ruoyi.system.domain.vo.SysRoleVo;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
/**
@ -52,17 +49,7 @@ public class SysPermissionService {
if (isAdmin) {
perms.add("*:*:*");
} else {
List<SysRoleVo> roles = roleService.selectRolesByUserId(userId);
if (CollUtil.isNotEmpty(roles)) {
// 多角色设置permissions属性以便数据权限匹配权限
for (SysRoleVo role : roles) {
Set<String> rolePerms = menuService.selectMenuPermsByRoleId(role.getRoleId());
role.setPermissions(rolePerms);
perms.addAll(rolePerms);
}
} else {
perms.addAll(menuService.selectMenuPermsByUserId(userId));
}
perms.addAll(menuService.selectMenuPermsByUserId(userId));
}
return perms;
}

View File

@ -234,7 +234,7 @@ public class SysRoleServiceImpl implements ISysRoleService {
SysRole role = BeanUtil.toBean(bo, SysRole.class);
// 新增角色信息
baseMapper.insert(role);
return insertRoleMenu(role);
return insertRoleMenu(bo);
}
/**
@ -251,7 +251,7 @@ public class SysRoleServiceImpl implements ISysRoleService {
baseMapper.updateById(role);
// 删除角色与菜单关联
roleMenuMapper.delete(new LambdaQueryWrapper<SysRoleMenu>().eq(SysRoleMenu::getRoleId, role.getRoleId()));
return insertRoleMenu(role);
return insertRoleMenu(bo);
}
/**
@ -281,7 +281,7 @@ public class SysRoleServiceImpl implements ISysRoleService {
// 删除角色与部门关联
roleDeptMapper.delete(new LambdaQueryWrapper<SysRoleDept>().eq(SysRoleDept::getRoleId, role.getRoleId()));
// 新增角色和部门信息数据权限
return insertRoleDept(role);
return insertRoleDept(bo);
}
/**
@ -289,7 +289,7 @@ public class SysRoleServiceImpl implements ISysRoleService {
*
* @param role 角色对象
*/
public int insertRoleMenu(SysRole role) {
public int insertRoleMenu(SysRoleBo role) {
int rows = 1;
// 新增用户与角色管理
List<SysRoleMenu> list = new ArrayList<SysRoleMenu>();
@ -310,7 +310,7 @@ public class SysRoleServiceImpl implements ISysRoleService {
*
* @param role 角色对象
*/
public int insertRoleDept(SysRole role) {
public int insertRoleDept(SysRoleBo role) {
int rows = 1;
// 新增角色与部门数据权限管理
List<SysRoleDept> list = new ArrayList<SysRoleDept>();