Przeglądaj źródła

人员权限一览表 未开放的页面资源屏蔽不展示

ZhuJiaHao 1 miesiąc temu
rodzic
commit
5f0d2987c2

+ 24 - 2
ibps-provider-root/modules/provider-platform-default/src/main/java/com/lc/ibps/platform/service/PartyRoleProviderService.java

@@ -124,8 +124,30 @@ public class PartyRoleProviderService {
         roleList = roleList.stream().sorted(Comparator.comparing(PartyRolePo::getRoleNote)).collect(Collectors.toList());
         //提取roleList中的name属性到排序后的List<String>
         roles = roleList.stream().map(PartyRolePo::getName).collect(Collectors.toList());
-        //查询页面资源
-        List<ResourcesPo> resourcesList = partyRoleProviderDao.getResourcesByName(pageName);
+        
+        //查询页面资源(使用新的过滤逻辑)
+        List<ResourceRawDO> rawResources = partyRoleProviderDao.getAllDisplayableResources();
+        List<ResourceDO> validResources = buildValidResources(rawResources);
+        
+        //将ResourceDO转换为ResourcesPo格式以兼容后续逻辑
+        List<ResourcesPo> resourcesList = new ArrayList<>();
+        for(ResourceDO res : validResources){
+            ResourcesPo po = new ResourcesPo();
+            po.setId(res.getId());
+            po.setName(res.getName());
+            po.setSn(res.getSn());
+            po.setParentId(res.getParentId());
+            resourcesList.add(po);
+        }
+        
+        //应用pageName过滤
+        if(StringUtils.isNotBlank(pageName)){
+            resourcesList = resourcesList.stream()
+                    .filter(r -> validResources.stream()
+                            .filter(v -> v.getId().equals(r.getId()))
+                            .anyMatch(v -> v.getDisplayName().contains(pageName)))
+                    .collect(Collectors.toList());
+        }
 
         //如果没有查询到角色或资源,则直接返回
         if(CollectionUtils.isEmpty(roleList) || CollectionUtils.isEmpty(resourcesList)){