소스 검색

权限按钮权限过滤

chenxiaofei 1 개월 전
부모
커밋
d9fa34d290
1개의 변경된 파일10개의 추가작업 그리고 3개의 파일을 삭제
  1. 10 3
      sckw-modules/sckw-system/src/main/java/com/sckw/system/service/KwsMenuService.java

+ 10 - 3
sckw-modules/sckw-system/src/main/java/com/sckw/system/service/KwsMenuService.java

@@ -643,7 +643,7 @@ public class KwsMenuService {
 //            if (Boolean.TRUE.equals(reqVo.getIncludeButton())) {
 //
 //            }
-            finalList = supplementButtons(finalList);
+            finalList = supplementButtons(finalList, findMenuTreePojo.getEntTypeList());
         }
 
 
@@ -723,7 +723,7 @@ public class KwsMenuService {
      * 查询所有菜单类型节点(type=1)的子按钮(type=2),
      * 合并到列表中以便递归构建包含按钮的完整树。
      */
-    private List<KwsMenuResVo> supplementButtons(List<KwsMenuResVo> menuList) {
+    private List<KwsMenuResVo> supplementButtons(List<KwsMenuResVo> menuList, List<String> entTypeList) {
         List<Long> menuTypeIds = menuList.stream()
                 .filter(m -> Objects.equals(m.getType(), MenuTypeEnum.DIRECTORY.getCode()))
                 .map(KwsMenuResVo::getId)
@@ -732,7 +732,14 @@ public class KwsMenuService {
             return menuList;
         }
 
-        List<KwsMenu> buttons = kwsMenuDao.selectByParentIds(menuTypeIds, MenuTypeEnum.BUTTON.getCode());
+        LambdaQueryWrapper<KwsMenu> buttonWrapper = Wrappers.lambdaQuery(KwsMenu.class)
+                .eq(KwsMenu::getDelFlag, Global.NO)
+                .eq(KwsMenu::getType, MenuTypeEnum.BUTTON.getCode())
+                .in(KwsMenu::getParentId, menuTypeIds)
+                .orderByAsc(KwsMenu::getSort);
+        appendUsingRolesFilter(buttonWrapper, entTypeList);
+
+        List<KwsMenu> buttons = kwsMenuMpMapper.selectList(buttonWrapper);
         if (CollectionUtils.isEmpty(buttons)) {
             return menuList;
         }