查询多个角色

master
sugy 3 months ago
parent 47b85f3914
commit 96a0ff4459
  1. 4
      src/main/java/com/nov/KgLowDurable/controller/MenuController.java
  2. 2
      src/main/java/com/nov/KgLowDurable/service/IMenuService.java
  3. 12
      src/main/java/com/nov/KgLowDurable/service/Impl/MenuServiceImpl.java

@ -131,8 +131,8 @@ public class MenuController {
*/ */
@GetMapping("/routes") @GetMapping("/routes")
@ApiOperation(value = "前端菜单数据", notes = "前端菜单数据") @ApiOperation(value = "前端菜单数据", notes = "前端菜单数据")
public Result<List<MenuVO>> routes(String roleId, Long topMenuId) { public Result<List<MenuVO>> routes(String roleIds, Long topMenuId) {
List<MenuVO> list = menuService.routes((roleId == null) ? null : roleId, topMenuId); List<MenuVO> list = menuService.routes((roleIds== null) ? null : roleIds, topMenuId);
return Result.OK(list); return Result.OK(list);
} }
/** /**

@ -42,7 +42,7 @@ public interface IMenuService extends IService<Menu> {
* @param topMenuId * @param topMenuId
* @return * @return
*/ */
List<MenuVO> routes(String roleId, Long topMenuId); List<MenuVO> routes(String roleIds, Long topMenuId);
/** /**
* 菜单树形结构 * 菜单树形结构

@ -61,21 +61,21 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements IM
} }
@Override @Override
public List<MenuVO> routes(String roleId, Long topMenuId) { public List<MenuVO> routes(String roleIds, Long topMenuId) {
// if (StringUtils.isBlank(roleId)) { // if (StringUtils.isBlank(roleId)) {
// return null; // return null;
// } // }
List<Menu> allMenus = baseMapper.allMenu(); List<Menu> allMenus = baseMapper.allMenu();
List<Menu> roleMenus = null; List<Menu> roleMenus = null;
Role role=roleService.getById(roleId); //Role role=roleService.getById(roleId);
// 超级管理员并且不是顶部菜单请求则返回全部菜单 // 超级管理员并且不是顶部菜单请求则返回全部菜单
if ((Func.isEmpty(roleId)||role.getCode().equals(RoleConstant.ADMINISTRATOR))&&Func.isEmpty(topMenuId)) { if ((Func.isEmpty(roleIds))&&Func.isEmpty(topMenuId)) {
roleMenus = allMenus; roleMenus = allMenus;
} }
// 非超级管理员并且不是顶部菜单请求则返回对应角色权限菜单 // 非超级管理员并且不是顶部菜单请求则返回对应角色权限菜单
else if (role!=null&&!role.getName().equals("超级管理员")&&Func.isEmpty(topMenuId)) { else if (roleIds!=null&&Func.isEmpty(topMenuId)) {
// 角色配置对应菜单 // 角色配置对应菜单
List<Menu> roleIdMenus = baseMapper.roleMenuByRoleId(Func.toLongList(roleId)); List<Menu> roleIdMenus = baseMapper.roleMenuByRoleId(Func.toLongList(roleIds));
// 反向递归角色菜单所有父级 // 反向递归角色菜单所有父级
List<Menu> routes = new LinkedList<>(roleIdMenus); List<Menu> routes = new LinkedList<>(roleIdMenus);
roleIdMenus.forEach(roleMenu -> recursion(allMenus, routes, roleMenu)); roleIdMenus.forEach(roleMenu -> recursion(allMenus, routes, roleMenu));
@ -84,7 +84,7 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements IM
// 顶部菜单请求返回对应角色权限菜单 // 顶部菜单请求返回对应角色权限菜单
else { else {
// 角色配置对应菜单 // 角色配置对应菜单
List<Menu> roleIdMenus = baseMapper.roleMenuByRoleId(Func.toLongList(roleId)); List<Menu> roleIdMenus = baseMapper.roleMenuByRoleId(Func.toLongList(roleIds));
// 反向递归角色菜单所有父级 // 反向递归角色菜单所有父级
List<Menu> routes = new LinkedList<>(roleIdMenus); List<Menu> routes = new LinkedList<>(roleIdMenus);
roleIdMenus.forEach(roleMenu -> recursion(allMenus, routes, roleMenu)); roleIdMenus.forEach(roleMenu -> recursion(allMenus, routes, roleMenu));

Loading…
Cancel
Save