| 
					
				 | 
			
			
				@@ -1,8 +1,9 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 package com.tzld.longarticle.recommend.server.service.rank.strategy; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.tzld.longarticle.recommend.server.model.Content; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.tzld.longarticle.recommend.server.model.dto.Content; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.tzld.longarticle.recommend.server.service.AccountContentPoolConfigService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.tzld.longarticle.recommend.server.service.StrategyIndexScoreWeightService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.tzld.longarticle.recommend.server.service.rank.RankItem; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.tzld.longarticle.recommend.server.service.rank.RankParam; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.tzld.longarticle.recommend.server.service.rank.RankResult; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -32,6 +33,8 @@ public class RankV12Strategy implements RankStrategy { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private ScoreService scoreService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private AccountContentPoolConfigService accountContentPoolConfigService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private StrategyIndexScoreWeightService weightService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public RankResult rank(RankParam param) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<Content> result = new ArrayList<>(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -49,19 +52,31 @@ public class RankV12Strategy implements RankStrategy { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             item.setScoreMap(scoreMap.get(c.getId())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             double score; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (contentPools[0].equals(item.getContent().getContentPoolType())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                score = item.getScore(HisFissionDeWeightAvgReadSumRateStrategy.class.getSimpleName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                score += item.getScore(SimilarityStrategy.class.getSimpleName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                score = item.getScore(HisFissionDeWeightAvgReadSumRateStrategy.class.getSimpleName()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        * weightService.getWeight(param.getStrategy(), 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        HisFissionDeWeightAvgReadSumRateStrategy.class.getSimpleName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                score += item.getScore(SimilarityStrategy.class.getSimpleName()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        * weightService.getWeight(param.getStrategy(), 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        SimilarityStrategy.class.getSimpleName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } else if (contentPools[1].equals(item.getContent().getContentPoolType())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                score = item.getScore(SimilarityStrategy.class.getSimpleName()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                score = (item.getScore(SimilarityStrategy.class.getSimpleName()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        * weightService.getWeight(param.getStrategy(), 2, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        SimilarityStrategy.class.getSimpleName())) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         + item.getScore(CategoryStrategy.class.getSimpleName()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         + item.getScore(FlowCtlDecreaseStrategy.class.getSimpleName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if (item.getScore(PublishTimesStrategy.class.getSimpleName()) >= 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    score += item.getScore(ViewCountRateStrategy.class.getSimpleName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    score += item.getScore(ViewCountRateStrategy.class.getSimpleName()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            * weightService.getWeight(param.getStrategy(), 2, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            ViewCountRateStrategy.class.getSimpleName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                score = item.getScore(SimilarityStrategy.class.getSimpleName()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                score = (item.getScore(SimilarityStrategy.class.getSimpleName()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        * weightService.getWeight(param.getStrategy(), 3, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        SimilarityStrategy.class.getSimpleName())) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         + item.getScore(CategoryStrategy.class.getSimpleName()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        + item.getScore(AccountPreDistributeStrategy.class.getSimpleName()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        + (item.getScore(AccountPreDistributeStrategy.class.getSimpleName()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        * weightService.getWeight(param.getStrategy(), 3, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        AccountPreDistributeStrategy.class.getSimpleName())) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         + item.getScore(PublishTimesStrategy.class.getSimpleName()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         + item.getScore(FlowCtlDecreaseStrategy.class.getSimpleName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 |