Jenkins自动合并

yun-zuoyi
jenkins 5 years ago
commit 788bc29c9d

@ -302,9 +302,10 @@ public class SysLocaleResourceController extends CoreBaseController {
// 初始化数据,资源去重
Map<String, SysLocaleResource> itemMap = new HashMap<>();
String resourceKey;
String userName = AuthUtil.getSessionUser().getUserName();
for (SysLocaleResource localeResource : sysLocaleResourceList) {
localeResource.setIsSystem(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
ConvertBean.modelInitialize(localeResource, AuthUtil.getSessionUser());
ConvertBean.serviceModelInitialize(localeResource, userName);
resourceKey = localeResource.getResourceKey() + localeResource.getLanguageCode();
@ -325,7 +326,7 @@ public class SysLocaleResourceController extends CoreBaseController {
}
// 重新加载资源
systemInitService.putAndLoadSysLocaleLanguage();
// systemInitService.putAndLoadSysLocaleLanguage();
return ResultBean.success("导入成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
@ -415,29 +416,31 @@ public class SysLocaleResourceController extends CoreBaseController {
LOGGER.info("增量导入 数据量 {}, ExcelTool耗时 {}", sysLocaleResourceList.size(), excelToolExecuteTime - startTime);
// 数据去重并初始化
Set<String> resourceSet = new HashSet<>();
// 初始化数据,资源去重
Map<String, SysLocaleResource> itemMap = new HashMap<>();
String resourceKey;
for (SysLocaleResource resource : sysLocaleResourceList) {
// 资源去重
resourceKey = resource.getResourceKey() + resource.getLanguageCode();
if(resourceSet.contains(resourceKey)){
continue;
} else {
resourceSet.add(resourceKey);
}
String userName = AuthUtil.getSessionUser().getUserName();
for (SysLocaleResource localeResource : sysLocaleResourceList) {
// 初始化
resource.setId(getResourceKey(resource.getResourceKey(),resource.getLanguageCode()));
resource.setIsSystem(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
ConvertBean.modelInitialize(resource, AuthUtil.getSessionUser());
localeResource.setId(getResourceKey(localeResource.getResourceKey(),localeResource.getLanguageCode()));
localeResource.setIsSystem(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
ConvertBean.serviceModelInitialize(localeResource, userName);
resourceKey = localeResource.getResourceKey() + localeResource.getLanguageCode();
itemMap.put(resourceKey, localeResource);
}
List<SysLocaleResource> importDataList = new ArrayList<>(itemMap.values());
long deduplicationExecuteTime = System.currentTimeMillis();
LOGGER.info("数据去重完毕, 数据去重耗时 {}", deduplicationExecuteTime - excelToolExecuteTime);
// 分批导入
int size = 1000;
int i = 0;
for (List<SysLocaleResource> resourceList : ListUtils.partition(sysLocaleResourceList, size)) {
for (List<SysLocaleResource> resourceList : ListUtils.partition(importDataList, size)) {
new Thread(){
@Override
public void run() {
@ -487,6 +490,22 @@ public class SysLocaleResourceController extends CoreBaseController {
}
}
@GetMapping(value = "/update-cache")
@ApiOperation(value = "更新资源缓存")
public ResultBean updateResourceCache(){
try {
// 重新加载资源
systemInitService.putAndLoadSysLocaleLanguage();
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
private Long getResourceKey(String resKey, String languageCode) {
if (redisRes.checkKey(CommonConstWords.REDIS_PREFIX_CACHE_LANGUAGE + ":" + resKey, languageCode)) {
LOGGER.info("查询到已存在资源 {}{}",resKey,languageCode);

@ -232,14 +232,20 @@ public class SystemInitService implements ISystemInitService {
if(resources != null && resources.size() > 0){
resources.forEach(res -> resourceKeyMap.put(StringUtils.join(res.getLanguageCode(),res.getResourceKey()),res));
}
String redisLanguageKey;
SysLocaleResource res;
if(menus != null && menus.size() > 0 && languages != null && languages.size() > 0){
for (SysLocaleLanguage language : languages) {
String redisLanguageKey = CommonConstWords.REDIS_PREFIX_CACHE_LANGUAGE_MENU + ":" + language.getLanguageCode();
redisLanguageKey = CommonConstWords.REDIS_PREFIX_CACHE_LANGUAGE_MENU + ":" + language.getLanguageCode();
for (SysMenu menu : menus) {
SysLocaleResource res = resourceKeyMap.get(
StringUtils.join(language.getLanguageCode(),RESOURCE_PREFIX_MENU,menu.getName()));
// 多次校验
res = resourceKeyMap.get(StringUtils.join(language.getLanguageCode(),RESOURCE_PREFIX_MENU,menu.getName()));
if(res == null){
res = localeResourceService.getSysLocaleResourceByLanguageCodeAndResKey(language.getLanguageCode(),
RESOURCE_PREFIX_MENU + menu.getName());
}
if(res == null){
// 当系统没有相应的功能权限资源时创建资源
res = new SysLocaleResource();

@ -230,7 +230,7 @@ public class SysLocaleResourceService implements ISysLocaleResourceService {
@Override
public void deleteSysLocaleResourceAll() {
sysLocaleResourceRDao.deleteAll();
sysLocaleResourceRDao.deleteAllInBatch();
}
}

Loading…
Cancel
Save