From e5b2bfe2ba30646e4171b3cedcb413ce0e2d58f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B1=AA=E4=BA=91=E6=98=8A?= Date: Tue, 14 Apr 2020 15:46:27 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9C=AA=E7=BF=BB=E8=AF=91=E8=B5=84=E6=BA=90?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iservice/busi/ISysLocaleResourceService.java | 34 +++++++---- .../configuration/AppStartSystemInit.java | 26 +++++---- .../busi/SysLocaleResourceController.java | 49 +++++----------- .../controller/busi/SysLogOperateController.java | 7 ++- .../serviceimpl/busi/SysLocaleResourceService.java | 67 ++-------------------- 5 files changed, 60 insertions(+), 123 deletions(-) diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysLocaleResourceService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysLocaleResourceService.java index 40305bd..f26c1ce 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysLocaleResourceService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysLocaleResourceService.java @@ -60,16 +60,28 @@ public interface ISysLocaleResourceService { @ApiOperation(value = "删除所有资源") void deleteSysLocaleResourceAll(); - /***************************** 缺失资源管理 ******************************/ - - List listMissResourceModel(); - - MissResourceModel saveMissResourceModel(MissResourceModel missResourceModel); - - void updateMissResourceModelIsValidByKeys(String[] keys, Integer isValid); - - void doCleanInValidMissResource(); - - void doConversionMissResourceByKeys(String[] keys); + /***************************** 缺失资源管理 ******************************/ + + /** + * 查询指定数量的缺失资源 + * @param num 数量 + * @return + */ + @ApiOperation(value = "查询指定数量的缺失资源") + List findMissResourceModelByTop(int num); + + /** + * 缺失资源key + * @param keys + */ + @ApiOperation(value = "根据key删除缺失资源信息") + void deleteInValidMissResourceByKeys(String[] keys); + + /** + * 批量转换缺失资源 + * @param missResourceModelList + */ + @ApiOperation(value = "批量转换缺失资源") + void doConversionMissResourceByKeys(List missResourceModelList) ; } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/configuration/AppStartSystemInit.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/configuration/AppStartSystemInit.java index 0cbb20d..880d871 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/configuration/AppStartSystemInit.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/configuration/AppStartSystemInit.java @@ -62,20 +62,24 @@ public class AppStartSystemInit implements CommandLineRunner { @Override public void run(String... args) throws Exception { - LOGGER.info("【IMPP-Core开始绑定资源信息...】"); - packIMPPResources(); + try { + LOGGER.info("【IMPP-Core开始绑定资源信息...】"); + packIMPPResources(); - LOGGER.info("【IMPP-Core开始加载基础信息...】"); - systemInitService.putAndLoadAll(); + LOGGER.info("【IMPP-Core开始加载基础信息...】"); + systemInitService.putAndLoadAll(); - // 加载系统配置文件 - LOGGER.info("【IMPP-Core 加载系统配置文件到缓存中 ...】"); - systemConfig.loadSystemConfig(CommonEnumUtil.SOFT_TYPE.CORE.getCode()); - LOGGER.info("【IMPP-Core 加载系统配置文件到缓存完成】"); + // 加载系统配置文件 + LOGGER.info("【IMPP-Core 加载系统配置文件到缓存中 ...】"); + systemConfig.loadSystemConfig(CommonEnumUtil.SOFT_TYPE.CORE.getCode()); + LOGGER.info("【IMPP-Core 加载系统配置文件到缓存完成】"); - LOGGER.info("【IMPP-Core 加载 ElasticSearch中 ...】"); - initImppElasticSearch(); - LOGGER.info("【IMPP-Core 加载 ElasticSearch完成】"); + LOGGER.info("【IMPP-Core 加载 ElasticSearch中 ...】"); + initImppElasticSearch(); + LOGGER.info("【IMPP-Core 加载 ElasticSearch完成】"); + } catch (Exception e){ + e.printStackTrace(); + } } /** 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 d6d63db..e8d840d 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 @@ -8,6 +8,7 @@ import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.exception.BaseImppException; import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; import cn.estsh.i3plus.platform.common.tool.ExcelTool; +import cn.estsh.i3plus.platform.common.tool.FileTool; import cn.estsh.i3plus.platform.common.tool.StringTool; import cn.estsh.i3plus.platform.common.util.CommonConstWords; import cn.estsh.i3plus.platform.common.util.FileContentTypeTool; @@ -43,7 +44,10 @@ import javax.persistence.EntityManager; import javax.servlet.http.HttpServletResponse; import java.io.*; import java.nio.charset.StandardCharsets; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -531,7 +535,7 @@ public class SysLocaleResourceController extends CoreBaseController { @ApiOperation(value = "缺失资源列表") public ResultBean listMissResource(){ try { - List missResourceModelList = sysLocaleResourceService.listMissResourceModel(); + List missResourceModelList = sysLocaleResourceService.findMissResourceModelByTop(100); return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(missResourceModelList); } catch (ImppBusiException busExcep) { @@ -541,39 +545,11 @@ public class SysLocaleResourceController extends CoreBaseController { } } - @PutMapping(value = "/miss/update") - @ApiOperation(value = "更新缺失资源信息") - public ResultBean listMissResource(MissResourceModel missResourceModel){ - try { - missResourceModel = sysLocaleResourceService.saveMissResourceModel(missResourceModel); - - return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultObject(missResourceModel); - } catch (ImppBusiException busExcep) { - return ResultBean.fail(busExcep); - } catch (Exception e) { - return ImppExceptionBuilder.newInstance().buildExceptionResult(e); - } - } - - @PutMapping(value = "/miss/batch-update-valid") - @ApiOperation(value = "更新缺失资源有效状态") - public ResultBean updateMissResourceIsValidByKeys(String[] keys,Integer valid){ - try { - sysLocaleResourceService.updateMissResourceModelIsValidByKeys(keys, valid); - - return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); - } catch (ImppBusiException busExcep) { - return ResultBean.fail(busExcep); - } catch (Exception e) { - return ImppExceptionBuilder.newInstance().buildExceptionResult(e); - } - } - @DeleteMapping(value = "/miss/clean-invalid") @ApiOperation(value = "更新缺失资源有效状态") - public ResultBean cleanMissResourceByInvalid(){ + public ResultBean cleanMissResourceByInvalid(String[] keys){ try { - sysLocaleResourceService.doCleanInValidMissResource(); + sysLocaleResourceService.deleteInValidMissResourceByKeys(keys); return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); } catch (ImppBusiException busExcep) { @@ -585,9 +561,9 @@ public class SysLocaleResourceController extends CoreBaseController { @PostMapping(value = "/miss/batch-conversion") @ApiOperation(value = "批量转换缺失资源") - public ResultBean doBatchConversionMissResource(String[] keys){ + public ResultBean doBatchConversionMissResource(@RequestBody List missResourceModelList){ try { - sysLocaleResourceService.doConversionMissResourceByKeys(keys); + sysLocaleResourceService.doConversionMissResourceByKeys(missResourceModelList); return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); } catch (ImppBusiException busExcep) { @@ -601,7 +577,7 @@ public class SysLocaleResourceController extends CoreBaseController { @ApiOperation(value = "导出缺失资源") public ResultBean exportMissResource(HttpServletResponse response){ try { - List missResourceModelList = sysLocaleResourceService.listMissResourceModel(); + List missResourceModelList = sysLocaleResourceService.findMissResourceModelByTop(-1); Map langCodeMap = sysLocaleLanguageService.listSysLocaleLanguage() .stream() .collect( @@ -627,9 +603,10 @@ public class SysLocaleResourceController extends CoreBaseController { } ExcelTool excelTool = new ExcelTool(entityManager, redisRes); + String tempDir = FileTool.makeTempFolder(); String fileName = "locale_" + System.currentTimeMillis() + ".xls"; - File file = new File(fileName); + File file = new File(tempDir,fileName); if (file.createNewFile()) { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysLogOperateController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysLogOperateController.java index f65b2c2..ece1c5f 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysLogOperateController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysLogOperateController.java @@ -21,13 +21,14 @@ import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum; import cn.estsh.impp.framework.boot.util.ImppRedis; 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.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.persistence.EntityManager; @@ -257,7 +258,7 @@ public class SysLogOperateController extends CoreBaseController { return ImppExceptionBuilder.newInstance().buildExceptionResult(e); } finally { // 清理临时文件文件 - if(excelDir == null) { + if(excelDir != null) { FileTool.deleteFile(excelDir.getPath()); } } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysLocaleResourceService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysLocaleResourceService.java index 5265500..38f380f 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysLocaleResourceService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysLocaleResourceService.java @@ -22,7 +22,6 @@ import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.util.ImppRedis; import cn.estsh.impp.framework.boot.util.ValidatorBean; -import com.alibaba.fastjson.JSON; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; @@ -232,8 +231,8 @@ public class SysLocaleResourceService implements ISysLocaleResourceService { } @Override - public List listMissResourceModel() { - List listStr = redisRes.scan(CommonConstWords.REDIS_PREFIX_CACHE_NO_RES + "*"); + public List findMissResourceModelByTop(int num) { + List listStr = redisRes.scan(CommonConstWords.REDIS_PREFIX_CACHE_NO_RES + "*",num); MissResourceModel missResourceModel = null; List missResourceModelList = new ArrayList<>(listStr.size()); @@ -253,59 +252,12 @@ public class SysLocaleResourceService implements ISysLocaleResourceService { } @Override - public MissResourceModel saveMissResourceModel(MissResourceModel missResourceModel) { - redisRes.putObject(missResourceModel.getKey(), JSON.toJSONString(missResourceModel), -1); - return missResourceModel; + public void deleteInValidMissResourceByKeys(String[] keys) { + redisRes.deleteKey(keys); } @Override - public void updateMissResourceModelIsValidByKeys(String[] keys, Integer valid) { - List missResourceStrList = redisRes.findObject(Arrays.asList(keys)); - MissResourceModel missResourceModel = null; - List missResourceModelList = new ArrayList<>(missResourceStrList.size()); - - // 更新状态 - for (Object missResourceStr : missResourceStrList) { - if (missResourceStr == null || StringUtils.isBlank(missResourceStr.toString())) { - continue; - } - missResourceModel = JsonUtilTool.decode(missResourceStr.toString(), MissResourceModel.class); - missResourceModel.setIsValid(valid); - missResourceModelList.add(missResourceModel); - } - - // 存入redis - for (MissResourceModel resourceModel : missResourceModelList) { - redisRes.putObject(resourceModel.getKey(), JsonUtilTool.encode(resourceModel)); - } - } - - @Override - public void doCleanInValidMissResource() { - List listStr = redisRes.scan(CommonConstWords.REDIS_PREFIX_CACHE_NO_RES + "*"); - MissResourceModel missResourceModel = null; - List cleanKeys = new ArrayList<>(listStr.size()); - - // 更新状态 - for (Object missResourceStr : listStr) { - if (missResourceStr ==null || StringUtils.isBlank(missResourceStr.toString())) { - continue; - } - missResourceModel = JsonUtilTool.decode(missResourceStr.toString(), MissResourceModel.class); - - if (missResourceModel != null && missResourceModel.getIsValid() != null - && CommonEnumUtil.IS_VAILD.INVAILD.getValue() == missResourceModel.getIsValid()) { - cleanKeys.add(missResourceModel.getKey()); - } - } - redisRes.deleteKey(cleanKeys.toArray(new String[cleanKeys.size()])); - } - - @Override - public void doConversionMissResourceByKeys(String[] keys) { - List missResourceStrList = redisRes.findObject(Arrays.asList(keys)); - MissResourceModel missResourceModel = null; - List missResourceModelList = new ArrayList<>(missResourceStrList.size()); + public void doConversionMissResourceByKeys(List missResourceModelList) { Map langCodeMap = sysLocaleLanguageRDao.list() .stream() .collect( @@ -315,15 +267,6 @@ public class SysLocaleResourceService implements ISysLocaleResourceService { ) ); - // 类型转换 - for (Object missResourceStr : missResourceStrList) { - if (missResourceStr == null || StringUtils.isBlank(missResourceStr.toString())) { - continue; - } - missResourceModel = JsonUtilTool.decode(missResourceStr.toString(), MissResourceModel.class); - missResourceModelList.add(missResourceModel); - } - SysLocaleResource sysLocaleResource; for (MissResourceModel resourceModel : missResourceModelList) { sysLocaleResource = new SysLocaleResource();