diff --git a/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysRoleController.java b/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysRoleController.java index 11261181..1fb3d991 100644 --- a/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysRoleController.java +++ b/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysRoleController.java @@ -3,16 +3,13 @@ package com.jero.modules.system.controller; import java.io.File; import java.io.IOException; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; +import java.util.stream.Collectors; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import cn.hutool.core.util.StrUtil; import com.jero.common.exception.JeroBootException; import com.jero.common.system.vo.SysDepartTreeModel; import com.jero.common.system.vo.SysRoleTreeModel; @@ -35,6 +32,7 @@ import org.jeecgframework.poi.excel.entity.ImportParams; import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.CacheEvict; +import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; @@ -422,6 +420,7 @@ public class SysRoleController { @RequiresPermissions("sys:role:list") @RequestMapping(value = "/queryTreeList", method = RequestMethod.GET) public Result> queryTreeList(HttpServletRequest request) { + Result> result = new Result<>(); //全部权限ids List ids = new ArrayList<>(); @@ -433,6 +432,17 @@ public class SysRoleController { for(SysPermission sysPer : list) { ids.add(sysPer.getId()); } + String roleId = request.getParameter("roleId"); + if (StrUtil.isNotBlank(roleId)) { + SysRole sysRole = sysRoleService.getById(roleId); + String parentId = sysRole.getParentId(); + if (StrUtil.isNotBlank(parentId)) { + List sysRolePermissions = sysRolePermissionService.list(new QueryWrapper().lambda().eq(SysRolePermission::getRoleId, parentId)); + List collect = sysRolePermissions.stream().map(SysRolePermission -> String.valueOf(SysRolePermission.getPermissionId())).collect(Collectors.toList()); + list = list.stream().filter(p -> collect.contains(p.getId())).collect(Collectors.toList()); + } + } + List treeList = new ArrayList<>(); getTreeModelList(treeList, list, null); Map resMap = new HashMap();