From c1ddd6d62c12c8c6df8ae32db2960dc85c0e6ebe Mon Sep 17 00:00:00 2001 From: fengshuonan Date: Fri, 8 Sep 2023 23:04:59 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=908.0=E3=80=91=E3=80=90role=E3=80=91?= =?UTF-8?q?=E5=AE=8C=E5=96=84=E7=BB=91=E5=AE=9A=E6=9D=83=E9=99=90=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E8=8C=83=E5=9B=B4=E7=AD=9B=E9=80=89=EF=BC=8C=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E7=BB=91=E5=AE=9A=E8=8F=9C=E5=8D=95=E7=9A=84=E7=AD=9B?= =?UTF-8?q?=E9=80=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../role/service/impl/RoleBindMenuImpl.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/impl/RoleBindMenuImpl.java b/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/impl/RoleBindMenuImpl.java index 3e9f4a458..b1aadd528 100644 --- a/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/impl/RoleBindMenuImpl.java +++ b/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/impl/RoleBindMenuImpl.java @@ -23,6 +23,7 @@ import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.stream.Collectors; /** @@ -55,7 +56,7 @@ public class RoleBindMenuImpl implements RoleAssignOperateAction, RoleBindLimitA } @Override - public void doOperateAction(RoleBindPermissionRequest roleBindPermissionRequest) { + public void doOperateAction(RoleBindPermissionRequest roleBindPermissionRequest, Set roleLimitMenuIdsAndOptionIds) { Long roleId = roleBindPermissionRequest.getRoleId(); Long menuId = roleBindPermissionRequest.getNodeId(); @@ -79,7 +80,7 @@ public class RoleBindMenuImpl implements RoleAssignOperateAction, RoleBindLimitA } // 2.1. 查询菜单下的所有菜单功能 - List menuOptions = this.getMenuOptions(menuId); + List menuOptions = this.getMenuOptions(menuId, roleLimitMenuIdsAndOptionIds); // 菜单下没有菜单功能,则直接返回 if (ObjectUtil.isEmpty(menuOptions)) { @@ -172,8 +173,21 @@ public class RoleBindMenuImpl implements RoleAssignOperateAction, RoleBindLimitA * @since 2023/9/8 16:02 */ private List getMenuOptions(Long menuId) { + return this.getMenuOptions(menuId, null); + } + + /** + * 获取菜单下的所有菜单功能 + * + * @author fengshuonan + * @since 2023/9/8 16:02 + */ + private List getMenuOptions(Long menuId, Set roleLimitMenuIdsAndOptionIds) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(SysMenuOptions::getMenuId, menuId); + if (ObjectUtil.isNotEmpty(roleLimitMenuIdsAndOptionIds)) { + queryWrapper.in(SysMenuOptions::getMenuOptionId, roleLimitMenuIdsAndOptionIds); + } queryWrapper.select(SysMenuOptions::getMenuOptionId); List list = sysMenuOptionsService.list(queryWrapper); if (ObjectUtil.isEmpty(list)) {