| 
					
				 | 
			
			
				@@ -69,7 +69,13 @@ public class RankServiceImpl implements RankService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<AdRankItem> rankItems=adCreativeFeatureContainer.getAll(request.getAdIdList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Map<Long, AdRankItem> cache=adCreativeFeatureContainer.getAll(request.getAdIdList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<AdRankItem> rankItems=Collections.emptyList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(!cache.isEmpty()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            rankItems=new LinkedList<>(cache.values()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				          
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if(rankItems==null|| rankItems.size()==0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             rankItems=new LinkedList<>(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -139,7 +145,12 @@ public class RankServiceImpl implements RankService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<AdRankItem> rankItems=adCreativeFeatureContainer.getAll(new ArrayList<>(groupMap.keySet())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Map<Long, AdRankItem> cache=adCreativeFeatureContainer.getAll(new ArrayList<>(groupMap.keySet())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<AdRankItem> rankItems=Collections.emptyList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(!cache.isEmpty()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            rankItems=new LinkedList<>(cache.values()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         for(AdRankItem item:rankItems){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -230,19 +241,25 @@ public class RankServiceImpl implements RankService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if(userAdFeature==null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             userAdFeature=new UserAdFeature(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Map<String,List<AdPlatformBidCreativeDTO>> groupMap=request 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Map<Long,List<AdPlatformBidCreativeDTO>> groupMap=request 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .getCreativeList() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .stream() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                .collect(Collectors.groupingBy(creativeDTO -> creativeDTO.getCreativeId()+"")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .collect(Collectors.groupingBy(creativeDTO -> creativeDTO.getCreativeId())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<AdRankItem> rankItems=featureRemoteService. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                getAllAdFeatureList( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        new ArrayList<>(groupMap.keySet()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Map<Long, AdRankItem> cache=adCreativeFeatureContainer.getAll(new ArrayList<>(groupMap.keySet())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<AdRankItem> rankItems=Collections.emptyList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(!cache.isEmpty()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            rankItems=new LinkedList<>(cache.values()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         for(AdRankItem item:rankItems){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                AdPlatformBidCreativeDTO dto=groupMap.get(item.getAdId()+"").get(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                AdPlatformBidCreativeDTO dto=groupMap.get(item.getAdId()).get(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 item.setBid1(dto.getBid1()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 item.setBid2(dto.getBid2()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 item.setCpa(dto.getCpa()); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -278,7 +295,7 @@ public class RankServiceImpl implements RankService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         result.setCreativeId(topItem.getAdId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         result.setPctr(topItem.getCtr()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         result.setPcvr(topItem.getCvr()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        result.setCreativeCode(groupMap.get(topItem.getAdId()+"").get(0).getCreativeCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        result.setCreativeCode(groupMap.get(topItem.getAdId()).get(0).getCreativeCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         double realECpm=0d; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				          
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         realECpm=topItem.getEcpm1(); 
			 |