소스 검색

Merge branch 'master' into pre-master

gufengshou1 1 년 전
부모
커밋
f126fdae2f

+ 4 - 3
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/score/container/AdCreativeFeatureContainer.java

@@ -5,6 +5,7 @@ import com.google.common.cache.Cache;
 import com.google.common.cache.CacheBuilder;
 import com.google.common.cache.CacheLoader;
 import com.google.common.cache.LoadingCache;
+import com.google.common.collect.ImmutableMap;
 import com.tzld.piaoquan.ad.engine.service.remote.FeatureRemoteService;
 import com.tzld.piaoquan.recommend.feature.domain.ad.base.AdRankItem;
 import org.slf4j.Logger;
@@ -78,13 +79,13 @@ public class AdCreativeFeatureContainer {
         log.info("svc=load_from_recommend_feature  idList={}", JSONObject.toJSONString(keyList));
         return result;
     }
-    public List<AdRankItem> getAll(List<Long> creativeIds) {
+    public Map<Long, AdRankItem>  getAll(List<Long> creativeIds) {
         try {
-            return cache.getAll(creativeIds).values().asList();
+            return cache.getAll(creativeIds);
         } catch (Exception e) {
             log.error("get all failed {}", e);
         }
-        return Collections.emptyList();
+        return Collections.emptyMap();
     }
 
     public AdRankItem get(Long creativeIds) {

+ 27 - 10
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/score/impl/RankServiceImpl.java

@@ -69,7 +69,13 @@ public class RankServiceImpl implements RankService {
 //                getAllAdFeatureList(
 //                        CommonCollectionUtils.toList(request.getAdIdList(),id->id.toString())
 //                );
-        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());
+        }
+
+
         //避免recommend-feature出问题
         if(rankItems==null|| rankItems.size()==0){
             rankItems=new LinkedList<>();
@@ -139,7 +145,12 @@ public class RankServiceImpl implements RankService {
 //                getAllAdFeatureList(
 //                        new ArrayList<>(groupMap.keySet())
 //                );
-        List<AdRankItem> rankItems=adCreativeFeatureContainer.getAll(new ArrayList<>(groupMap.keySet()));
+//        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 {
 //                AdPlatformBidCreativeDTO dto=groupMap.get(item.getAdId()+"").get(0);
@@ -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())
-                );
 
+//        List<AdRankItem> rankItems=featureRemoteService.
+//                getAllAdFeatureList(
+//                        new ArrayList<>(groupMap.keySet())
+//                );
+//        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 {
-                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();