|
|
|
@ -98,6 +98,7 @@ public class IssueProjectTagDictRedis { |
|
|
|
} |
|
|
|
|
|
|
|
IssueProjectCategoryDictEntity otherCategory = categoryDictDao.selectSingleByCustomerIdAndCategoryNameAndCategoryType(customerId, ModuleConstants.CATEGORY_NAME_OTHERS, null); |
|
|
|
//是否传入的类别Id中只包含"其他"分类,因为自定义分类和默认分类排序规则不一样
|
|
|
|
boolean ifOtherOnly = null == otherCategory ? false : (!CollectionUtils.isEmpty(category) && category.size() == NumConstant.ONE && category.contains(otherCategory.getId()) ? true : false); |
|
|
|
|
|
|
|
Map<String,List<IssueCategoryTagResultDTO>> result = new HashMap<>(); |
|
|
|
@ -127,10 +128,9 @@ public class IssueProjectTagDictRedis { |
|
|
|
result.put(ModuleConstants.CUSTOMIZED_TAG_CATEGORY_NAME,customizedResult); |
|
|
|
} |
|
|
|
|
|
|
|
//默认、自定义标签,只要有一个是空就触发补偿
|
|
|
|
//查询结果是空就触发补偿
|
|
|
|
//不信任缓存数据
|
|
|
|
if(!CollectionUtils.isEmpty(result) && !CollectionUtils.isEmpty(result.get(ModuleConstants.DEFAULT_TAG_CATEGORY_NAME)) |
|
|
|
&& !CollectionUtils.isEmpty(result.get(ModuleConstants.CUSTOMIZED_TAG_CATEGORY_NAME))) |
|
|
|
if(!CollectionUtils.isEmpty(result)) |
|
|
|
return result; |
|
|
|
|
|
|
|
|
|
|
|
@ -154,7 +154,7 @@ public class IssueProjectTagDictRedis { |
|
|
|
* @Description FIXME 该方法保留,默认查询缓存,默认和自定义两种标签均按热度排序 |
|
|
|
* FIXME 如果缓存中没有相关数据,则进行补偿,返回的数据为:1、默认标签(分类排序) 2、自定义标签(热度排序) |
|
|
|
* FIXME 补偿机制均是在缓存中存储热度得分,因此在业务改变之前不要调用该方法 |
|
|
|
* category为空,则补偿全部,返回默认标签和自定义标签 |
|
|
|
* category为空,返回默认标签和自定义标签 |
|
|
|
* category仅包含"其他"这个分类的Id时,同上 |
|
|
|
* category不为空且不只有"其他"这个分类的Id时,则返回集合中的类别标签以及自定义标签 |
|
|
|
* 默认标签不按照热度排序,自定义标签按照热度排序 |
|
|
|
@ -358,6 +358,18 @@ public class IssueProjectTagDictRedis { |
|
|
|
redisUtils.zSetAdd(key,o); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @Description 给客户下的分类/标签批量增加/减少热度 |
|
|
|
* param : |
|
|
|
* key : 0 代表减一 1 代表加一 |
|
|
|
* value : |
|
|
|
* key : 某一客户下分类/标签的redisKey |
|
|
|
* value : 需要修改的分类/标签 |
|
|
|
* @param param |
|
|
|
* @return void |
|
|
|
* @author wangc |
|
|
|
* @date 2021.03.20 01:04 |
|
|
|
*/ |
|
|
|
public void batchIncrScore(Map<String,Map<String,List<IssueCategoryTagResultDTO>>> param){ |
|
|
|
if(CollectionUtils.isEmpty(param)) return; |
|
|
|
redisTemplate.executePipelined((RedisCallback) connection -> { |
|
|
|
|