From 4c5ef6a0fe4bb658ac1f94e6e3ecda275332f301 Mon Sep 17 00:00:00 2001 From: fengshuonan Date: Thu, 29 Sep 2022 11:52:08 +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=8E=B7=E5=8F=96=E6=89=80=E6=9C=89=E8=8F=9C?= =?UTF-8?q?=E5=8D=95=E6=8C=89=E9=92=AEid=E9=9B=86=E5=90=88=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kernel/system/api/MenuServiceApi.java | 3 +- .../api/pojo/menu/SysMenuButtonDTO.java | 48 +++++++++++++++++++ .../menu/service/impl/SysMenuServiceImpl.java | 15 ++++-- .../role/service/impl/SysRoleServiceImpl.java | 8 ++-- 4 files changed, 67 insertions(+), 7 deletions(-) create mode 100644 kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/menu/SysMenuButtonDTO.java diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/MenuServiceApi.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/MenuServiceApi.java index 96877ae82..78b09dcce 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/MenuServiceApi.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/MenuServiceApi.java @@ -27,6 +27,7 @@ package cn.stylefeng.roses.kernel.system.api; import cn.stylefeng.roses.kernel.system.api.enums.AntdvFrontTypeEnum; import cn.stylefeng.roses.kernel.system.api.pojo.login.v3.IndexMenuInfo; import cn.stylefeng.roses.kernel.system.api.pojo.menu.MenuAndButtonTreeResponse; +import cn.stylefeng.roses.kernel.system.api.pojo.menu.SysMenuButtonDTO; import cn.stylefeng.roses.kernel.system.api.pojo.role.request.SysRoleRequest; import java.util.List; @@ -133,6 +134,6 @@ public interface MenuServiceApi { * @author fengshuonan * @date 2022/9/29 9:56 */ - List getTotalMenuButtonIdList(AntdvFrontTypeEnum antdvFrontTypeEnum); + List getTotalMenuButtonIdList(AntdvFrontTypeEnum antdvFrontTypeEnum); } diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/menu/SysMenuButtonDTO.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/menu/SysMenuButtonDTO.java new file mode 100644 index 000000000..83aaffd89 --- /dev/null +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/menu/SysMenuButtonDTO.java @@ -0,0 +1,48 @@ +/* + * Copyright [2020-2030] [https://www.stylefeng.cn] + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Guns采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: + * + * 1.请不要删除和修改根目录下的LICENSE文件。 + * 2.请不要删除和修改Guns源码头部的版权声明。 + * 3.请保留源码和相关描述文件的项目出处,作者声明等。 + * 4.分发源码时候,请注明软件出处 https://gitee.com/stylefeng/guns + * 5.在修改包名,模块名称,项目代码等时,请注明软件出处 https://gitee.com/stylefeng/guns + * 6.若您的项目无法满足以上几点,可申请商业授权 + */ +package cn.stylefeng.roses.kernel.system.api.pojo.menu; + +import lombok.Data; + +/** + * 菜单按钮的DTO + * + * @author fengshuonan + * @date 2022/9/29 11:48 + */ +@Data +public class SysMenuButtonDTO { + + /** + * 主键 + */ + private Long buttonId; + + /** + * 按钮编码 + */ + private String buttonCode; + +} diff --git a/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/service/impl/SysMenuServiceImpl.java b/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/service/impl/SysMenuServiceImpl.java index 8e55e0a13..fc437d8e0 100644 --- a/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/service/impl/SysMenuServiceImpl.java +++ b/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/service/impl/SysMenuServiceImpl.java @@ -49,6 +49,7 @@ import cn.stylefeng.roses.kernel.system.api.exception.enums.menu.SysMenuExceptio import cn.stylefeng.roses.kernel.system.api.pojo.app.SysAppResult; import cn.stylefeng.roses.kernel.system.api.pojo.login.v3.IndexMenuInfo; import cn.stylefeng.roses.kernel.system.api.pojo.menu.MenuAndButtonTreeResponse; +import cn.stylefeng.roses.kernel.system.api.pojo.menu.SysMenuButtonDTO; import cn.stylefeng.roses.kernel.system.api.pojo.menu.SysMenuRequest; import cn.stylefeng.roses.kernel.system.api.pojo.menu.antd.AntdMenuSelectTreeNode; import cn.stylefeng.roses.kernel.system.api.pojo.menu.antd.AntdSysMenuDTO; @@ -526,7 +527,7 @@ public class SysMenuServiceImpl extends ServiceImpl impl } @Override - public List getTotalMenuButtonIdList(AntdvFrontTypeEnum antdvFrontTypeEnum) { + public List getTotalMenuButtonIdList(AntdvFrontTypeEnum antdvFrontTypeEnum) { List totalMenuIdList = this.getTotalMenuIdList(antdvFrontTypeEnum); @@ -536,12 +537,20 @@ public class SysMenuServiceImpl extends ServiceImpl impl // 获取所有按钮id集合 LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.select(SysMenuButton::getButtonId); + wrapper.select(SysMenuButton::getButtonId, SysMenuButton::getButtonCode); wrapper.eq(SysMenuButton::getDelFlag, YesOrNotEnum.N.getCode()); wrapper.in(SysMenuButton::getMenuId, totalMenuIdList); List list = this.sysMenuButtonService.list(wrapper); - return list.stream().map(SysMenuButton::getButtonId).collect(Collectors.toList()); + + ArrayList menuButtonDTOS = new ArrayList<>(); + for (SysMenuButton sysMenuButton : list) { + SysMenuButtonDTO sysMenuButtonDTO = new SysMenuButtonDTO(); + sysMenuButtonDTO.setButtonId(sysMenuButton.getButtonId()); + sysMenuButtonDTO.setButtonCode(sysMenuButton.getButtonCode()); + menuButtonDTOS.add(sysMenuButtonDTO); + } + return menuButtonDTOS; } @Override 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 b2f1d9b83..5fa25b72e 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 @@ -48,6 +48,7 @@ import cn.stylefeng.roses.kernel.system.api.enums.AntdvFrontTypeEnum; import cn.stylefeng.roses.kernel.system.api.exception.SystemModularException; import cn.stylefeng.roses.kernel.system.api.exception.enums.role.SysRoleExceptionEnum; import cn.stylefeng.roses.kernel.system.api.pojo.menu.MenuAndButtonTreeResponse; +import cn.stylefeng.roses.kernel.system.api.pojo.menu.SysMenuButtonDTO; import cn.stylefeng.roses.kernel.system.api.pojo.role.dto.SysRoleDTO; import cn.stylefeng.roses.kernel.system.api.pojo.role.dto.SysRoleMenuButtonDTO; import cn.stylefeng.roses.kernel.system.api.pojo.role.dto.SysRoleMenuDTO; @@ -528,14 +529,15 @@ public class SysRoleServiceImpl extends ServiceImpl impl } // 获取所有前台按钮集合 - List totalButtonIds = this.menuServiceApi.getTotalMenuButtonIdList(AntdvFrontTypeEnum.FRONT); + List totalButtonIds = this.menuServiceApi.getTotalMenuButtonIdList(AntdvFrontTypeEnum.FRONT); // 批量保存绑定的按钮集合 List sysRoleMenuButtons = new ArrayList<>(); - for (Long buttonId : totalButtonIds) { + for (SysMenuButtonDTO buttonDTO : totalButtonIds) { SysRoleMenuButton item = new SysRoleMenuButton(); item.setRoleId(sysRoleRequest.getRoleId()); - item.setButtonId(buttonId); + item.setButtonId(buttonDTO.getButtonId()); + item.setButtonCode(buttonDTO.getButtonCode()); sysRoleMenuButtons.add(item); } this.sysRoleMenuButtonService.saveBatch(sysRoleMenuButtons);