【7.3.2】【role】更新角色资源的第一次修改

pull/43/MERGE
fengshuonan 2022-11-17 00:05:40 +08:00
parent 660c680950
commit bedea82103
4 changed files with 78 additions and 1 deletions

View File

@ -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);
}
}

View File

@ -91,4 +91,14 @@ public interface SysRoleResourceService extends IService<SysRoleResource> {
*/
void batchSaveResCodes(Long roleId, List<SysRoleResourceDTO> totalResourceCode);
/**
* app
*
* @param decisionFirstStart trueupdate
* @param newAppCode
* @author fengshuonan
* @date 2022/11/16 23:37
*/
void updateNewAppCode(Boolean decisionFirstStart, String newAppCode);
}

View File

@ -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);
}
}

View File

@ -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