|
|
@@ -1,6 +1,7 @@
|
|
|
package com.nb.system.service.impl;
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
+import cn.hutool.core.collection.CollectionUtil;
|
|
|
import cn.hutool.core.lang.tree.Tree;
|
|
|
import cn.hutool.core.lang.tree.TreeNode;
|
|
|
import cn.hutool.core.lang.tree.TreeUtil;
|
|
|
@@ -20,11 +21,13 @@ import com.nb.system.common.dto.SysMenuAddDTO;
|
|
|
import com.nb.system.common.dto.SysMenuEditDTO;
|
|
|
import com.nb.system.common.dto.SysMenuQueryDTO;
|
|
|
import com.nb.system.entity.SysMenu;
|
|
|
+import com.nb.system.entity.SysRole;
|
|
|
import com.nb.system.entity.SysRoleMenu;
|
|
|
import com.nb.system.entity.SysUserRole;
|
|
|
import com.nb.system.mapper.SysMenuMapper;
|
|
|
import com.nb.system.service.ISysMenuService;
|
|
|
import com.nb.system.service.ISysRoleMenuService;
|
|
|
+import com.nb.system.service.ISysRoleService;
|
|
|
import com.nb.system.service.ISysUserRoleService;
|
|
|
import com.google.common.collect.Lists;
|
|
|
import com.google.common.collect.Maps;
|
|
|
@@ -55,6 +58,8 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
|
|
@Resource
|
|
|
private ISysRoleMenuService sysRoleMenuService;
|
|
|
|
|
|
+ @Resource
|
|
|
+ private ISysRoleService sysRoleService;
|
|
|
@Override
|
|
|
public IPage<SysMenu> page(Page reqPage, SysMenuQueryDTO req) {
|
|
|
LambdaQueryWrapper<SysMenu> queryWrapper = Wrappers.lambdaQuery();
|
|
|
@@ -232,14 +237,15 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
|
|
@Override
|
|
|
public Set<String> getPermissionsByUserId(Long userId) {
|
|
|
// 查询角色列表
|
|
|
- List<SysUserRole> sysUserRoleList = sysUserRoleService.list(Wrappers.lambdaQuery(SysUserRole.class).eq(SysUserRole::getUserId, userId));
|
|
|
- if (sysUserRoleList.isEmpty()) {
|
|
|
+ List<SysRole> sysRoleList = sysRoleService.listSysRoleByUserId(userId);
|
|
|
+ boolean admin=sysRoleList.stream().anyMatch(sysRole -> "admin".equalsIgnoreCase(sysRole.getRoleCode()));
|
|
|
+ if (!admin&&CollectionUtil.isEmpty(sysRoleList)) {
|
|
|
return Sets.newHashSet();
|
|
|
}
|
|
|
- List<Long> roleIdList = sysUserRoleList.stream().map(item -> item.getRoleId()).collect(Collectors.toList());
|
|
|
+ List<Long> roleIdList = sysRoleList.stream().map(SysRole::getId).collect(Collectors.toList());
|
|
|
// 查询按钮菜单权限标识
|
|
|
List<SysRoleMenu> sysRoleMenuList = sysRoleMenuService.list(Wrappers.lambdaQuery(SysRoleMenu.class).in(SysRoleMenu::getRoleId, roleIdList));
|
|
|
- if (sysRoleMenuList.isEmpty()) {
|
|
|
+ if (!admin&&sysRoleMenuList.isEmpty()) {
|
|
|
return Sets.newHashSet();
|
|
|
}
|
|
|
// 查询菜单
|
|
|
@@ -248,7 +254,7 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
|
|
queryWrapper.eq(SysMenu::getMenuType, MenuTypeEnum.BUTTON.getCode());
|
|
|
queryWrapper.eq(SysMenu::getStatus, StatusEnum.YES.getCode());
|
|
|
queryWrapper.eq(!TenantUtil.isTuoRen(),SysMenu::getTenantMenu, true);
|
|
|
- queryWrapper.in(Boolean.FALSE.equals(SecurityUtil.isSuperAdmin()),SysMenu::getId, menuIds);
|
|
|
+ queryWrapper.in(!admin,SysMenu::getId, menuIds);
|
|
|
List<SysMenu> sysMenuList = this.list(queryWrapper);
|
|
|
return sysMenuList.stream().map(item -> item.getPermission()).collect(Collectors.toSet());
|
|
|
}
|