| 
						
						
							
								
							
						
						
					 | 
					@ -98,6 +98,7 @@ public class IssueProjectTagDictRedis { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        } | 
					 | 
					 | 
					        } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        IssueProjectCategoryDictEntity otherCategory = categoryDictDao.selectSingleByCustomerIdAndCategoryNameAndCategoryType(customerId, ModuleConstants.CATEGORY_NAME_OTHERS, null); | 
					 | 
					 | 
					        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); | 
					 | 
					 | 
					        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<>(); | 
					 | 
					 | 
					        Map<String,List<IssueCategoryTagResultDTO>> result = new HashMap<>(); | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -127,10 +128,9 @@ public class IssueProjectTagDictRedis { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                result.put(ModuleConstants.CUSTOMIZED_TAG_CATEGORY_NAME,customizedResult); | 
					 | 
					 | 
					                result.put(ModuleConstants.CUSTOMIZED_TAG_CATEGORY_NAME,customizedResult); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            } | 
					 | 
					 | 
					            } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					            //默认、自定义标签,只要有一个是空就触发补偿
 | 
					 | 
					 | 
					            //查询结果是空就触发补偿
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					            //不信任缓存数据
 | 
					 | 
					 | 
					            //不信任缓存数据
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					            if(!CollectionUtils.isEmpty(result) && !CollectionUtils.isEmpty(result.get(ModuleConstants.DEFAULT_TAG_CATEGORY_NAME)) | 
					 | 
					 | 
					            if(!CollectionUtils.isEmpty(result)) | 
				
			
			
				
				
			
		
	
		
		
			
				
					 | 
					 | 
					                && !CollectionUtils.isEmpty(result.get(ModuleConstants.CUSTOMIZED_TAG_CATEGORY_NAME))) | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					            return result; | 
					 | 
					 | 
					            return result; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -154,7 +154,7 @@ public class IssueProjectTagDictRedis { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					     * @Description    FIXME 该方法保留,默认查询缓存,默认和自定义两种标签均按热度排序 | 
					 | 
					 | 
					     * @Description    FIXME 该方法保留,默认查询缓存,默认和自定义两种标签均按热度排序 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					     *                 FIXME 如果缓存中没有相关数据,则进行补偿,返回的数据为:1、默认标签(分类排序) 2、自定义标签(热度排序) | 
					 | 
					 | 
					     *                 FIXME 如果缓存中没有相关数据,则进行补偿,返回的数据为:1、默认标签(分类排序) 2、自定义标签(热度排序) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					     *                 FIXME 补偿机制均是在缓存中存储热度得分,因此在业务改变之前不要调用该方法 | 
					 | 
					 | 
					     *                 FIXME 补偿机制均是在缓存中存储热度得分,因此在业务改变之前不要调用该方法 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					     *                 category为空,则补偿全部,返回默认标签和自定义标签 | 
					 | 
					 | 
					     *                 category为空,返回默认标签和自定义标签 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					     *                 category仅包含"其他"这个分类的Id时,同上 | 
					 | 
					 | 
					     *                 category仅包含"其他"这个分类的Id时,同上 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					     *                 category不为空且不只有"其他"这个分类的Id时,则返回集合中的类别标签以及自定义标签 | 
					 | 
					 | 
					     *                 category不为空且不只有"其他"这个分类的Id时,则返回集合中的类别标签以及自定义标签 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					     *                 默认标签不按照热度排序,自定义标签按照热度排序 | 
					 | 
					 | 
					     *                 默认标签不按照热度排序,自定义标签按照热度排序 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -358,6 +358,18 @@ public class IssueProjectTagDictRedis { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        redisUtils.zSetAdd(key,o); | 
					 | 
					 | 
					        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){ | 
					 | 
					 | 
					    public void batchIncrScore(Map<String,Map<String,List<IssueCategoryTagResultDTO>>> param){ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        if(CollectionUtils.isEmpty(param)) return; | 
					 | 
					 | 
					        if(CollectionUtils.isEmpty(param)) return; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        redisTemplate.executePipelined((RedisCallback) connection -> { | 
					 | 
					 | 
					        redisTemplate.executePipelined((RedisCallback) connection -> { | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					
  |