mirror of https://gitee.com/stylefeng/roses
【7.3.2】【role】更新角色资源的第一次修改
parent
660c680950
commit
bedea82103
|
@ -0,0 +1,37 @@
|
|||
package cn.stylefeng.roses.kernel.system.modular.role.listener;
|
||||
|
||||
import cn.hutool.extra.spring.SpringUtil;
|
||||
import cn.stylefeng.roses.kernel.rule.listener.ApplicationStartedListener;
|
||||
import cn.stylefeng.roses.kernel.system.modular.role.service.SysRoleResourceService;
|
||||
import org.springframework.boot.context.event.ApplicationStartedEvent;
|
||||
import org.springframework.core.Ordered;
|
||||
import org.springframework.core.env.ConfigurableEnvironment;
|
||||
|
||||
/**
|
||||
* 监听项目启动,进行role_resource表的资源名称前缀修改
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2022/11/16 23:05
|
||||
*/
|
||||
public class RoleResourceUpdateListener extends ApplicationStartedListener implements Ordered {
|
||||
|
||||
@Override
|
||||
public int getOrder() {
|
||||
return Ordered.LOWEST_PRECEDENCE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void eventCallback(ApplicationStartedEvent event) {
|
||||
|
||||
SysRoleResourceService roleResourceService = SpringUtil.getBean(SysRoleResourceService.class);
|
||||
|
||||
// 获取environment参数
|
||||
ConfigurableEnvironment environment = event.getApplicationContext().getEnvironment();
|
||||
String springApplicationName = environment.getProperty("spring.application.name");
|
||||
|
||||
// 获取所有menu_resource表记录
|
||||
roleResourceService.updateNewAppCode(true, springApplicationName);
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -91,4 +91,14 @@ public interface SysRoleResourceService extends IService<SysRoleResource> {
|
|||
*/
|
||||
void batchSaveResCodes(Long roleId, List<SysRoleResourceDTO> totalResourceCode);
|
||||
|
||||
/**
|
||||
* 更新本表的资源编码,替换为新的app编码
|
||||
*
|
||||
* @param decisionFirstStart 判断是否是第一次启动,参数传true,则判断必须是第一次启动才执行update操作
|
||||
* @param newAppCode 新应用编码
|
||||
* @author fengshuonan
|
||||
* @date 2022/11/16 23:37
|
||||
*/
|
||||
void updateNewAppCode(Boolean decisionFirstStart, String newAppCode);
|
||||
|
||||
}
|
||||
|
|
|
@ -27,9 +27,11 @@ package cn.stylefeng.roses.kernel.system.modular.role.service.impl;
|
|||
import cn.hutool.core.collection.ListUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.stylefeng.roses.kernel.cache.api.CacheOperatorApi;
|
||||
import cn.stylefeng.roses.kernel.config.api.InitConfigApi;
|
||||
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.rule.util.GunsResourceCodeUtil;
|
||||
import cn.stylefeng.roses.kernel.system.api.ResourceServiceApi;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.role.dto.SysRoleResourceDTO;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.role.request.SysRoleRequest;
|
||||
|
@ -62,6 +64,9 @@ public class SysRoleResourceServiceImpl extends ServiceImpl<SysRoleResourceMappe
|
|||
@Resource
|
||||
private ResourceServiceApi resourceServiceApi;
|
||||
|
||||
@Resource
|
||||
private InitConfigApi initConfigApi;
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void grantResource(SysRoleRequest sysRoleRequest) {
|
||||
|
@ -196,4 +201,28 @@ public class SysRoleResourceServiceImpl extends ServiceImpl<SysRoleResourceMappe
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateNewAppCode(Boolean decisionFirstStart, String newAppCode) {
|
||||
|
||||
// 判断是否是第一次启动项目
|
||||
if (decisionFirstStart) {
|
||||
Boolean initConfigFlag = initConfigApi.getInitConfigFlag();
|
||||
if (initConfigFlag) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// 获取所有角色资源表信息
|
||||
List<SysRoleResource> list = this.list();
|
||||
|
||||
// 批量更新资源编码
|
||||
for (SysRoleResource sysRoleResource : list) {
|
||||
String newResourceCode = GunsResourceCodeUtil.replace(sysRoleResource.getResourceCode(), newAppCode);
|
||||
sysRoleResource.setResourceCode(newResourceCode);
|
||||
}
|
||||
|
||||
this.updateBatchById(list);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -5,4 +5,5 @@ org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
|
|||
cn.stylefeng.roses.kernel.system.starter.cache.GunsResourceRedisCacheAutoConfiguration,\
|
||||
cn.stylefeng.roses.kernel.system.starter.GunsSystemHomeStatisticsAutoConfiguration
|
||||
org.springframework.context.ApplicationListener=\
|
||||
cn.stylefeng.roses.kernel.system.modular.menu.listener.MenuResourceUpdateListener
|
||||
cn.stylefeng.roses.kernel.system.modular.menu.listener.MenuResourceUpdateListener,\
|
||||
cn.stylefeng.roses.kernel.system.modular.role.listener.RoleResourceUpdateListener
|
Loading…
Reference in New Issue