mirror of
https://gitee.com/dromara/RuoYi-Vue-Plus.git
synced 2026-09-21 02:25:56 +08:00
update 优化 获取菜单数据权限接口
This commit is contained in:
parent
69d7d04169
commit
af9556b2be
@ -9,8 +9,6 @@ import lombok.Data;
|
|||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 角色表 sys_role
|
* 角色表 sys_role
|
||||||
*
|
*
|
||||||
@ -81,24 +79,6 @@ public class SysRole extends BaseEntity {
|
|||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private boolean flag = 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) {
|
public SysRole(Long roleId) {
|
||||||
this.roleId = roleId;
|
this.roleId = roleId;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,11 +3,12 @@ package com.ruoyi.system.domain.bo;
|
|||||||
import com.ruoyi.common.core.constant.UserConstants;
|
import com.ruoyi.common.core.constant.UserConstants;
|
||||||
import com.ruoyi.common.core.validate.AddGroup;
|
import com.ruoyi.common.core.validate.AddGroup;
|
||||||
import com.ruoyi.common.core.validate.EditGroup;
|
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.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import jakarta.validation.constraints.*;
|
|
||||||
|
|
||||||
import com.ruoyi.common.mybatis.core.domain.BaseEntity;
|
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -72,6 +73,16 @@ public class SysRoleBo extends BaseEntity {
|
|||||||
*/
|
*/
|
||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 菜单组
|
||||||
|
*/
|
||||||
|
private Long[] menuIds;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 部门组(数据权限)
|
||||||
|
*/
|
||||||
|
private Long[] deptIds;
|
||||||
|
|
||||||
public SysRoleBo(Long roleId) {
|
public SysRoleBo(Long roleId) {
|
||||||
this.roleId = roleId;
|
this.roleId = roleId;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -10,7 +10,6 @@ import lombok.Data;
|
|||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 角色信息视图对象 sys_role
|
* 角色信息视图对象 sys_role
|
||||||
@ -91,11 +90,6 @@ public class SysRoleVo implements Serializable {
|
|||||||
*/
|
*/
|
||||||
private boolean flag = false;
|
private boolean flag = false;
|
||||||
|
|
||||||
/**
|
|
||||||
* 角色菜单权限
|
|
||||||
*/
|
|
||||||
private Set<String> permissions;
|
|
||||||
|
|
||||||
public boolean isAdmin() {
|
public boolean isAdmin() {
|
||||||
return UserConstants.SUPER_ADMIN_ID.equals(this.roleId);
|
return UserConstants.SUPER_ADMIN_ID.equals(this.roleId);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,12 +1,9 @@
|
|||||||
package com.ruoyi.system.service;
|
package com.ruoyi.system.service;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
|
||||||
import com.ruoyi.system.domain.vo.SysRoleVo;
|
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -52,17 +49,7 @@ public class SysPermissionService {
|
|||||||
if (isAdmin) {
|
if (isAdmin) {
|
||||||
perms.add("*:*:*");
|
perms.add("*:*:*");
|
||||||
} else {
|
} else {
|
||||||
List<SysRoleVo> roles = roleService.selectRolesByUserId(userId);
|
perms.addAll(menuService.selectMenuPermsByUserId(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));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return perms;
|
return perms;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -234,7 +234,7 @@ public class SysRoleServiceImpl implements ISysRoleService {
|
|||||||
SysRole role = BeanUtil.toBean(bo, SysRole.class);
|
SysRole role = BeanUtil.toBean(bo, SysRole.class);
|
||||||
// 新增角色信息
|
// 新增角色信息
|
||||||
baseMapper.insert(role);
|
baseMapper.insert(role);
|
||||||
return insertRoleMenu(role);
|
return insertRoleMenu(bo);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -251,7 +251,7 @@ public class SysRoleServiceImpl implements ISysRoleService {
|
|||||||
baseMapper.updateById(role);
|
baseMapper.updateById(role);
|
||||||
// 删除角色与菜单关联
|
// 删除角色与菜单关联
|
||||||
roleMenuMapper.delete(new LambdaQueryWrapper<SysRoleMenu>().eq(SysRoleMenu::getRoleId, role.getRoleId()));
|
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()));
|
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 角色对象
|
* @param role 角色对象
|
||||||
*/
|
*/
|
||||||
public int insertRoleMenu(SysRole role) {
|
public int insertRoleMenu(SysRoleBo role) {
|
||||||
int rows = 1;
|
int rows = 1;
|
||||||
// 新增用户与角色管理
|
// 新增用户与角色管理
|
||||||
List<SysRoleMenu> list = new ArrayList<SysRoleMenu>();
|
List<SysRoleMenu> list = new ArrayList<SysRoleMenu>();
|
||||||
@ -310,7 +310,7 @@ public class SysRoleServiceImpl implements ISysRoleService {
|
|||||||
*
|
*
|
||||||
* @param role 角色对象
|
* @param role 角色对象
|
||||||
*/
|
*/
|
||||||
public int insertRoleDept(SysRole role) {
|
public int insertRoleDept(SysRoleBo role) {
|
||||||
int rows = 1;
|
int rows = 1;
|
||||||
// 新增角色与部门(数据权限)管理
|
// 新增角色与部门(数据权限)管理
|
||||||
List<SysRoleDept> list = new ArrayList<SysRoleDept>();
|
List<SysRoleDept> list = new ArrayList<SysRoleDept>();
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user