Quellcode durchsuchen

Merge branch 'feature/zhangbo_rank2' into feature/20240329/sunxy/addSceneType

# Conflicts:
#	recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/RecommendService.java
#	recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/ViewedService.java
#	recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/filter/AbstractFilterService.java
sunxy vor 1 Jahr
Ursprung
Commit
c91729a9e5

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

@@ -218,6 +218,8 @@ public class RecommendService {
         recallParam.setSize(request.getSize());
         recallParam.setProvince(request.getProvince());
         recallParam.setCityCode(request.getCityCode());
+        //todo 无法拿到过滤用的abcode
+        recallParam.setCityCode(request.getCityCode());
 
         RecallResult recallResult = recallService.recall(recallParam);
 
@@ -521,7 +523,9 @@ public class RecommendService {
         recallParam.setProvince(param.getProvince());
         recallParam.setExpIdMap(param.getExpIdMap());
         recallParam.setCategoryId(param.getCategoryId());
+
         recallParam.setCityCode(param.getCityCode());
+        recallParam.setAbCode(param.getAbCode());
 
         return recallParam;
     }

+ 10 - 6
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/ViewedService.java

@@ -24,8 +24,8 @@ import java.util.*;
 @Service
 @Slf4j
 public class ViewedService {
-    private final Map<Integer, List<Integer>> viewedTypesMap = new HashMap<>();
-    private final List<Integer> defaultViewedTypes = Lists.newArrayList(1, 6, 7, 5, 8);
+    private Map<Integer, List<Integer>> viewedTypesMap = new HashMap<>();
+    private List<Integer> defaultViewedTypes = Lists.newArrayList(1, 6, 7, 5);
 
     @Value("${video.filter.url:}")
     private String videoFilterUrl;
@@ -36,17 +36,21 @@ public class ViewedService {
     @PostConstruct
     public void init() {
 //        1-已观看 2-视频状态 3-是否进入老年人社区 4-话题状态 5-推荐状态 6-白名单过滤 7-涉政视频过滤
-        viewedTypesMap.put(0, Lists.newArrayList(1, 6, 5, 8));
-        viewedTypesMap.put(4, Lists.newArrayList(1, 6, 5, 8));
-        viewedTypesMap.put(13, Lists.newArrayList(1, 5, 8));
+        viewedTypesMap.put(0, Lists.newArrayList(1, 6, 5));
+        viewedTypesMap.put(4, Lists.newArrayList(1, 6, 5));
+        viewedTypesMap.put(13, Lists.newArrayList(1, 5));
     }
 
 
     // TODO 如果过滤失败,那么认为所有视频都被过滤掉
-    public List<Long> filterViewedVideo(int appType, String mid, String uid, List<Long> videoIds, String cityCode) {
+    public List<Long> filterViewedVideo(int appType, String mid, String uid, List<Long> videoIds, String cityCode,
+                                        String abCode) {
 
         Stopwatch stopwatch = Stopwatch.createStarted();
         List<Integer> viewedTypes = viewedTypesMap.getOrDefault(appType, defaultViewedTypes);
+        if ("60106".equals(abCode)){
+            viewedTypes.add(8);
+        }
         CloseableHttpResponse chr = null;
         try {
             HttpPost post = new HttpPost(videoFilterUrl);

+ 6 - 7
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/filter/AbstractFilterService.java

@@ -68,10 +68,9 @@ public abstract class AbstractFilterService {
             videoIds = filterByPreViewed(param.getAppType(), param.getMid(), videoIds);
         }
         if (param.isConcurrent()) {
-            videoIds = filterByViewedConcurrent(param.getAppType(), param.getMid(), param.getUid(), videoIds,
-                    param.getCityCode());
+            videoIds = filterByViewedConcurrent(param.getAppType(), param.getMid(), param.getUid(), videoIds, param.getCityCode(), param.getAbCode());
         } else {
-            videoIds = filterByViewed(param.getAppType(), param.getMid(), param.getUid(), videoIds, param.getCityCode());
+            videoIds = filterByViewed(param.getAppType(), param.getMid(), param.getUid(), videoIds, param.getCityCode(), param.getAbCode());
         }
         return videoIds;
     }
@@ -97,7 +96,7 @@ public abstract class AbstractFilterService {
         }
     }
 
-    private List<Long> filterByViewedConcurrent(int appType, String mid, String uid, List<Long> videoIds, String cityCode) {
+    private List<Long> filterByViewedConcurrent(int appType, String mid, String uid, List<Long> videoIds, String cityCode, String abCode) {
         // TODO uid为空时,还需要过滤么?
         if (StringUtils.isBlank(mid)
                 || CollectionUtils.isEmpty(videoIds)) {
@@ -119,7 +118,7 @@ public abstract class AbstractFilterService {
         List<Future<List<Long>>> futures = new ArrayList<>();
         for (final List<Long> ids : chunks) {
             Future<List<Long>> future = pool.submit(() ->
-                    viewedService.filterViewedVideo(appType, mid, uid, ids, cityCode));
+                    viewedService.filterViewedVideo(appType, mid, uid, ids, cityCode, abCode));
             futures.add(future);
         }
         try {
@@ -143,13 +142,13 @@ public abstract class AbstractFilterService {
 
     }
 
-    private List<Long> filterByViewed(int appType, String mid, String uid, List<Long> videoIds, String cityCode) {
+    private List<Long> filterByViewed(int appType, String mid, String uid, List<Long> videoIds, String cityCode, String abCode) {
         // TODO uid为空时,还需要过滤么?
         if (StringUtils.isBlank(mid)
                 || CollectionUtils.isEmpty(videoIds)) {
             return videoIds;
         }
-        return viewedService.filterViewedVideo(appType, mid, uid, videoIds, cityCode);
+        return viewedService.filterViewedVideo(appType, mid, uid, videoIds, cityCode, abCode);
 
     }
 

+ 3 - 0
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/filter/FilterParam.java

@@ -31,4 +31,7 @@ public class FilterParam {
 
     // 层 - 实验
     private Map<String, String> expIdMap;
+
+    private String cityCode;
+    private String abCode;
 }

+ 3 - 3
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/rank/strategy/RankStrategy4RegionMergeModelV552.java

@@ -81,8 +81,8 @@ public class RankStrategy4RegionMergeModelV552 extends RankService {
         this.duplicate(setVideo, v0);
 
         //-------------------root rov召回 融合+去重-------------------
-        List<Video> v8 = extractAndSort(param, RegionRealtimeRecallStrategyV6RootRov.PUSH_FORM);
-        this.duplicate(setVideo, v8);
+//        List<Video> v8 = extractAndSort(param, RegionRealtimeRecallStrategyV6RootRov.PUSH_FORM);
+//        this.duplicate(setVideo, v8);
 
         //-------------------地域相关召回 融合+去重-------------------
         List<Video> v1 = extractAndSort(param, RegionRealtimeRecallStrategyV1.PUSH_FORM);
@@ -104,7 +104,7 @@ public class RankStrategy4RegionMergeModelV552 extends RankService {
 
         List<Video> rovRecallRank = new ArrayList<>();
         rovRecallRank.addAll(v0);
-        rovRecallRank.addAll(v8.subList(0, Math.min(mergeWeight.getOrDefault("v8", 10.0).intValue(), v8.size())));
+//        rovRecallRank.addAll(v8.subList(0, Math.min(mergeWeight.getOrDefault("v8", 10.0).intValue(), v8.size())));
         rovRecallRank.addAll(v1.subList(0, Math.min(mergeWeight.getOrDefault("v1", 20.0).intValue(), v1.size())));
         rovRecallRank.addAll(v2.subList(0, Math.min(mergeWeight.getOrDefault("v2", 15.0).intValue(), v2.size())));
         rovRecallRank.addAll(v3.subList(0, Math.min(mergeWeight.getOrDefault("v3", 10.0).intValue(), v3.size())));

+ 2 - 1
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/FilterParamFactory.java

@@ -25,7 +25,7 @@ public class FilterParamFactory {
         filterParam.setAppRegionFiltered(param.getAppRegionFiltered());
         filterParam.setRegionCode(param.getRegionCode());
         filterParam.setAbExpCodes(param.getAbExpCodes());
-
+        filterParam.setCityCode(param.getCityCode());
         return filterParam;
     }
 
@@ -43,6 +43,7 @@ public class FilterParamFactory {
         filterParam.setAppRegionFiltered(param.getAppRegionFiltered());
         filterParam.setRegionCode(param.getRegionCode());
         filterParam.setAbExpCodes(param.getAbExpCodes());
+        filterParam.setCityCode(param.getCityCode());
         return filterParam;
     }
 }

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

@@ -39,4 +39,6 @@ public class RecallParam {
     private Map<String, String> expIdMap;
     private Integer categoryId;
 
+    private String cityCode;
+
 }

+ 7 - 1
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/RecallService.java

@@ -93,7 +93,6 @@ public class RecallService implements ApplicationContextAware {
         } else {
             switch (abCode) {
                 case "60105": // 551
-                case "60106": // 552
                     strategies.add(strategyMap.get(RegionRealtimeRecallStrategyV1.class.getSimpleName()));
                     strategies.add(strategyMap.get(RegionRealtimeRecallStrategyV2.class.getSimpleName()));
                     strategies.add(strategyMap.get(RegionRealtimeRecallStrategyV3.class.getSimpleName()));
@@ -101,6 +100,13 @@ public class RecallService implements ApplicationContextAware {
                     strategies.add(strategyMap.get(RegionRealtimeRecallStrategyV6RootRov.class.getSimpleName()));
                     strategies.addAll(getRegionRecallStrategy(param));
                     break;
+                case "60106": // 552
+                    strategies.add(strategyMap.get(RegionRealtimeRecallStrategyV1.class.getSimpleName()));
+                    strategies.add(strategyMap.get(RegionRealtimeRecallStrategyV2.class.getSimpleName()));
+                    strategies.add(strategyMap.get(RegionRealtimeRecallStrategyV3.class.getSimpleName()));
+                    strategies.add(strategyMap.get(RegionRealtimeRecallStrategyV4.class.getSimpleName()));
+                    strategies.addAll(getRegionRecallStrategy(param));
+                    break;
                 case "60121": // 536
                     strategies.add(strategyMap.get(RegionRealtimeRecallStrategyV1.class.getSimpleName()));
                     strategies.add(strategyMap.get(RegionRealtimeRecallStrategyV2.class.getSimpleName()));