From f9a2d2423901ab6aad18d88fa25d3943423aea84 Mon Sep 17 00:00:00 2001 From: wangchao Date: Fri, 11 Dec 2020 17:01:09 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=87=E7=AD=BE=E6=9F=A5=E8=AF=A2=EF=BC=8C?= =?UTF-8?q?=E7=BC=93=E5=AD=98=E7=9A=84=E8=A1=A5=E5=81=BF=E6=9C=BA=E5=88=B6?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/redis/IssueProjectTagDictRedis.java | 14 ++++++++------ .../resources/mapper/IssueProjectTagDictDao.xml | 1 + 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/redis/IssueProjectTagDictRedis.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/redis/IssueProjectTagDictRedis.java index cabdeca377..94452e8b00 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/redis/IssueProjectTagDictRedis.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/redis/IssueProjectTagDictRedis.java @@ -27,7 +27,6 @@ import com.epmet.dto.result.IssueCategoryTagResultDTO; import com.epmet.entity.IssueProjectCategoryDictEntity; import com.epmet.entity.IssueProjectTagDictEntity; import com.epmet.utils.ModuleConstants; -import com.fasterxml.jackson.databind.Module; import com.fasterxml.jackson.databind.ObjectMapper; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; @@ -107,14 +106,14 @@ public class IssueProjectTagDictRedis { //如果keys集合为空,说明缓存中没有当前客户的标签排行信息,直接进行补偿 - Set> customizedTuples = redisUtils.zReverseRangeWithScores(GovIssueRedisKeys.getGovernmentTagKey(customerId, null), NumConstant.ZERO_L, (long) (NumConstant.ONE_NEG)); + Set> customizedTuples = redisUtils.zReverseRangeWithScores(GovIssueRedisKeys.getGovernmentTagKey(customerId, ModuleConstants.CUSTOMIZED_TAG_CATEGORY_NAME), NumConstant.ZERO_L, (long) (NumConstant.ONE_NEG)); if(!CollectionUtils.isEmpty(customizedTuples)){ Map> customizedHeatMap = new HashMap<>(); customizedTuples.forEach(tuple -> { - List queue = customizedHeatMap.get(tuple.getValue()); + List queue = customizedHeatMap.get(tuple.getScore()); if((CollectionUtils.isEmpty(queue))) queue = new LinkedList<>(); queue.add(parseObject(tuple.getValue(), IssueCategoryTagResultDTO.class)); - customizedHeatMap.put((Double) tuple.getValue(),queue); + customizedHeatMap.put(tuple.getScore(),queue); }); List customizedResult = new LinkedList<>(); customizedHeatMap.keySet().stream().sorted(Comparator.reverseOrder()).collect(Collectors.toList()).forEach(count -> { @@ -123,7 +122,10 @@ public class IssueProjectTagDictRedis { result.put(ModuleConstants.CUSTOMIZED_TAG_CATEGORY_NAME,customizedResult); } - if(!CollectionUtils.isEmpty(result)) + //默认、自定义标签,只要有一个是空就触发补偿 + //不信任缓存数据 + if(!CollectionUtils.isEmpty(result) && !CollectionUtils.isEmpty(result.get(ModuleConstants.DEFAULT_TAG_CATEGORY_NAME)) + && !CollectionUtils.isEmpty(result.get(ModuleConstants.CUSTOMIZED_TAG_CATEGORY_NAME))) return result; @@ -285,7 +287,7 @@ public class IssueProjectTagDictRedis { fulfilled.forEach((redisKey, map) -> { map.forEach((score,list) -> { list.forEach(factor -> { - connection.zSetCommands().zAdd(redisTemplate.getValueSerializer().serialize(redisKey), + connection.zSetCommands().zAdd(redisTemplate.getKeySerializer().serialize(redisKey), score.doubleValue(), redisTemplate.getValueSerializer().serialize(factor)); }); diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectTagDictDao.xml b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectTagDictDao.xml index 8ed29444c2..fb36c15a15 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectTagDictDao.xml +++ b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectTagDictDao.xml @@ -78,6 +78,7 @@ (IFNULL(tag.ISSUE_USE_COUNT,0) + IFNULL(tag.PROJECT_USE_COUNT,0)) AS issueUseCount FROM ISSUE_PROJECT_TAG_DICT tag LEFT JOIN ISSUE_PROJECT_CATEGORY_DICT type ON tag.CATEGORY_ID = type.ID + AND type.CUSTOMER_ID = #{customerId} WHERE tag.DEL_FLAG = '0' AND tag.CUSTOMER_ID = #{customerId}