From c7d439694fcb503b34ebc00aaad48efb407d4467 Mon Sep 17 00:00:00 2001 From: fengshuonan Date: Wed, 28 Sep 2022 20:40:30 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=907.2.5=E3=80=91=E3=80=90role=E3=80=91?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E8=A7=92=E8=89=B2=E7=BB=91=E5=AE=9A=E8=8F=9C?= =?UTF-8?q?=E5=8D=95=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/pojo/role/request/SysRoleRequest.java | 13 ++++++-- .../role/controller/SysRoleController.java | 11 +++++++ .../modular/role/service/SysRoleService.java | 9 ++++++ .../role/service/impl/SysRoleServiceImpl.java | 32 +++++++++++++------ 4 files changed, 52 insertions(+), 13 deletions(-) diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/role/request/SysRoleRequest.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/role/request/SysRoleRequest.java index e51546c07..a39622c58 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/role/request/SysRoleRequest.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/role/request/SysRoleRequest.java @@ -51,7 +51,7 @@ public class SysRoleRequest extends BaseRequest { * 主键 */ @NotNull(message = "roleId不能为空", groups = {edit.class, delete.class, detail.class, updateStatus.class, grantResource.class, grantResourceV2.class, grantDataScope.class, - grantMenuButton.class, grantMenu.class, grantButton.class, grantMenusAndButtons.class, roleBindMenuList.class}) + grantMenuButton.class, grantMenu.class, grantButton.class, grantMenusAndButtons.class, roleBindMenuList.class, grantRoleMenus.class}) @ChineseDescription("主键") private Long roleId; @@ -137,7 +137,7 @@ public class SysRoleRequest extends BaseRequest { /** * 授权菜单 */ - @NotEmpty(message = "授权菜单Id不能为空", groups = {grantMenuButton.class, grantMenusAndButtons.class}) + @NotEmpty(message = "授权菜单Id不能为空", groups = {grantMenuButton.class, grantMenusAndButtons.class, grantRoleMenus.class}) @ChineseDescription("授权菜单") private List grantMenuIdList; @@ -178,7 +178,7 @@ public class SysRoleRequest extends BaseRequest { * 绑定标识,true-新增绑定菜单,false-取消绑定菜单 */ @ChineseDescription("绑定标识,true-新增绑定菜单,false-取消绑定菜单") - @NotNull(message = "绑定标识不能为空", groups = grantMenusAndButtons.class) + @NotNull(message = "绑定标识不能为空", groups = {grantMenusAndButtons.class, grantRoleMenus.class}) private Boolean selectBindFlag; /** @@ -235,4 +235,11 @@ public class SysRoleRequest extends BaseRequest { */ public @interface roleBindMenuList { } + + /** + * 绑定角色菜单 + */ + public @interface grantRoleMenus { + } + } diff --git a/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/system/modular/role/controller/SysRoleController.java b/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/system/modular/role/controller/SysRoleController.java index 33fd0597d..db227d671 100644 --- a/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/system/modular/role/controller/SysRoleController.java +++ b/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/system/modular/role/controller/SysRoleController.java @@ -252,4 +252,15 @@ public class SysRoleController { return new SuccessResponseData<>(sysRoleService.getRoleSelectList(sysRoleRequest)); } + /** + * 角色权限界面:角色绑定菜单权限 + * + * @author fengshuonan + * @date 2022/9/28 20:28 + */ + @PostResource(name = "角色权限界面:角色绑定菜单权限", path = "/sysRole/grantRoleMenus") + public ResponseData> grantRoleMenus(@RequestBody @Validated(SysRoleRequest.grantRoleMenus.class) SysRoleRequest sysRoleRequest) { + return new SuccessResponseData<>(sysRoleService.grantRoleMenus(sysRoleRequest)); + } + } diff --git a/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/system/modular/role/service/SysRoleService.java b/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/system/modular/role/service/SysRoleService.java index b73f7e8a9..43906be5f 100644 --- a/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/system/modular/role/service/SysRoleService.java +++ b/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/system/modular/role/service/SysRoleService.java @@ -167,4 +167,13 @@ public interface SysRoleService extends IService, RoleServiceApi { * @date 2022/6/27 17:08 */ List grantMenusAndButtonsAndGetResult(SysRoleRequest sysRoleRequest); + + /** + * 角色权限界面,绑定角色的菜单权限 + * + * @author fengshuonan + * @date 2022/9/28 20:29 + */ + List grantRoleMenus(SysRoleRequest sysRoleRequest); + } diff --git a/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/system/modular/role/service/impl/SysRoleServiceImpl.java b/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/system/modular/role/service/impl/SysRoleServiceImpl.java index c7f817d18..a93662323 100644 --- a/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/system/modular/role/service/impl/SysRoleServiceImpl.java +++ b/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/system/modular/role/service/impl/SysRoleServiceImpl.java @@ -418,6 +418,26 @@ public class SysRoleServiceImpl extends ServiceImpl impl @Override public void grantMenusAndButtons(SysRoleRequest sysRoleRequest) { + + // 授权角色绑定的菜单 + this.grantRoleMenus(sysRoleRequest); + + // 授权按钮 + if (ObjectUtil.isNotEmpty(sysRoleRequest.getModularButtonIds())) { + this.grantButton(sysRoleRequest); + } + + } + + @Override + public List grantMenusAndButtonsAndGetResult(SysRoleRequest sysRoleRequest) { + this.grantMenusAndButtons(sysRoleRequest); + return menuServiceApi.getRoleMenuAndButtons(sysRoleRequest); + } + + @Override + public List grantRoleMenus(SysRoleRequest sysRoleRequest) { + // 获取新增绑定还是取消绑定菜单 Boolean selectBindFlag = sysRoleRequest.getSelectBindFlag(); @@ -448,16 +468,8 @@ public class SysRoleServiceImpl extends ServiceImpl impl this.roleMenuService.remove(wrapper); } - // 授权按钮 - if (ObjectUtil.isNotEmpty(sysRoleRequest.getModularButtonIds())) { - this.grantButton(sysRoleRequest); - } - } - - @Override - public List grantMenusAndButtonsAndGetResult(SysRoleRequest sysRoleRequest) { - this.grantMenusAndButtons(sysRoleRequest); - return menuServiceApi.getRoleMenuAndButtons(sysRoleRequest); + // 获取当前角色分配的菜单权限 + return menuServiceApi.getRoleBindMenuList(sysRoleRequest); } @Override