diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISystemResourceService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISystemResourceService.java index ff2e26e..024964b 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISystemResourceService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISystemResourceService.java @@ -100,4 +100,11 @@ public interface ISystemResourceService { * @return 资源信息 */ SysLocaleResource getSysLocaleResourceByLanguage(int resourceType,String langCode,String langKey); + + /** + * 资源信息查询 + * @param res 资源信息查询条件 + * @return 资源信息集合 + */ + Integer getSysLocaleResourceCount(SysLocaleResource res); } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java index 7bf5777..79aa2c0 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java @@ -278,9 +278,10 @@ public class WhiteController extends CoreBaseController { - @GetMapping(value = "/white/find-language-code-soft-type") + @GetMapping(value = "/find-language-code-soft-type") @ApiOperation(value = "根据语言代码查询资源") - public ResultBean findSysLocaleResourceByLanguageCode(String languageCode,Integer softType){ + public ResultBean findSysLocaleResourceByLanguageCode(String languageCode,Integer softType, + @RequestParam(defaultValue = "2") Integer needPlatformRes){ try { startMultiService(); @@ -302,6 +303,12 @@ public class WhiteController extends CoreBaseController { resourceMap = redisRes.getHashMap(CommonConstWords.REDIS_PREFIX_CACHE_LANGUAGE_WEB + ":" + languageCode + ":" + softType); } + if(needPlatformRes.intValue() == CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()){ + Map platformResMap = + redisRes.getHashMap(CommonConstWords.REDIS_PREFIX_CACHE_LANGUAGE_WEB + ":" + languageCode + ":" + CommonEnumUtil.SOFT_TYPE.IMPP.getValue());; + + } + return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultMap(resourceMap); }catch(ImppBusiException busExcep){ return ResultBean.fail(busExcep); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/SysLocalResourceQueue.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/SysLocalResourceQueue.java index 5e0e142..b989dc8 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/SysLocalResourceQueue.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/SysLocalResourceQueue.java @@ -14,10 +14,11 @@ import org.slf4j.LoggerFactory; import org.springframework.amqp.core.Message; import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; + import java.io.IOException; import java.util.ArrayList; import java.util.List; + import static cn.estsh.i3plus.platform.common.util.PlatformConstWords.QUEUE_IMPP_RESOURCE; @@ -28,7 +29,7 @@ import static cn.estsh.i3plus.platform.common.util.PlatformConstWords.QUEUE_IMPP * @CreateDate : 19-8-23 下午3:12 * @Modify: **/ -@Component +//@Component public class SysLocalResourceQueue { private static final Logger LOGGER = LoggerFactory.getLogger(SysLocalResourceQueue.class); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SystemInitService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SystemInitService.java index fa269a2..9deddc2 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SystemInitService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SystemInitService.java @@ -7,13 +7,11 @@ import cn.estsh.i3plus.core.api.iservice.busi.ISystemResourceService; import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.util.CommonConstWords; import cn.estsh.i3plus.platform.common.util.PlatformConstWords; +import cn.estsh.i3plus.pojo.base.bean.ListPager; +import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil; -import cn.estsh.i3plus.pojo.platform.bean.SysConfig; -import cn.estsh.i3plus.pojo.platform.bean.SysDictionary; -import cn.estsh.i3plus.pojo.platform.bean.SysLocaleLanguage; -import cn.estsh.i3plus.pojo.platform.bean.SysLocaleResource; -import cn.estsh.i3plus.pojo.platform.bean.SysMenu; +import cn.estsh.i3plus.pojo.platform.bean.*; import cn.estsh.i3plus.pojo.platform.repository.SysConfigRepository; import cn.estsh.i3plus.pojo.platform.repository.SysDictionaryRepository; import cn.estsh.i3plus.pojo.platform.repository.SysLocaleLanguageRepository; @@ -25,6 +23,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; + import javax.annotation.Resource; import java.util.ArrayList; import java.util.HashMap; @@ -117,79 +116,100 @@ public class SystemInitService implements ISystemInitService { @ApiOperation(value = "加载语言数据",notes = "加载语言数据") public void putAndLoadSysLocaleLanguage() { // Redis 缓存 - if(type == ImppEnumUtil.SYS_CACHE_TYPE.REDIS.getValue()){ + if (type == ImppEnumUtil.SYS_CACHE_TYPE.REDIS.getValue()) { /** * 整体数据结构: - * code + * code * 先根据code查询,判断是否存在,然后通过语言获取对应的值 + * + * 语言代码 hashMap结构 + * langCode < code : value> + * + * 语言代码+模块 hashMap结构 + * langCode + softType < code : value> + * */ - HashMap> resMap = new HashMap(); - HashMap lanMap = null; - HashMap> webLangMap = new HashMap<>(); - HashMap webResMap; - HashMap> webSoftLangMap = new HashMap<>(); - HashMap webSoftResMap; - String softResKey=null; + HashMap> resMap = new HashMap(); + HashMap lanMap = null; + HashMap> webLangMap = new HashMap<>(); + HashMap webResMap; + HashMap> webSoftLangMap = new HashMap<>(); + HashMap webSoftResMap; + String softResKey = null; + Integer resCount = systemResourceService.getSysLocaleResourceCount(null); //语言数量 List langList = systemResourceService.listSysLocaleLanguage(null); + LOGGER.info("【加载平台资源】共有{}个资源,{}种语言。", resCount, langList.size()); + Pager pager = new Pager(resCount, 5000); + pager.setCurrentPage(0); //查询所有资源 - List resourceList = systemResourceService.listSysLocaleResource(null); - LOGGER.info("【加载平台资源】共有{}个资源,{}种语言。", resourceList.size(), langList.size()); - for (SysLocaleResource res : resourceList) { - //遍历资源,放入map中 - lanMap = resMap.get(res.getResourceKey()); - //判断是否已存在资源信息 - if (lanMap == null){ - lanMap = new HashMap(); - //将key/代码放入 - resMap.put(res.getResourceKey(), lanMap); - } - //根据语言放入 - lanMap.put(res.getLanguageCode(), res.getResourceValue()); + ListPager resourceList; + do { + pager.next(); + resourceList = systemResourceService.listSysLocaleResourceByPager(null, pager); + resMap = new HashMap(); + webLangMap = new HashMap<>(); + webSoftLangMap = new HashMap<>(); + + for (SysLocaleResource res : resourceList.getObjectList()) { + lanMap = resMap.get(res.getResourceKey()); + //判断是否已存在资源信息 + if (lanMap == null) { + lanMap = new HashMap(); + //将key/代码放入 + resMap.put(res.getResourceKey(), lanMap); + } + //根据语言放入 + lanMap.put(res.getLanguageCode(), res.getResourceValue()); - // web 资源 - if(!webLangMap.containsKey(res.getLanguageCode())){ - webLangMap.put(res.getLanguageCode(), new HashMap<>()); - } - // 放入资源信息 - webResMap = webLangMap.get(res.getLanguageCode()); - webResMap.put(res.getResourceKey(), res.getResourceValue()); - - // web 模块资源 - softResKey = res.getLanguageCode() + ":" + res.getSoftTypeVal(); - if(!webSoftLangMap.containsKey(softResKey)){ - webSoftLangMap.put(softResKey, new HashMap<>()); + // web 资源 + if (!webLangMap.containsKey(res.getLanguageCode())) { + webLangMap.put(res.getLanguageCode(), new HashMap<>()); + } + // 放入资源信息 + webResMap = webLangMap.get(res.getLanguageCode()); + webResMap.put(res.getResourceKey(), res.getResourceValue()); + + // web 模块资源 + softResKey = res.getLanguageCode() + ":" + res.getSoftTypeVal(); + if (!webSoftLangMap.containsKey(softResKey)) { + webSoftLangMap.put(softResKey, new HashMap<>()); + } + // 放入模块资源信息 + webSoftResMap = webSoftLangMap.get(softResKey); + webSoftResMap.put(res.getResourceKey(), res.getResourceValue()); } - // 放入模块资源信息 - webSoftResMap = webSoftLangMap.get(softResKey); - webSoftResMap.put(res.getResourceKey(), res.getResourceValue()); - } - for (String key : resMap.keySet()) { - //放入缓存 - if(resMap.get(key) != null) { - redisRes.putHashMap(CommonConstWords.REDIS_PREFIX_CACHE_LANGUAGE + ":" + key, resMap.get(key), 0); + for (String key : resMap.keySet()) { + //放入缓存 + if (resMap.get(key) != null) { + redisRes.putHashMap(CommonConstWords.REDIS_PREFIX_CACHE_LANGUAGE + ":" + key, resMap.get(key), 0); + } } - } - for(String key : webLangMap.keySet()){ - //放入缓存 - if(webLangMap.get(key) != null){ - redisRes.putHashMap(CommonConstWords.REDIS_PREFIX_CACHE_LANGUAGE_WEB + ":" + key,webLangMap.get(key),0); + for (String key : webLangMap.keySet()) { + //放入缓存 + if (webLangMap.get(key) != null) { + redisRes.putHashMap(CommonConstWords.REDIS_PREFIX_CACHE_LANGUAGE + ":" + key, webLangMap.get(key), 0); + redisRes.putHashMap(CommonConstWords.REDIS_PREFIX_CACHE_LANGUAGE_WEB + ":" + key, webLangMap.get(key), 0); + } } - } - for(String key : webSoftLangMap.keySet()){ - //放入缓存 - if(webSoftLangMap.get(key) != null){ - redisRes.putHashMap(CommonConstWords.REDIS_PREFIX_CACHE_LANGUAGE_WEB + ":" + key,webSoftLangMap.get(key),0); + for (String key : webSoftLangMap.keySet()) { + //放入缓存 + if (webSoftLangMap.get(key) != null) { + redisRes.putHashMap(CommonConstWords.REDIS_PREFIX_CACHE_LANGUAGE_WEB + ":" + key, webSoftLangMap.get(key), 0); + } } - } - } + LOGGER.info("【加载平台资源】加载中 {} / {} ", pager.getEndRow(), pager.getTotalRows()); + } while (pager.hasNext()); + + LOGGER.info("【加载平台资源】加载完成。"); + } //加载语言数据 putAndLoadSysMenu(); } @@ -207,12 +227,11 @@ public class SystemInitService implements ISystemInitService { List insertList = new ArrayList<>(); Map redisCacheMap = new HashMap<>(); - if(resource != null && resources.size() > 0){ + if(resources != null && resources.size() > 0){ resources.forEach(res -> resourceKeyMap.put(StringUtils.join(res.getLanguageCode(),res.getResourceKey()),res)); } - if(menus != null && menus.size() > 0 - && languages != null && languages.size() > 0){ + 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(); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SystemResourceService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SystemResourceService.java index 0b84c08..a0b6d86 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SystemResourceService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SystemResourceService.java @@ -154,4 +154,10 @@ public class SystemResourceService implements ISystemResourceService { return null; } } + + @Override + public Integer getSysLocaleResourceCount(SysLocaleResource res) { + DdlPackBean packBean = CoreHqlPack.packHqlSysLocaleResource(res); + return sysLocaleResourceRDao.findByHqlWhereCount(packBean); + } }