From 763d6f3e4a3393f0fc8c71cd353adef61be0a425 Mon Sep 17 00:00:00 2001 From: fengshuonan Date: Sun, 18 Jun 2023 20:52:15 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=907.6.0=E3=80=91=E3=80=90sys=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=E7=9A=84=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../role/mapper/SysRoleMenuMapper.java | 4 +-- .../role/service/SysRoleMenuService.java | 25 +++++++++++++------ .../service/impl/SysRoleMenuServiceImpl.java | 25 +++++++++++++++++++ 3 files changed, 44 insertions(+), 10 deletions(-) diff --git a/kernel-s-sys/sys-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/mapper/SysRoleMenuMapper.java b/kernel-s-sys/sys-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/mapper/SysRoleMenuMapper.java index b7a078df7..2376788c7 100644 --- a/kernel-s-sys/sys-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/mapper/SysRoleMenuMapper.java +++ b/kernel-s-sys/sys-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/mapper/SysRoleMenuMapper.java @@ -1,7 +1,7 @@ package cn.stylefeng.roses.kernel.sys.modular.role.mapper; +import cn.stylefeng.roses.kernel.db.mp.injector.CustomBaseMapper; import cn.stylefeng.roses.kernel.sys.modular.role.entity.SysRoleMenu; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** * 角色菜单关联 Mapper 接口 @@ -9,6 +9,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; * @author fengshuonan * @date 2023/06/10 21:29 */ -public interface SysRoleMenuMapper extends BaseMapper { +public interface SysRoleMenuMapper extends CustomBaseMapper { } \ 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 f1804ca17..69ba93632 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 @@ -1,6 +1,7 @@ package cn.stylefeng.roses.kernel.sys.modular.role.service; import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult; +import cn.stylefeng.roses.kernel.sys.modular.menu.entity.SysMenu; import cn.stylefeng.roses.kernel.sys.modular.role.entity.SysRoleMenu; import cn.stylefeng.roses.kernel.sys.modular.role.pojo.request.SysRoleMenuRequest; import com.baomidou.mybatisplus.extension.service.IService; @@ -15,7 +16,7 @@ import java.util.List; */ public interface SysRoleMenuService extends IService { - /** + /** * 新增 * * @param sysRoleMenuRequest 请求参数 @@ -24,7 +25,7 @@ public interface SysRoleMenuService extends IService { */ void add(SysRoleMenuRequest sysRoleMenuRequest); - /** + /** * 删除 * * @param sysRoleMenuRequest 请求参数 @@ -33,7 +34,7 @@ public interface SysRoleMenuService extends IService { */ void del(SysRoleMenuRequest sysRoleMenuRequest); - /** + /** * 编辑 * * @param sysRoleMenuRequest 请求参数 @@ -42,7 +43,7 @@ public interface SysRoleMenuService extends IService { */ void edit(SysRoleMenuRequest sysRoleMenuRequest); - /** + /** * 查询详情 * * @param sysRoleMenuRequest 请求参数 @@ -51,24 +52,32 @@ public interface SysRoleMenuService extends IService { */ SysRoleMenu detail(SysRoleMenuRequest sysRoleMenuRequest); - /** + /** * 获取列表 * - * @param sysRoleMenuRequest 请求参数 + * @param sysRoleMenuRequest 请求参数 * @return List 返回结果 * @author fengshuonan * @date 2023/06/10 21:29 */ List findList(SysRoleMenuRequest sysRoleMenuRequest); - /** + /** * 获取列表(带分页) * - * @param sysRoleMenuRequest 请求参数 + * @param sysRoleMenuRequest 请求参数 * @return PageResult 返回结果 * @author fengshuonan * @date 2023/06/10 21:29 */ PageResult findPage(SysRoleMenuRequest sysRoleMenuRequest); + /** + * 给角色绑定某些菜单 + * + * @author fengshuonan + * @since 2023/6/18 20:46 + */ + void bindRoleMenus(Long roleId, List menuList); + } \ 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/SysRoleMenuServiceImpl.java b/kernel-s-sys/sys-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/impl/SysRoleMenuServiceImpl.java index d109ea5e2..b60add056 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 @@ -8,6 +8,7 @@ import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult; import cn.stylefeng.roses.kernel.rule.exception.base.ServiceException; import cn.stylefeng.roses.kernel.sys.api.callback.RemoveMenuCallbackApi; import cn.stylefeng.roses.kernel.sys.api.callback.RemoveRoleCallbackApi; +import cn.stylefeng.roses.kernel.sys.modular.menu.entity.SysMenu; import cn.stylefeng.roses.kernel.sys.modular.menu.entity.SysMenuOptions; import cn.stylefeng.roses.kernel.sys.modular.menu.service.SysMenuOptionsService; import cn.stylefeng.roses.kernel.sys.modular.menu.service.SysMenuService; @@ -85,6 +86,30 @@ public class SysRoleMenuServiceImpl extends ServiceImpl menuList) { + + if (ObjectUtil.isEmpty(roleId) || ObjectUtil.isEmpty(menuList)) { + return; + } + + // 清空角色的相关角色菜单关联 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysRoleMenu::getRoleId, roleId); + this.remove(queryWrapper); + + // 绑定角色菜单 + ArrayList sysRoleMenus = new ArrayList<>(); + for (SysMenu sysMenu : menuList) { + SysRoleMenu sysRoleMenu = new SysRoleMenu(); + sysRoleMenu.setRoleId(roleId); + sysRoleMenu.setAppId(sysMenu.getAppId()); + sysRoleMenu.setMenuId(sysMenu.getMenuId()); + sysRoleMenus.add(sysRoleMenu); + } + this.getBaseMapper().insertBatchSomeColumn(sysRoleMenus); + } + @Override public List findList(SysRoleMenuRequest sysRoleMenuRequest) { LambdaQueryWrapper wrapper = this.createWrapper(sysRoleMenuRequest);