czh 2 år sedan
förälder
incheckning
75fc8f0adf

+ 9 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/service/KwsRoleService.java

@@ -7,6 +7,7 @@ import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.sckw.core.exception.SystemException;
 import com.sckw.core.model.constant.Global;
+import com.sckw.core.model.enums.MenuTypeEnum;
 import com.sckw.core.model.enums.SystemTypeEnum;
 import com.sckw.core.model.page.PageHelperUtil;
 import com.sckw.core.model.page.PageResult;
@@ -38,6 +39,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.*;
+import java.util.function.Function;
 import java.util.stream.Collectors;
 
 /**
@@ -73,6 +75,9 @@ public class KwsRoleService {
     @Autowired
     KwsMenuService kwsMenuService;
 
+    @Autowired
+    KwsMenuDao kwsMenuDao;
+
     @Autowired
     KwsMenuRightsDao kwsMenuRightsDao;
 
@@ -370,6 +375,10 @@ public class KwsRoleService {
 
         List<KwsMenuRights> kwsMenuRights = kwsMenuRightsDao.selectByRoleIds(roleIdList);
         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();
+            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 -> {
                 List<KwsMenuRights> kwsMenuRightsList = collectKwsMenuRights.get(item.getId());