diff --git a/kernel-s-sys/sys-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/SysRoleMenuOptionsService.java b/kernel-s-sys/sys-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/SysRoleMenuOptionsService.java index d743de9e1..d056c6fe5 100644 --- a/kernel-s-sys/sys-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/SysRoleMenuOptionsService.java +++ b/kernel-s-sys/sys-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/SysRoleMenuOptionsService.java @@ -88,4 +88,12 @@ public interface SysRoleMenuOptionsService extends IService */ void bindRoleMenuOptions(Long roleId, List sysMenuOptionsList); + /** + * 获取角色绑定的菜单功能id + * + * @author fengshuonan + * @since 2023/6/19 12:49 + */ + List getRoleBindMenuOptionsIdList(List roleIdList); + } \ No newline at end of file diff --git a/kernel-s-sys/sys-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/SysRoleMenuService.java b/kernel-s-sys/sys-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/SysRoleMenuService.java index 69ba93632..4d3349cef 100644 --- a/kernel-s-sys/sys-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/SysRoleMenuService.java +++ b/kernel-s-sys/sys-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/SysRoleMenuService.java @@ -80,4 +80,12 @@ public interface SysRoleMenuService extends IService { */ void bindRoleMenus(Long roleId, List menuList); + /** + * 获取角色绑定的菜单id集合,返回菜单id的集合 + * + * @author fengshuonan + * @since 2023/6/19 12:45 + */ + List getRoleBindMenuIdList(List roleIdList); + } \ No newline at end of file diff --git a/kernel-s-sys/sys-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/impl/SysRoleMenuOptionsServiceImpl.java b/kernel-s-sys/sys-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/impl/SysRoleMenuOptionsServiceImpl.java index 94874b734..46821d05c 100644 --- a/kernel-s-sys/sys-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/impl/SysRoleMenuOptionsServiceImpl.java +++ b/kernel-s-sys/sys-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/impl/SysRoleMenuOptionsServiceImpl.java @@ -27,6 +27,7 @@ import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; import java.util.Set; +import java.util.stream.Collectors; /** * 角色和菜单下的功能关联业务实现层 @@ -102,6 +103,25 @@ public class SysRoleMenuOptionsServiceImpl extends ServiceImpl getRoleBindMenuOptionsIdList(List roleIdList) { + + if (ObjectUtil.isEmpty(roleIdList)) { + return new ArrayList<>(); + } + + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.in(SysRoleMenuOptions::getRoleId, roleIdList); + queryWrapper.select(SysRoleMenuOptions::getMenuOptionId); + List roleMenuOptions = this.list(queryWrapper); + + if (ObjectUtil.isEmpty(roleMenuOptions)) { + return new ArrayList<>(); + } + + return roleMenuOptions.stream().map(SysRoleMenuOptions::getMenuOptionId).collect(Collectors.toList()); + } + @Override public List findList(SysRoleMenuOptionsRequest sysRoleMenuOptionsRequest) { LambdaQueryWrapper wrapper = this.createWrapper(sysRoleMenuOptionsRequest); diff --git a/kernel-s-sys/sys-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/impl/SysRoleMenuServiceImpl.java b/kernel-s-sys/sys-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/impl/SysRoleMenuServiceImpl.java index b60add056..e6671d97b 100644 --- a/kernel-s-sys/sys-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/impl/SysRoleMenuServiceImpl.java +++ b/kernel-s-sys/sys-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/impl/SysRoleMenuServiceImpl.java @@ -110,6 +110,24 @@ public class SysRoleMenuServiceImpl extends ServiceImpl getRoleBindMenuIdList(List roleIdList) { + + if (ObjectUtil.isEmpty(roleIdList)) { + return new ArrayList<>(); + } + + LambdaQueryWrapper sysRoleMenuLambdaQueryWrapper = new LambdaQueryWrapper<>(); + sysRoleMenuLambdaQueryWrapper.in(SysRoleMenu::getRoleId, roleIdList); + sysRoleMenuLambdaQueryWrapper.select(SysRoleMenu::getMenuId); + List sysRoleMenuList = this.list(sysRoleMenuLambdaQueryWrapper); + if (ObjectUtil.isEmpty(sysRoleMenuList)) { + return new ArrayList<>(); + } + + return sysRoleMenuList.stream().map(SysRoleMenu::getMenuId).collect(Collectors.toList()); + } + @Override public List findList(SysRoleMenuRequest sysRoleMenuRequest) { LambdaQueryWrapper wrapper = this.createWrapper(sysRoleMenuRequest);