【7.2.5】更新批量绑定角色按钮的方式

pull/39/MERGE
fengshuonan 2022-10-14 01:07:08 +08:00
parent 689b368679
commit d60958acec
4 changed files with 32 additions and 3 deletions

View File

@ -24,8 +24,8 @@
*/ */
package cn.stylefeng.roses.kernel.system.modular.role.mapper; 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 cn.stylefeng.roses.kernel.system.modular.role.entity.SysRoleMenuButton;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/** /**
* Mapper * Mapper
@ -33,6 +33,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @author fengshuonan * @author fengshuonan
* @date 2021/01/09 11:48 * @date 2021/01/09 11:48
*/ */
public interface SysRoleMenuButtonMapper extends BaseMapper<SysRoleMenuButton> { public interface SysRoleMenuButtonMapper extends CustomBaseMapper<SysRoleMenuButton> {
} }

View File

@ -27,6 +27,8 @@ package cn.stylefeng.roses.kernel.system.modular.role.service;
import cn.stylefeng.roses.kernel.system.modular.role.entity.SysRoleMenuButton; import cn.stylefeng.roses.kernel.system.modular.role.entity.SysRoleMenuButton;
import com.baomidou.mybatisplus.extension.service.IService; 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<SysRoleMenuButton> { public interface SysRoleMenuButtonService extends IService<SysRoleMenuButton> {
/**
*
*
* @param roleMenuButtons
* @author fengshuonan
* @date 2022/10/14 0:56
*/
void batchSaveRoleMenuButton(List<SysRoleMenuButton> roleMenuButtons);
} }

View File

@ -24,12 +24,18 @@
*/ */
package cn.stylefeng.roses.kernel.system.modular.role.service.impl; 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.entity.SysRoleMenuButton;
import cn.stylefeng.roses.kernel.system.modular.role.mapper.SysRoleMenuButtonMapper; import cn.stylefeng.roses.kernel.system.modular.role.mapper.SysRoleMenuButtonMapper;
import cn.stylefeng.roses.kernel.system.modular.role.service.SysRoleMenuButtonService; import cn.stylefeng.roses.kernel.system.modular.role.service.SysRoleMenuButtonService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List;
/** /**
* *
* *
@ -39,4 +45,17 @@ import org.springframework.stereotype.Service;
@Service @Service
public class SysRoleMenuButtonServiceImpl extends ServiceImpl<SysRoleMenuButtonMapper, SysRoleMenuButton> implements SysRoleMenuButtonService { public class SysRoleMenuButtonServiceImpl extends ServiceImpl<SysRoleMenuButtonMapper, SysRoleMenuButton> implements SysRoleMenuButtonService {
@Override
public void batchSaveRoleMenuButton(List<SysRoleMenuButton> roleMenuButtons) {
DbTypeEnum currentDbType = DbOperatorContext.me().getCurrentDbType();
if (DbTypeEnum.MYSQL.equals(currentDbType)) {
List<List<SysRoleMenuButton>> split = ListUtil.split(roleMenuButtons, RuleConstants.DEFAULT_BATCH_INSERT_SIZE);
for (List<SysRoleMenuButton> roleMenuButtonList : split) {
this.getBaseMapper().insertBatchSomeColumn(roleMenuButtonList);
}
} else {
this.saveBatch(roleMenuButtons);
}
}
} }

View File

@ -577,7 +577,7 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
item.setButtonCode(buttonDTO.getButtonCode()); item.setButtonCode(buttonDTO.getButtonCode());
sysRoleMenuButtons.add(item); sysRoleMenuButtons.add(item);
} }
this.sysRoleMenuButtonService.saveBatch(sysRoleMenuButtons); this.sysRoleMenuButtonService.batchSaveRoleMenuButton(sysRoleMenuButtons);
return roleBindOperateList; return roleBindOperateList;
} }