yun-zuoyi
wei.peng 5 years ago
commit c2d1d786a8

@ -58,4 +58,6 @@ public interface ISysLocaleResourceService {
@ApiOperation(value = "添加初始化资源")
void insertInitSysLocaleResourceList(List<SysLocaleResource> sysLocaleResources);
@ApiOperation(value = "删除所有资源")
void deleteSysLocaleResourceAll();
}

@ -28,6 +28,7 @@ import cn.estsh.impp.framework.boot.util.ResultBean;
import cn.estsh.impp.framework.boot.util.ValidatorBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.collections4.ListUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@ -310,7 +311,18 @@ public class SysLocaleResourceController extends CoreBaseController {
itemMap.put(resourceKey, localeResource);
}
sysLocaleResourceService.insertInitSysLocaleResourceList(new ArrayList<>(itemMap.values()));
List<SysLocaleResource> importDataList = new ArrayList<>(itemMap.values());
sysLocaleResourceService.deleteSysLocaleResourceAll();
for (List<SysLocaleResource> resourceList : ListUtils.partition(importDataList, 1000)) {
new Thread(){
@Override
public void run() {
super.run();
sysLocaleResourceService.saveSysLocaleResource(resourceList);
}
}.start();
}
// 重新加载资源
systemInitService.putAndLoadSysLocaleLanguage();
@ -389,6 +401,9 @@ public class SysLocaleResourceController extends CoreBaseController {
@ApiOperation(value = "增量导入系统资源")
public ResultBean incrementImportSysLocaleResource(@RequestParam("file") MultipartFile file){
try {
// 重新加载资源
systemInitService.putAndLoadSysLocaleLanguage();
Long startTime = System.currentTimeMillis();
// 提取Excel数据
LOGGER.info("开始增量导入 {}",file.getOriginalFilename());
@ -420,15 +435,22 @@ public class SysLocaleResourceController extends CoreBaseController {
LOGGER.info("数据去重完毕, 数据去重耗时 {}", deduplicationExecuteTime - excelToolExecuteTime);
// 分批导入
for (List<SysLocaleResource> resourceList : splitList(sysLocaleResourceList, 1000)) {
sysLocaleResourceService.saveSysLocaleResource(resourceList);
int size = 1000;
int i = 0;
for (List<SysLocaleResource> resourceList : ListUtils.partition(sysLocaleResourceList, size)) {
new Thread(){
@Override
public void run() {
super.run();
long startTime = System.currentTimeMillis();
sysLocaleResourceService.saveSysLocaleResource(resourceList);
LOGGER.info("增量导入完毕, 导入耗时{}",System.currentTimeMillis() - startTime);
}
}.start();
}
LOGGER.info("增量导入完毕, 导入耗时{}",System.currentTimeMillis() - deduplicationExecuteTime);
// 重新加载资源
systemInitService.putAndLoadSysLocaleLanguage();
LOGGER.info("数据缓存更新完毕,总耗时:{}",System.currentTimeMillis()-startTime);
return ResultBean.success("导入成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
// LOGGER.info("数据缓存更新完毕,总耗时:{}",System.currentTimeMillis()-startTime);
return ResultBean.success("数据导入中...").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (BaseImppException busExcep) {
@ -466,7 +488,7 @@ public class SysLocaleResourceController extends CoreBaseController {
}
private Long getResourceKey(String resKey, String languageCode) {
if (redisRes.checkKey(CommonConstWords.REDIS_PREFIX_CACHE_LANGUAGE + resKey, languageCode)) {
if (redisRes.checkKey(CommonConstWords.REDIS_PREFIX_CACHE_LANGUAGE + ":" + resKey, languageCode)) {
LOGGER.info("查询到已存在资源 {}{}",resKey,languageCode);
SysLocaleResource sysLocaleResource =sysLocaleResourceService.getSysLocaleResourceByLanguageCodeAndResKey(
languageCode, resKey
@ -475,31 +497,4 @@ public class SysLocaleResourceController extends CoreBaseController {
}
return null;
}
/**
* n
* @param <T>
*
* @param list
* @param len
* @return
*/
public static <T> List<List<T>> splitList(List<T> list, int len) {
if (list == null || list.isEmpty() || len < 1) {
return Collections.emptyList();
}
List<List<T>> result = new ArrayList<>();
int size = list.size();
int count = (size + len - 1) / len;
for (int i = 0; i < count; i++) {
List<T> subList = list.subList(i * len, ((i + 1) * len > size ? size : len * (i + 1)));
result.add(subList);
}
return result;
}
}

@ -228,4 +228,9 @@ public class SysLocaleResourceService implements ISysLocaleResourceService {
sysLocaleResourceRDao.saveAll(sysLocaleResourceList);
}
@Override
public void deleteSysLocaleResourceAll() {
sysLocaleResourceRDao.deleteAll();
}
}

Loading…
Cancel
Save