丁云鹏 1 ano atrás
pai
commit
1f8a3d00f7

+ 5 - 0
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/model/RecommendParam.java

@@ -4,9 +4,13 @@ import lombok.Getter;
 import lombok.NoArgsConstructor;
 import lombok.Setter;
 
+<<<<<<< HEAD
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+=======
+import java.util.Set;
+>>>>>>> 3320d41 (ab test)
 
 /**
  * @author dyp
@@ -43,6 +47,7 @@ public class RecommendParam {
     private MachineInfo machineInfo;
     private String province;
     private String city;
+    private Set<String> abExpCodes;
 
 >>>>>>> bee54d3 (request context)
 }

+ 2 - 0
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/RecommendService.java

@@ -222,6 +222,7 @@ public class RecommendService {
         // 实验配置
         if (request.getAbExpCodeCount() > 0) {
             Set<String> abExpCodes = request.getAbExpCodeList().stream().collect(Collectors.toSet());
+            param.setAbExpCodes(abExpCodes);
             // 流量池视频分发概率
             if (abExpCodes.contains("211")) {
                 param.setFlowPoolP(0.9);
@@ -418,6 +419,7 @@ public class RecommendService {
         rankParam.setProvince(param.getProvince());
         rankParam.setCity(param.getCity());
         rankParam.setMachineInfo(param.getMachineInfo());
+        rankParam.setAbExpCodes(param.getAbExpCodes());
 
         return rankParam;
     }

+ 3 - 0
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/rank/RankParam.java

@@ -4,6 +4,8 @@ import com.tzld.piaoquan.recommend.server.model.MachineInfo;
 import com.tzld.piaoquan.recommend.server.service.recall.RecallResult;
 import lombok.Data;
 
+import java.util.Set;
+
 /**
  * @author dyp
  */
@@ -21,5 +23,6 @@ public class RankParam {
     private String province;
     private String city;
     private MachineInfo machineInfo;
+    private Set<String> abExpCodes;
 
 }

+ 7 - 1
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/rank/RankService.java

@@ -21,6 +21,7 @@ import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.RandomUtils;
 import org.apache.commons.lang3.math.NumberUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 
@@ -38,6 +39,10 @@ public class RankService {
     private RedisTemplate<String, String> redisTemplate;
     @Autowired
     private FeatureRemoteService featureRemoteService;
+    @Value("${newRankSwitch:false}")
+    private boolean newRankSwitch;
+    @Value("${newRankAbExpCode:528}")
+    private String newRankAbExpCode;
 
 
     public RankResult rank(RankParam param) {
@@ -76,7 +81,8 @@ public class RankService {
     private List<Video> mergeAndRankRovRecall(RankParam param) {
         // TODO ab test
         // TODO 抽象成Strategy
-        boolean hitTest = true;
+        boolean hitTest = newRankSwitch
+                || CommonCollectionUtils.contains(param.getAbExpCodes(), newRankAbExpCode);
         if (hitTest) {
             return mergeAndRankRovRecallNew(param);
         } else {

+ 9 - 1
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/util/CommonCollectionUtils.java

@@ -2,6 +2,7 @@ package com.tzld.piaoquan.recommend.server.util;
 
 import org.apache.commons.collections4.CollectionUtils;
 
+import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
@@ -19,7 +20,7 @@ public class CommonCollectionUtils {
         return list.stream().map(map).collect(Collectors.toList());
     }
 
-     public static <T, R> List<R> toListDistinct(List<T> list, Function<T, R> map) {
+    public static <T, R> List<R> toListDistinct(List<T> list, Function<T, R> map) {
         if (CollectionUtils.isEmpty(list)) {
             return Collections.emptyList();
         }
@@ -33,4 +34,11 @@ public class CommonCollectionUtils {
         }
         return list.stream().collect(Collectors.toMap(keyFunc::apply, valueFunc::apply));
     }
+
+    public static <T> boolean contains(Collection<T> col, T ele) {
+        if (CollectionUtils.isEmpty(col)) {
+            return false;
+        }
+        return col.contains(ele);
+    }
 }