czh 2 년 전
부모
커밋
9f3aefeb0a

+ 3 - 2
sckw-modules/sckw-system/src/main/java/com/sckw/system/dubbo/RemoteSystemServiceImpl.java

@@ -667,7 +667,7 @@ public class RemoteSystemServiceImpl implements RemoteSystemService {
      */
     private List<SysDictGroupResDto> getChild(Long id, List<SysDict> list) {
         if (Objects.isNull(id) || CollectionUtils.isEmpty(list)) {
-            return Collections.emptyList();
+            return null;
         }
         List<SysDictGroupResDto> child = new ArrayList<>();
         for (SysDict sysDict : list) {
@@ -683,7 +683,8 @@ public class RemoteSystemServiceImpl implements RemoteSystemService {
                 sysDictGroupResDto.setChild(getChild(sysDictGroupResDto.getId(), list));
             }
         }
-        return child;
+
+        return CollectionUtils.isEmpty(child) ? null : child;
     }
 
 

+ 7 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/service/KwsMenuService.java

@@ -420,6 +420,13 @@ public class KwsMenuService {
             return list;
         }
 
+        List<Long> longs = childList.stream().map(KwsMenu::getId).toList();
+        for (KwsMenu kwsMenu : menuList) {
+            if (!longs.contains(kwsMenu.getId())) {
+                list.add(kwsMenu.getId());
+            }
+        }
+
         list.addAll(childList.stream().map(KwsMenu::getId).toList());
         return getAllMenus(childList.stream().map(KwsMenu::getParentId).collect(Collectors.toList()), list);
     }

+ 3 - 1
sckw-modules/sckw-system/src/main/java/com/sckw/system/service/KwsRoleService.java

@@ -377,7 +377,9 @@ public class KwsRoleService {
         if (CollectionUtils.isNotEmpty(kwsMenuRights)) {
             List<Long> menuIdList = kwsMenuRights.stream().map(KwsMenuRights::getMenuId).toList();
             List<KwsMenu> kwsMenus = kwsMenuDao.selectByKeys(menuIdList);
-            List<Long> collect = kwsMenus.stream().filter(item -> item.getType().equals(MenuTypeEnum.BUTTON.getCode())).map(KwsMenu::getId).toList();
+            List<Long> longs = kwsMenus.stream().map(KwsMenu::getParentId).toList();
+            //获取最后一级的菜单或者按钮
+            List<Long> collect = kwsMenus.stream().map(KwsMenu::getId).filter(id -> !longs.contains(id)).toList();
             kwsMenuRights = kwsMenuRights.stream().filter(item -> collect.contains(item.getMenuId())).toList();
             Map<Long, List<KwsMenuRights>> collectKwsMenuRights = kwsMenuRights.stream().collect(Collectors.groupingBy(KwsMenuRights::getRoleId));
             roleResVos.forEach(item -> {