From f2b9f27584e717c3e9552ae400cb890142e804ae Mon Sep 17 00:00:00 2001 From: fengshuonan Date: Fri, 8 Sep 2023 23:11:23 +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=E6=9D=83=E9=99=90=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 --- .../modular/menu/service/SysMenuOptionsService.java | 12 ++++++++++++ .../menu/service/impl/SysMenuOptionsServiceImpl.java | 11 ++++++++++- .../modular/role/service/impl/RoleBindTotalImpl.java | 7 ++++--- 3 files changed, 26 insertions(+), 4 deletions(-) diff --git a/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/menu/service/SysMenuOptionsService.java b/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/menu/service/SysMenuOptionsService.java index cf2e604d3..0272efcb1 100644 --- a/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/menu/service/SysMenuOptionsService.java +++ b/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/menu/service/SysMenuOptionsService.java @@ -6,6 +6,7 @@ import cn.stylefeng.roses.kernel.sys.modular.menu.pojo.request.SysMenuOptionsReq import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; +import java.util.Set; /** * 菜单下的功能操作 服务类 @@ -81,6 +82,17 @@ public interface SysMenuOptionsService extends IService { */ List getTotalMenuOptionsList(); + /** + * 获取所有的菜单功能id + *

+ * 一般用在项目启动管理员角色绑定所有的菜单功能 + * + * @param roleLimitMenuIdsAndOptionIds 角色限制的菜单id和功能id集合 + * @author fengshuonan + * @since 2023/6/18 20:37 + */ + List getTotalMenuOptionsList(Set roleLimitMenuIdsAndOptionIds); + /** * 获取功能编码集合,通过功能id集合 * diff --git a/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/menu/service/impl/SysMenuOptionsServiceImpl.java b/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/menu/service/impl/SysMenuOptionsServiceImpl.java index 9e8def446..6ea45aaab 100644 --- a/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/menu/service/impl/SysMenuOptionsServiceImpl.java +++ b/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/menu/service/impl/SysMenuOptionsServiceImpl.java @@ -117,8 +117,17 @@ public class SysMenuOptionsServiceImpl extends ServiceImpl getTotalMenuOptionsList() { + return this.getTotalMenuOptionsList(null); + } + + @Override + public List getTotalMenuOptionsList(Set roleLimitMenuIdsAndOptionIds) { LambdaQueryWrapper sysMenuOptionsLambdaQueryWrapper = new LambdaQueryWrapper<>(); - sysMenuOptionsLambdaQueryWrapper.select(SysMenuOptions::getMenuOptionId, SysMenuOptions::getMenuId, SysMenuOptions::getAppId, SysMenuOptions::getOptionName); + sysMenuOptionsLambdaQueryWrapper.select(SysMenuOptions::getMenuOptionId, SysMenuOptions::getMenuId, SysMenuOptions::getAppId, + SysMenuOptions::getOptionName); + if (ObjectUtil.isNotEmpty(roleLimitMenuIdsAndOptionIds)) { + sysMenuOptionsLambdaQueryWrapper.in(SysMenuOptions::getMenuOptionId, roleLimitMenuIdsAndOptionIds); + } return this.list(sysMenuOptionsLambdaQueryWrapper); } diff --git a/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/impl/RoleBindTotalImpl.java b/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/impl/RoleBindTotalImpl.java index 0b9f90d0b..1c3fb2ac5 100644 --- a/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/impl/RoleBindTotalImpl.java +++ b/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/impl/RoleBindTotalImpl.java @@ -21,6 +21,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; +import java.util.Set; /** * 角色绑定权限,点击绑定所有时候的业务处理 @@ -52,7 +53,7 @@ public class RoleBindTotalImpl implements RoleAssignOperateAction, RoleBindLimit } @Override - public void doOperateAction(RoleBindPermissionRequest roleBindPermissionRequest) { + public void doOperateAction(RoleBindPermissionRequest roleBindPermissionRequest, Set roleLimitMenuIdsAndOptionIds) { Long roleId = roleBindPermissionRequest.getRoleId(); @@ -69,7 +70,7 @@ public class RoleBindTotalImpl implements RoleAssignOperateAction, RoleBindLimit if (roleBindPermissionRequest.getChecked()) { // 获取所有的菜单 - List totalMenus = this.sysMenuService.getTotalMenus(); + List totalMenus = this.sysMenuService.getTotalMenus(roleLimitMenuIdsAndOptionIds); // 绑定角色的所有菜单 List sysRoleMenuList = new ArrayList<>(); @@ -83,7 +84,7 @@ public class RoleBindTotalImpl implements RoleAssignOperateAction, RoleBindLimit this.sysRoleMenuService.saveBatch(sysRoleMenuList); // 获取所有的功能 - List sysMenuOptionsList = sysMenuOptionsService.getTotalMenuOptionsList(); + List sysMenuOptionsList = sysMenuOptionsService.getTotalMenuOptionsList(roleLimitMenuIdsAndOptionIds); // 绑定角色的所有功能 List sysRoleMenuOptionsList = new ArrayList<>();