丁云鹏 преди 1 година
родител
ревизия
67f8a4d4eb

+ 20 - 3
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/filter/AbstractFilterService.java

@@ -51,6 +51,8 @@ public abstract class AbstractFilterService {
 
     @ApolloJsonValue("${supply.exp.video.list:[]}")
     private Set<Long> supplyExpVideos;
+    @ApolloJsonValue("${not.supply.exp.video.list:[]}")
+    private Set<Long> notSupplyExpVideos;
 
 
     private List<Long> viewFilterOld(FilterParam param) {
@@ -60,6 +62,11 @@ public abstract class AbstractFilterService {
                 param.getAppType(), param.getRegionCode(), param.getAppRegionFiltered(), param.getVideosWithRisk(),
                 param.getVideoIds(), param.getForceTruncation());
 
+<<<<<<< HEAD
+=======
+        // TODO 供给实验
+
+>>>>>>> 8475e4d (supply exp)
         videoIds = filterBySupplyExp(param.getAppType(), param.getExpIdMap(), videoIds);
 
         if (param.isNotUsePreView()) {
@@ -82,11 +89,19 @@ public abstract class AbstractFilterService {
         if (MapUtils.isEmpty(expIdMap)) {
             return videoIds;
         }
-        // A VS A+B 模式:供给实验的视频只在实验组出
+        // 供给实验
         if (supplyExpId == NumberUtils.toInt(expIdMap.get("supply"), -1)) {
-            // 命中实验,都可以出
-            return videoIds;
+            // 对照组视频只在对照组出
+            return videoIds.stream()
+                    .filter(l -> !notSupplyExpVideos.contains(l))
+                    .collect(Collectors.toList());
+        } else {
+            // 实验组视频只在实验组出
+            return videoIds.stream()
+                    .filter(l -> !supplyExpVideos.contains(l))
+                    .collect(Collectors.toList());
         }
+<<<<<<< HEAD
         // 对照组,需要过滤掉视频
         Map<String, String> obj = new HashMap<>();
         obj.put("before", JSONUtils.toJson(videoIds));
@@ -96,6 +111,8 @@ public abstract class AbstractFilterService {
         obj.put("after", JSONUtils.toJson(result));
         log.info("supply filter {}", JSONUtils.toJson(obj));
         return result;
+=======
+>>>>>>> 8475e4d (supply exp)
     }
 
     private List<Long> filterByViewedConcurrent(int appType, String mid, String uid, List<Long> videoIds) {