From 4624b9d0b72b801051396ad74fcdee926cdaca5e Mon Sep 17 00:00:00 2001 From: mx <1289317512@qq.com> Date: Wed, 25 Dec 2024 13:59:26 +0800 Subject: [PATCH] =?UTF-8?q?bug=20=E5=92=8C=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/json/TranslationThreadLocal.java | 17 ++++++++++++++--- .../redis/manager/CaffeineCacheDecorator.java | 2 ++ .../core/handler/TranslationHandler.java | 4 +++- .../core/impl/DictTypeTranslationImpl.java | 2 ++ .../impl/PsContractInfoServiceImpl.java | 18 ++++++++++++++++-- .../service/impl/SysDictTypeServiceImpl.java | 13 ++++++++++++- 6 files changed, 49 insertions(+), 7 deletions(-) diff --git a/pusong-common/pusong-common-json/src/main/java/com/pusong/common/json/TranslationThreadLocal.java b/pusong-common/pusong-common-json/src/main/java/com/pusong/common/json/TranslationThreadLocal.java index c756c07..666d130 100644 --- a/pusong-common/pusong-common-json/src/main/java/com/pusong/common/json/TranslationThreadLocal.java +++ b/pusong-common/pusong-common-json/src/main/java/com/pusong/common/json/TranslationThreadLocal.java @@ -4,7 +4,7 @@ import java.util.HashMap; import java.util.Map; public class TranslationThreadLocal { - Map cache = new HashMap<>(); + Map cache = new HashMap<>(); /*把线程相关的部分内聚到 类里面 相当于map 每个类是对应key*/ private static ThreadLocal t = new ThreadLocal(); @@ -25,9 +25,20 @@ public class TranslationThreadLocal { } public String get(String key1, String key2) { - return cache.get(key1 + "_" + key2); + Object o = cache.get(key1 + "_" + key2); + if (o == null){ + return null; + } + return o.toString(); } - public String set(String key1, String key2, String val) { + public Object set(String key1, String key2, String val) { return cache.put(key1 + "_" + key2, val); } + + public Object get(String key1) { + return cache.get(key1); + } + public Object set(String key1, Object val) { + return cache.put(key1, val); + } } diff --git a/pusong-common/pusong-common-redis/src/main/java/com/pusong/common/redis/manager/CaffeineCacheDecorator.java b/pusong-common/pusong-common-redis/src/main/java/com/pusong/common/redis/manager/CaffeineCacheDecorator.java index 06708de..7c4c06b 100644 --- a/pusong-common/pusong-common-redis/src/main/java/com/pusong/common/redis/manager/CaffeineCacheDecorator.java +++ b/pusong-common/pusong-common-redis/src/main/java/com/pusong/common/redis/manager/CaffeineCacheDecorator.java @@ -1,6 +1,7 @@ package com.pusong.common.redis.manager; import com.pusong.common.core.utils.SpringUtils; +import lombok.extern.slf4j.Slf4j; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.cache.Cache; @@ -12,6 +13,7 @@ import java.util.concurrent.Callable; * * @author LionLi */ +@Slf4j public class CaffeineCacheDecorator implements Cache { Logger logger = LoggerFactory.getLogger(CaffeineCacheDecorator.class); diff --git a/pusong-common/pusong-common-translation/src/main/java/com/pusong/common/translation/core/handler/TranslationHandler.java b/pusong-common/pusong-common-translation/src/main/java/com/pusong/common/translation/core/handler/TranslationHandler.java index b97afd5..94d2f6f 100644 --- a/pusong-common/pusong-common-translation/src/main/java/com/pusong/common/translation/core/handler/TranslationHandler.java +++ b/pusong-common/pusong-common-translation/src/main/java/com/pusong/common/translation/core/handler/TranslationHandler.java @@ -54,8 +54,10 @@ public class TranslationHandler extends JsonSerializer implements Contex if (result != null){ TranslationThreadLocal.getThreadInstance().set(value.toString(), translation.other(), result.toString()); } +// TranslationThreadLocal.getThreadInstance().set(value.toString(), translation.other(), "111"); + } - gen.writeObject(result); + gen.writeObject(1); } else { gen.writeObject(value); } diff --git a/pusong-common/pusong-common-translation/src/main/java/com/pusong/common/translation/core/impl/DictTypeTranslationImpl.java b/pusong-common/pusong-common-translation/src/main/java/com/pusong/common/translation/core/impl/DictTypeTranslationImpl.java index 2ac0cd4..91adf78 100644 --- a/pusong-common/pusong-common-translation/src/main/java/com/pusong/common/translation/core/impl/DictTypeTranslationImpl.java +++ b/pusong-common/pusong-common-translation/src/main/java/com/pusong/common/translation/core/impl/DictTypeTranslationImpl.java @@ -6,6 +6,7 @@ import com.pusong.common.translation.annotation.TranslationType; import com.pusong.common.translation.constant.TransConstant; import com.pusong.common.translation.core.TranslationInterface; import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -16,6 +17,7 @@ import org.slf4j.LoggerFactory; */ @AllArgsConstructor @TranslationType(type = TransConstant.DICT_TYPE_TO_LABEL) +@Slf4j public class DictTypeTranslationImpl implements TranslationInterface { private final static Logger logger = LoggerFactory.getLogger(DictTypeTranslationImpl.class); diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractInfoServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractInfoServiceImpl.java index 3da48ad..c25ee98 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractInfoServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractInfoServiceImpl.java @@ -393,7 +393,6 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { bo.setInContractStatus(List.of(ContractStatusEnum.SUCCESS.getCode())); log.info("托管服务"); } - QueryWrapper lqw = buildQueryWrapper(bo); Page result = baseMapper.selectPageContractList(pageQuery.build(), lqw); if(CollectionUtils.isEmpty(result.getRecords())){ @@ -738,8 +737,23 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { List detailBos = new ArrayList<>(); for (PsCompanyInfoBo psCompanyInfoBo : bo.getServiceCompanyInfoList()) { for (PsContractBusinessBo item : psCompanyInfoBo.getBusinessList()) { - item.setBusinessTypeName(dictDataService.selectDictLabel("contract_type",item.getBusinessType())); + SysDictData contractType = dictDataService.selectDict("contract_type", item.getBusinessType()); + item.setBusinessTypeName(contractType.getDictLabel()); detailBos.add(item); + + for (PsContractBusinessDetailBo detailBo : item.getDetailBos()) { + contractType = dictDataService.selectDict("service_project", detailBo.getBusinessProject()); + String dictLabel = contractType.getDictLabel(); + String remark = contractType.getRemark(); + if (!StringUtils.isEmpty(remark)){ + JSONObject jsonObject = JSONObject.parseObject(remark); + String extend = jsonObject.getString("extend"); + if (extend != null){ + dictLabel += extend; + } + } + detailBo.setBusinessProjectLabel(dictLabel); + } } } diff --git a/pusong-modules/pusong-system/src/main/java/com/pusong/system/service/impl/SysDictTypeServiceImpl.java b/pusong-modules/pusong-system/src/main/java/com/pusong/system/service/impl/SysDictTypeServiceImpl.java index ad85449..6882b00 100644 --- a/pusong-modules/pusong-system/src/main/java/com/pusong/system/service/impl/SysDictTypeServiceImpl.java +++ b/pusong-modules/pusong-system/src/main/java/com/pusong/system/service/impl/SysDictTypeServiceImpl.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.pusong.common.json.TranslationThreadLocal; import lombok.RequiredArgsConstructor; import com.pusong.common.core.constant.CacheNames; import com.pusong.common.core.exception.ServiceException; @@ -25,6 +26,7 @@ import com.pusong.system.domain.vo.SysDictTypeVo; import com.pusong.system.mapper.SysDictDataMapper; import com.pusong.system.mapper.SysDictTypeMapper; import com.pusong.system.service.ISysDictTypeService; +import lombok.extern.slf4j.Slf4j; import org.springframework.cache.annotation.CachePut; import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; @@ -43,6 +45,7 @@ import java.util.stream.Collectors; */ @RequiredArgsConstructor @Service +@Slf4j public class SysDictTypeServiceImpl implements ISysDictTypeService, DictService { private final SysDictTypeMapper baseMapper; @@ -217,7 +220,15 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService, DictService */ @Override public String getDictLabel(String dictType, String dictValue, String separator) { - List datas = SpringUtils.getAopProxy(this).selectDictDataByType(dictType); + Object result = TranslationThreadLocal.getThreadInstance().get(dictType); + List datas; + if (result != null && result instanceof List){ + datas = (List)result; + }else{ + datas = SpringUtils.getAopProxy(this).selectDictDataByType(dictType); + TranslationThreadLocal.getThreadInstance().set(dictType, datas); + } + Map map = StreamUtils.toMap(datas, SysDictDataVo::getDictValue, SysDictDataVo::getDictLabel); if (StringUtils.containsAny(dictValue, separator)) { return Arrays.stream(dictValue.split(separator))