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 f452de2..7e6db60 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 @@ -5,11 +5,9 @@ import cn.estsh.i3plus.core.api.iservice.base.ISystemInitService; import cn.estsh.i3plus.core.api.iservice.base.ISystemLoginService; import cn.estsh.i3plus.core.api.iservice.busi.*; import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; -import cn.estsh.i3plus.platform.common.tool.CookieTool; -import cn.estsh.i3plus.platform.common.tool.ServletRequestTool; -import cn.estsh.i3plus.platform.common.tool.StringTool; -import cn.estsh.i3plus.platform.common.tool.TimeTool; +import cn.estsh.i3plus.platform.common.tool.*; import cn.estsh.i3plus.platform.common.util.CommonConstWords; +import cn.estsh.i3plus.platform.common.util.PlatformConstWords; import cn.estsh.i3plus.pojo.base.annotation.AnnoIgnoreLog; import cn.estsh.i3plus.pojo.base.bean.BaseConstWords; import cn.estsh.i3plus.pojo.base.bean.ListPager; @@ -22,10 +20,7 @@ import cn.estsh.impp.framework.base.controller.CoreBaseController; import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.exception.ImppBusiException; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; -import cn.estsh.impp.framework.boot.util.ImppRedis; -import cn.estsh.impp.framework.boot.util.LocaleUtils; -import cn.estsh.impp.framework.boot.util.ResultBean; -import cn.estsh.impp.framework.boot.util.ValidatorBean; +import cn.estsh.impp.framework.boot.util.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.StringUtils; @@ -89,9 +84,6 @@ public class WhiteController extends CoreBaseController { @Autowired private ISysConfigService configService; - @Autowired - private ISysMenuService sysMenuService; - @Resource(name=CommonConstWords.IMPP_REDIS_RES) private ImppRedis redisRes; @@ -528,16 +520,9 @@ public class WhiteController extends CoreBaseController { @ApiOperation(value = "缺失资源", notes = "缺失资源") public ResultBean getMissResourceByKey(String key,String menuCode){ try { - SysMenu sysMenu = sysMenuService.getSysMenuByCode(menuCode); - CommonEnumUtil.SOFT_TYPE softType = CommonEnumUtil.SOFT_TYPE.valueOf(sysMenu.getSoftType()); - if(softType == null){ - softType = CommonEnumUtil.SOFT_TYPE.IMPP; - } - - LocaleUtils.saveMissResource(key, AuthUtil.getSessionLanguage().toString(), - softType.getValue(), - CommonEnumUtil.SYS_LOCALE_RESOURCE_TYPE.MISSING.getValue(), - CommonEnumUtil.MiSS_RESOURCE_SOURCE.WEB.getValue()); + Map missResource = new HashMap<>(); + missResource.put(key,menuCode); + rabbitTemplate.convertAndSend(PlatformConstWords.QUEUE_IMPP_RESOURCE, JsonUtilTool.encode(missResource)); return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); } catch (ImppBusiException busExcep) { return ResultBean.fail(busExcep); @@ -545,4 +530,21 @@ public class WhiteController extends CoreBaseController { return ResultBean.fail(e).setCode(ImppExceptionEnum.SYSTEM_EXCEPTION.getCode()); } } + + + @AnnoIgnoreLog + @PostMapping(value = "/miss-resource/web-listener-switch") + @ApiOperation(value = "缺失资源开关", notes = "缺失资源开关") + public ResultBean getWebMissResourceSwitch(){ + try { + int webListener = RedisCacheTool.getSysConfigIntVal(PlatformConstWords.WEB_MISS_RESOURCE_LISTENER_SWITCH, + CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); + return ResultBean.success("获取成功") + .setResultObject(webListener == CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); + } catch (ImppBusiException busExcep) { + return ResultBean.fail(busExcep); + } catch (Exception e) { + return ResultBean.fail(e).setCode(ImppExceptionEnum.SYSTEM_EXCEPTION.getCode()); + } + } } 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);