diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysLocaleResourceController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysLocaleResourceController.java index a866118..005900c 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysLocaleResourceController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysLocaleResourceController.java @@ -46,7 +46,7 @@ import java.util.*; @Api(description = "系统语言资源服务") @RequestMapping(PlatformConstWords.BASE_URL + "/sys-locale-resource") public class SysLocaleResourceController extends CoreBaseController { - public static final Logger LOGGER = LoggerFactory.getLogger(SysFileController.class); + public static final Logger LOGGER = LoggerFactory.getLogger(SysLocaleResourceController.class); @Resource(name=CommonConstWords.IMPP_REDIS_RES) private ImppRedis redisRes; @@ -369,27 +369,29 @@ public class SysLocaleResourceController extends CoreBaseController { @ApiOperation(value = "增量导入系统资源") public ResultBean incrementImportSysLocaleResource(@RequestParam("file") MultipartFile file){ try { + LOGGER.info("开始增量导入 {}",file.getOriginalFilename()); ExcelTool excelTool = new ExcelTool(entityManager, redisRes); List sysLocaleResourceList = excelTool.importData(file.getOriginalFilename(), file.getInputStream(), SysLocaleResource.class); + LOGGER.info("增量导入 数据量 {}",sysLocaleResourceList.size()); + // 初始化数据 - SysLocaleResource orginResource; - for (SysLocaleResource resource : sysLocaleResourceList) { - orginResource = sysLocaleResourceService.getSysLocaleResourceByLanguageCodeAndResKey(resource.getLanguageCode() - ,resource.getResourceKey()); - // 是否存在 - if (orginResource!=null) { - resource.setId(orginResource.getId()); - } + for (SysLocaleResource resource : sysLocaleResourceList) { + resource.setId(getResourceKey(resource.getResourceKey(),resource.getLanguageCode())); resource.setIsSystem(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); ConvertBean.modelInitialize(resource, AuthUtil.getSessionUser()); } + + LOGGER.info("数据去重完毕"); + sysLocaleResourceService.saveSysLocaleResource(sysLocaleResourceList); + LOGGER.info("增量导入完毕"); // 重新加载资源 systemInitService.putAndLoadSysLocaleLanguage(); + LOGGER.info("数据缓存更新完毕"); return ResultBean.success("导入成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); } catch (ImppBusiException busExcep) { return ResultBean.fail(busExcep); @@ -400,6 +402,17 @@ public class SysLocaleResourceController extends CoreBaseController { } } + private Long getResourceKey(String resKey, String languageCode) { + if (redisRes.checkKey("CACHE_LANGUAGE:"+resKey,languageCode)) { + LOGGER.info("查询到已存在资源 {}:{}",resKey,languageCode); + SysLocaleResource sysLocaleResource =sysLocaleResourceService.getSysLocaleResourceByLanguageCodeAndResKey( + languageCode, resKey + ); + return sysLocaleResource == null ? null : sysLocaleResource.getId(); + } + return null; + } + /** * 按指定大小,分隔集合,将集合按规定个数分为n个部分 * @param