From d60958acece8a8a02f1f93b461211c6b40c88e1e Mon Sep 17 00:00:00 2001 From: fengshuonan Date: Fri, 14 Oct 2022 01:07:08 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=907.2.5=E3=80=91=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E6=89=B9=E9=87=8F=E7=BB=91=E5=AE=9A=E8=A7=92=E8=89=B2=E6=8C=89?= =?UTF-8?q?=E9=92=AE=E7=9A=84=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../role/mapper/SysRoleMenuButtonMapper.java | 4 ++-- .../service/SysRoleMenuButtonService.java | 10 ++++++++++ .../impl/SysRoleMenuButtonServiceImpl.java | 19 +++++++++++++++++++ .../role/service/impl/SysRoleServiceImpl.java | 2 +- 4 files changed, 32 insertions(+), 3 deletions(-) diff --git a/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/system/modular/role/mapper/SysRoleMenuButtonMapper.java b/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/system/modular/role/mapper/SysRoleMenuButtonMapper.java index f11858901..414812426 100644 --- a/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/system/modular/role/mapper/SysRoleMenuButtonMapper.java +++ b/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/system/modular/role/mapper/SysRoleMenuButtonMapper.java @@ -24,8 +24,8 @@ */ package cn.stylefeng.roses.kernel.system.modular.role.mapper; +import cn.stylefeng.roses.kernel.db.mp.injector.CustomBaseMapper; import cn.stylefeng.roses.kernel.system.modular.role.entity.SysRoleMenuButton; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** * 角色按钮关联 Mapper 接口 @@ -33,6 +33,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; * @author fengshuonan * @date 2021/01/09 11:48 */ -public interface SysRoleMenuButtonMapper extends BaseMapper { +public interface SysRoleMenuButtonMapper extends CustomBaseMapper { } diff --git a/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/system/modular/role/service/SysRoleMenuButtonService.java b/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/system/modular/role/service/SysRoleMenuButtonService.java index 1a8c2571c..0687f7d7c 100644 --- a/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/system/modular/role/service/SysRoleMenuButtonService.java +++ b/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/system/modular/role/service/SysRoleMenuButtonService.java @@ -27,6 +27,8 @@ package cn.stylefeng.roses.kernel.system.modular.role.service; import cn.stylefeng.roses.kernel.system.modular.role.entity.SysRoleMenuButton; import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; + /** * 角色按钮关联 服务类 * @@ -35,5 +37,13 @@ import com.baomidou.mybatisplus.extension.service.IService; */ public interface SysRoleMenuButtonService extends IService { + /** + * 批量保存角色绑定的菜单按钮 + * + * @param roleMenuButtons 角色按钮关联列表 + * @author fengshuonan + * @date 2022/10/14 0:56 + */ + void batchSaveRoleMenuButton(List roleMenuButtons); } diff --git a/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/system/modular/role/service/impl/SysRoleMenuButtonServiceImpl.java b/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/system/modular/role/service/impl/SysRoleMenuButtonServiceImpl.java index 276f53d6d..a627ee6a9 100644 --- a/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/system/modular/role/service/impl/SysRoleMenuButtonServiceImpl.java +++ b/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/system/modular/role/service/impl/SysRoleMenuButtonServiceImpl.java @@ -24,12 +24,18 @@ */ package cn.stylefeng.roses.kernel.system.modular.role.service.impl; +import cn.hutool.core.collection.ListUtil; +import cn.stylefeng.roses.kernel.db.api.context.DbOperatorContext; +import cn.stylefeng.roses.kernel.rule.constants.RuleConstants; +import cn.stylefeng.roses.kernel.rule.enums.DbTypeEnum; import cn.stylefeng.roses.kernel.system.modular.role.entity.SysRoleMenuButton; import cn.stylefeng.roses.kernel.system.modular.role.mapper.SysRoleMenuButtonMapper; import cn.stylefeng.roses.kernel.system.modular.role.service.SysRoleMenuButtonService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; +import java.util.List; + /** * 角色按钮关联 服务实现类 * @@ -39,4 +45,17 @@ import org.springframework.stereotype.Service; @Service public class SysRoleMenuButtonServiceImpl extends ServiceImpl implements SysRoleMenuButtonService { + @Override + public void batchSaveRoleMenuButton(List roleMenuButtons) { + DbTypeEnum currentDbType = DbOperatorContext.me().getCurrentDbType(); + if (DbTypeEnum.MYSQL.equals(currentDbType)) { + List> split = ListUtil.split(roleMenuButtons, RuleConstants.DEFAULT_BATCH_INSERT_SIZE); + for (List roleMenuButtonList : split) { + this.getBaseMapper().insertBatchSomeColumn(roleMenuButtonList); + } + } else { + this.saveBatch(roleMenuButtons); + } + } + } 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 74c736b59..6eb356aaf 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 @@ -577,7 +577,7 @@ public class SysRoleServiceImpl extends ServiceImpl impl item.setButtonCode(buttonDTO.getButtonCode()); sysRoleMenuButtons.add(item); } - this.sysRoleMenuButtonService.saveBatch(sysRoleMenuButtons); + this.sysRoleMenuButtonService.batchSaveRoleMenuButton(sysRoleMenuButtons); return roleBindOperateList; }