|
@@ -1,5 +1,6 @@
|
|
package com.simuwang.base.components;
|
|
package com.simuwang.base.components;
|
|
|
|
|
|
|
|
+import cn.hutool.core.collection.CollUtil;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
import com.simuwang.base.common.support.dos.OnlyIdNameDO;
|
|
import com.simuwang.base.common.support.dos.OnlyIdNameDO;
|
|
@@ -107,16 +108,18 @@ public class UserAuthService {
|
|
return this.roleMapper.allPerms();
|
|
return this.roleMapper.allPerms();
|
|
}
|
|
}
|
|
List<OnlyIdNameDO> dataList = this.roleMapper.listAssignPerms(roleId);
|
|
List<OnlyIdNameDO> dataList = this.roleMapper.listAssignPerms(roleId);
|
|
- // 找到所有父id是上述数据的
|
|
|
|
- List<Integer> menuIds = dataList.stream().map(OnlyIdNameDO::getId).distinct().collect(Collectors.toList());
|
|
|
|
- LambdaQueryWrapper<SysMenuDO> wrapper = Wrappers.lambdaQuery(SysMenuDO.class)
|
|
|
|
- .select(SysMenuDO::getMenuId, SysMenuDO::getParentId)
|
|
|
|
- .in(SysMenuDO::getParentId, menuIds)
|
|
|
|
- .eq(SysMenuDO::getStatus, 1);
|
|
|
|
- List<SysMenuDO> tempList = this.menuMapper.selectList(wrapper);
|
|
|
|
- // 过滤存在父节点引用的菜单id
|
|
|
|
- List<Integer> pids = tempList.stream().map(SysMenuDO::getParentId).distinct().collect(Collectors.toList());
|
|
|
|
- dataList.removeIf(e -> pids.contains(e.getId()));
|
|
|
|
|
|
+ if (CollUtil.isNotEmpty(dataList)) {
|
|
|
|
+ // 找到所有父id是上述数据的
|
|
|
|
+ List<Integer> menuIds = dataList.stream().map(OnlyIdNameDO::getId).distinct().collect(Collectors.toList());
|
|
|
|
+ LambdaQueryWrapper<SysMenuDO> wrapper = Wrappers.lambdaQuery(SysMenuDO.class)
|
|
|
|
+ .select(SysMenuDO::getMenuId, SysMenuDO::getParentId)
|
|
|
|
+ .in(SysMenuDO::getParentId, menuIds)
|
|
|
|
+ .eq(SysMenuDO::getStatus, 1);
|
|
|
|
+ List<SysMenuDO> tempList = this.menuMapper.selectList(wrapper);
|
|
|
|
+ // 过滤存在父节点引用的菜单id
|
|
|
|
+ List<Integer> pids = tempList.stream().map(SysMenuDO::getParentId).distinct().collect(Collectors.toList());
|
|
|
|
+ dataList.removeIf(e -> pids.contains(e.getId()));
|
|
|
|
+ }
|
|
return dataList;
|
|
return dataList;
|
|
}
|
|
}
|
|
|
|
|