diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/I3CoreQueueConfig.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/I3CoreQueueConfig.java index ba59d5c..d3cd269 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/I3CoreQueueConfig.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/I3CoreQueueConfig.java @@ -1,7 +1,6 @@ package cn.estsh.i3plus.core.apiservice.mq; import cn.estsh.i3plus.platform.common.util.PlatformConstWords; -import com.alibaba.fastjson.JSON; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.amqp.core.Queue; 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 b989dc8..af897f6 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 @@ -1,23 +1,21 @@ package cn.estsh.i3plus.core.apiservice.mq; -import cn.estsh.i3plus.core.api.iservice.base.ISystemInitService; -import cn.estsh.i3plus.core.api.iservice.busi.ISysLocaleLanguageService; -import cn.estsh.i3plus.core.api.iservice.busi.ISysLocaleResourceService; -import cn.estsh.i3plus.platform.common.tool.TimeTool; +import cn.estsh.i3plus.core.api.iservice.busi.ISysMenuService; +import cn.estsh.i3plus.platform.common.tool.JsonUtilTool; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; -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.impp.framework.boot.auth.AuthUtil; +import cn.estsh.impp.framework.boot.util.LocaleUtils; import com.rabbitmq.client.Channel; -import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; 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 java.util.Map; import static cn.estsh.i3plus.platform.common.util.PlatformConstWords.QUEUE_IMPP_RESOURCE; @@ -29,19 +27,13 @@ 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); @Autowired - private ISysLocaleResourceService localeResourceService; - - @Autowired - private ISysLocaleLanguageService localeLanguageService; - - @Autowired - private ISystemInitService systemInitService; + private ISysMenuService sysMenuService; /** * 语言反向国际化实现 @@ -49,55 +41,28 @@ public class SysLocalResourceQueue { *
根据信息创建不同语言的国际化信息。 *
当存在的时候不做任何操作,不存的时候创建全部语言的资源信息 * - * @param resourceKey * @param channel * @param message */ @RabbitListener(queues = QUEUE_IMPP_RESOURCE) - public void processImppMessage(String resourceKey, Channel channel, Message message) { + public void processImppMessage(String missResourceStr, Channel channel, Message message) { try { - if(StringUtils.isNotBlank(resourceKey)){ - List list = localeLanguageService.listSysLocaleLanguage(); - if(list != null && list.size() > 0){ - List resourceList = localeResourceService.findSysLocaleResourceByResKey(resourceKey); - - List saveResource = new ArrayList<>(list.size()); - SysLocaleResource resource = null; - for (SysLocaleLanguage language : list) { - resource = null; - if(resourceList != null && resourceList.size() > 0){ - for (SysLocaleResource localeResource : resourceList) { - if(language.getLanguageCode() != null && language.getLanguageCode().equals(localeResource.getLanguageCode())){ - resource = localeResource; - } - } - }else { - resource = new SysLocaleResource(); - resource.setLanguageCode(language.getLanguageCode()); - resource.setLanguageNameRdd(language.getLanguageName()); - resource.setIsSystem(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); - resource.setResourceType(CommonEnumUtil.SYS_LOCALE_RESOURCE_TYPE.MISSING.getValue()); - resource.setResourceValue(resourceKey); - resource.setResourceKey(resourceKey); - - resource.setCreateDatetime(TimeTool.getNowTime(true)); - resource.setModifyDatetime(TimeTool.getNowTime(true)); - resource.setIsValid(CommonEnumUtil.IS_VAILD.VAILD.getValue()); //有效 - resource.setIsDeleted(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); //未删除 - } - - if(resource != null){ - saveResource.add(resource); - } - } - - if(saveResource != null && saveResource.size() > 0){ - localeResourceService.saveSysLocaleResource(saveResource); - } + Map missResource = JsonUtilTool.decode(missResourceStr, Map.class); + if (missResource != null && !missResource.isEmpty()) { + Map.Entry entry = missResource.entrySet().iterator().next(); + SysMenu sysMenu = sysMenuService.getSysMenuByCode(entry.getValue()); + CommonEnumUtil.SOFT_TYPE softType = CommonEnumUtil.SOFT_TYPE.valueOf(sysMenu.getSoftType()); + if(softType == null){ + softType = CommonEnumUtil.SOFT_TYPE.IMPP; } + + LocaleUtils.saveMissResource(entry.getKey(), AuthUtil.getSessionLanguage().toString(), + softType.getValue(), + CommonEnumUtil.SYS_LOCALE_RESOURCE_TYPE.MISSING.getValue(), + CommonEnumUtil.MiSS_RESOURCE_SOURCE.WEB.getValue()); } }catch (Exception e){ - e.printStackTrace(); + LOGGER.error("缺失资源保存异常:{}", missResourceStr, e); }finally { try { channel.basicAck(message.getMessageProperties().getDeliveryTag(),false);