mirror of https://gitee.com/stylefeng/roses
【7.2.5】【resource】修复系统资源插入数据库慢的问题
parent
7db265d447
commit
7b573b530a
|
@ -24,8 +24,8 @@
|
||||||
*/
|
*/
|
||||||
package cn.stylefeng.roses.kernel.system.modular.resource.mapper;
|
package cn.stylefeng.roses.kernel.system.modular.resource.mapper;
|
||||||
|
|
||||||
|
import cn.stylefeng.roses.kernel.db.mp.injector.CustomBaseMapper;
|
||||||
import cn.stylefeng.roses.kernel.system.modular.resource.entity.SysResource;
|
import cn.stylefeng.roses.kernel.system.modular.resource.entity.SysResource;
|
||||||
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 2020/11/23 22:45
|
* @date 2020/11/23 22:45
|
||||||
*/
|
*/
|
||||||
public interface SysResourceMapper extends BaseMapper<SysResource> {
|
public interface SysResourceMapper extends CustomBaseMapper<SysResource> {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,11 +33,14 @@ import cn.stylefeng.roses.kernel.auth.api.pojo.login.basic.SimpleRoleInfo;
|
||||||
import cn.stylefeng.roses.kernel.cache.api.CacheOperatorApi;
|
import cn.stylefeng.roses.kernel.cache.api.CacheOperatorApi;
|
||||||
import cn.stylefeng.roses.kernel.db.api.factory.PageFactory;
|
import cn.stylefeng.roses.kernel.db.api.factory.PageFactory;
|
||||||
import cn.stylefeng.roses.kernel.db.api.factory.PageResultFactory;
|
import cn.stylefeng.roses.kernel.db.api.factory.PageResultFactory;
|
||||||
|
import cn.stylefeng.roses.kernel.db.api.pojo.druid.DruidProperties;
|
||||||
import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
|
import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
|
||||||
import cn.stylefeng.roses.kernel.rule.constants.RuleConstants;
|
import cn.stylefeng.roses.kernel.rule.constants.RuleConstants;
|
||||||
import cn.stylefeng.roses.kernel.rule.constants.TreeConstants;
|
import cn.stylefeng.roses.kernel.rule.constants.TreeConstants;
|
||||||
|
import cn.stylefeng.roses.kernel.rule.enums.DbTypeEnum;
|
||||||
import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum;
|
import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum;
|
||||||
import cn.stylefeng.roses.kernel.rule.tree.factory.DefaultTreeBuildFactory;
|
import cn.stylefeng.roses.kernel.rule.tree.factory.DefaultTreeBuildFactory;
|
||||||
|
import cn.stylefeng.roses.kernel.rule.util.DatabaseTypeUtil;
|
||||||
import cn.stylefeng.roses.kernel.scanner.api.ResourceReportApi;
|
import cn.stylefeng.roses.kernel.scanner.api.ResourceReportApi;
|
||||||
import cn.stylefeng.roses.kernel.scanner.api.pojo.resource.ReportResourceParam;
|
import cn.stylefeng.roses.kernel.scanner.api.pojo.resource.ReportResourceParam;
|
||||||
import cn.stylefeng.roses.kernel.scanner.api.pojo.resource.ResourceDefinition;
|
import cn.stylefeng.roses.kernel.scanner.api.pojo.resource.ResourceDefinition;
|
||||||
|
@ -87,6 +90,9 @@ public class SysResourceServiceImpl extends ServiceImpl<SysResourceMapper, SysRe
|
||||||
@Resource(name = "resourceCache")
|
@Resource(name = "resourceCache")
|
||||||
private CacheOperatorApi<ResourceDefinition> resourceCache;
|
private CacheOperatorApi<ResourceDefinition> resourceCache;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private DruidProperties druidProperties;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PageResult<SysResource> findPage(ResourceRequest resourceRequest) {
|
public PageResult<SysResource> findPage(ResourceRequest resourceRequest) {
|
||||||
LambdaQueryWrapper<SysResource> wrapper = createWrapper(resourceRequest);
|
LambdaQueryWrapper<SysResource> wrapper = createWrapper(resourceRequest);
|
||||||
|
@ -284,10 +290,10 @@ public class SysResourceServiceImpl extends ServiceImpl<SysResourceMapper, SysRe
|
||||||
return new ArrayList<>();
|
return new ArrayList<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
//根据project删除该项目下的所有资源
|
// 根据project删除该项目下的所有资源
|
||||||
this.deleteResourceByProjectCode(projectCode);
|
this.deleteResourceByProjectCode(projectCode);
|
||||||
|
|
||||||
//获取当前应用的所有资源
|
// 获取当前应用的所有资源
|
||||||
ArrayList<SysResource> allResources = new ArrayList<>();
|
ArrayList<SysResource> allResources = new ArrayList<>();
|
||||||
ArrayList<ResourceDefinition> resourceDefinitionArrayList = new ArrayList<>();
|
ArrayList<ResourceDefinition> resourceDefinitionArrayList = new ArrayList<>();
|
||||||
for (Map.Entry<String, Map<String, ResourceDefinition>> appModularResources : resourceDefinitions.entrySet()) {
|
for (Map.Entry<String, Map<String, ResourceDefinition>> appModularResources : resourceDefinitions.entrySet()) {
|
||||||
|
@ -299,10 +305,15 @@ public class SysResourceServiceImpl extends ServiceImpl<SysResourceMapper, SysRe
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//将资源存入库中
|
// 将资源存入库中
|
||||||
this.saveBatch(allResources, allResources.size());
|
DbTypeEnum currentDbType = DatabaseTypeUtil.getDbType(druidProperties.getUrl());
|
||||||
|
if (DbTypeEnum.MYSQL.equals(currentDbType)) {
|
||||||
|
this.getBaseMapper().insertBatchSomeColumn(allResources);
|
||||||
|
} else {
|
||||||
|
this.saveBatch(allResources, allResources.size());
|
||||||
|
}
|
||||||
|
|
||||||
//将资源存入缓存一份
|
// 将资源存入缓存一份
|
||||||
Map<String, ResourceDefinition> resourceDefinitionMap = ResourceFactory.orderedResourceDefinition(resourceDefinitionArrayList);
|
Map<String, ResourceDefinition> resourceDefinitionMap = ResourceFactory.orderedResourceDefinition(resourceDefinitionArrayList);
|
||||||
for (Map.Entry<String, ResourceDefinition> entry : resourceDefinitionMap.entrySet()) {
|
for (Map.Entry<String, ResourceDefinition> entry : resourceDefinitionMap.entrySet()) {
|
||||||
resourceCache.put(entry.getKey(), entry.getValue());
|
resourceCache.put(entry.getKey(), entry.getValue());
|
||||||
|
|
Loading…
Reference in New Issue