Jelajahi Sumber

Merge branch 'feature/20240329/sunxy/addSceneType' of algorithm/recommend-server into master

sunxiaoyi 1 tahun lalu
induk
melakukan
da9545e682
15 mengubah file dengan 153 tambahan dan 46 penghapusan
  1. 1 1
      recommend-server-client/pom.xml
  2. 20 19
      recommend-server-client/src/main/java/com/tzld/piaoquan/recommend/server/gen/recommend/Recommend.java
  3. 65 0
      recommend-server-client/src/main/java/com/tzld/piaoquan/recommend/server/gen/recommend/RecommendRequest.java
  4. 6 0
      recommend-server-client/src/main/java/com/tzld/piaoquan/recommend/server/gen/recommend/RecommendRequestOrBuilder.java
  5. 1 0
      recommend-server-client/src/main/proto/com/tzld/piaoquan/recommend/server/recommend.proto
  6. 1 1
      recommend-server-service/pom.xml
  7. 2 0
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/model/RecommendParam.java
  8. 8 0
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/RecommendService.java
  9. 11 6
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/ViewedService.java
  10. 12 13
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/filter/AbstractFilterService.java
  11. 6 0
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/filter/FilterParam.java
  12. 3 3
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/rank/strategy/RankStrategy4RegionMergeModelV552.java
  13. 7 2
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/FilterParamFactory.java
  14. 3 0
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/RecallParam.java
  15. 7 1
      recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/RecallService.java

+ 1 - 1
recommend-server-client/pom.xml

@@ -10,7 +10,7 @@
     <modelVersion>4.0.0</modelVersion>
 
     <artifactId>recommend-server-client</artifactId>
-    <version>1.1.0</version>
+    <version>1.1.1</version>
 
     <dependencies>
         <dependency>

+ 20 - 19
recommend-server-client/src/main/java/com/tzld/piaoquan/recommend/server/gen/recommend/Recommend.java

@@ -51,7 +51,7 @@ public final class Recommend {
       "\n2com/tzld/piaoquan/recommend/server/rec" +
       "ommend.proto\032\031google/protobuf/any.proto\032" +
       "/com/tzld/piaoquan/recommend/server/comm" +
-      "on.proto\"\203\004\n\020RecommendRequest\022\022\n\nrequest" +
+      "on.proto\"\233\004\n\020RecommendRequest\022\022\n\nrequest" +
       "_id\030\001 \001(\t\022\013\n\003mid\030\002 \001(\t\022\013\n\003uid\030\003 \001(\t\022\014\n\004s" +
       "ize\030\004 \001(\005\022\020\n\010app_type\030\005 \001(\005\022\021\n\tcity_code" +
       "\030\006 \001(\t\022\025\n\rprovince_code\030\007 \001(\t\022\023\n\013ab_exp_" +
@@ -62,23 +62,24 @@ public final class Recommend {
       "ce\030\016 \001(\t\022\'\n\014machine_info\030\017 \001(\0132\021.Machine" +
       "InfoProto\022\025\n\rnew_exp_group\030\020 \001(\t\022\022\n\nsess" +
       "ion_id\030\021 \001(\t\022\026\n\016sub_session_id\030\022 \001(\t\022\023\n\013" +
-      "page_source\030\023 \001(\t\022\023\n\013category_id\030\024 \001(\t\032." +
-      "\n\014EventIdEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001" +
-      "(\t:\0028\001\"\177\n\020MachineInfoProto\022\r\n\005brand\030\001 \001(" +
-      "\t\022\r\n\005model\030\002 \001(\t\022\020\n\010platform\030\003 \001(\t\022\023\n\013sd" +
-      "k_version\030\004 \001(\t\022\016\n\006system\030\005 \001(\t\022\026\n\016wecha" +
-      "t_version\030\006 \001(\t\"H\n\021RecommendResponse\022\027\n\006" +
-      "result\030\001 \001(\0132\007.Result\022\032\n\005video\030\002 \003(\0132\013.V" +
-      "ideoProto\"\265\001\n\nVideoProto\022\020\n\010video_id\030\001 \001" +
-      "(\003\022\021\n\trov_score\030\002 \001(\001\022\021\n\tpush_from\030\003 \001(\t" +
-      "\022\017\n\007ab_code\030\004 \001(\t\022\022\n\nsort_score\030\005 \001(\001\022\020\n" +
-      "\010position\030\006 \001(\005\022\021\n\tflow_pool\030\007 \001(\t\022\027\n\017is" +
-      "_in_flow_pool\030\010 \001(\005\022\014\n\004rand\030\t \001(\0012\212\001\n\020Re" +
-      "commendService\022:\n\021HomepageRecommend\022\021.Re" +
-      "commendRequest\032\022.RecommendResponse\022:\n\021Re" +
-      "levantRecommend\022\021.RecommendRequest\032\022.Rec" +
-      "ommendResponseB7\n0com.tzld.piaoquan.reco" +
-      "mmend.server.gen.recommendP\001\210\001\001b\006proto3"
+      "page_source\030\023 \001(\t\022\023\n\013category_id\030\024 \001(\t\022\026" +
+      "\n\016hot_scene_type\030\025 \001(\003\032.\n\014EventIdEntry\022\013" +
+      "\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"\177\n\020Machin" +
+      "eInfoProto\022\r\n\005brand\030\001 \001(\t\022\r\n\005model\030\002 \001(\t" +
+      "\022\020\n\010platform\030\003 \001(\t\022\023\n\013sdk_version\030\004 \001(\t\022" +
+      "\016\n\006system\030\005 \001(\t\022\026\n\016wechat_version\030\006 \001(\t\"" +
+      "H\n\021RecommendResponse\022\027\n\006result\030\001 \001(\0132\007.R" +
+      "esult\022\032\n\005video\030\002 \003(\0132\013.VideoProto\"\265\001\n\nVi" +
+      "deoProto\022\020\n\010video_id\030\001 \001(\003\022\021\n\trov_score\030" +
+      "\002 \001(\001\022\021\n\tpush_from\030\003 \001(\t\022\017\n\007ab_code\030\004 \001(" +
+      "\t\022\022\n\nsort_score\030\005 \001(\001\022\020\n\010position\030\006 \001(\005\022" +
+      "\021\n\tflow_pool\030\007 \001(\t\022\027\n\017is_in_flow_pool\030\010 " +
+      "\001(\005\022\014\n\004rand\030\t \001(\0012\212\001\n\020RecommendService\022:" +
+      "\n\021HomepageRecommend\022\021.RecommendRequest\032\022" +
+      ".RecommendResponse\022:\n\021RelevantRecommend\022" +
+      "\021.RecommendRequest\032\022.RecommendResponseB7" +
+      "\n0com.tzld.piaoquan.recommend.server.gen" +
+      ".recommendP\001\210\001\001b\006proto3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
       .internalBuildGeneratedFileFrom(descriptorData,
@@ -91,7 +92,7 @@ public final class Recommend {
     internal_static_RecommendRequest_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_RecommendRequest_descriptor,
-        new java.lang.String[] { "RequestId", "Mid", "Uid", "Size", "AppType", "CityCode", "ProvinceCode", "AbExpCode", "EventId", "VersionAuditStatus", "RecommendTraceId", "VideoId", "City", "Province", "MachineInfo", "NewExpGroup", "SessionId", "SubSessionId", "PageSource", "CategoryId", });
+        new java.lang.String[] { "RequestId", "Mid", "Uid", "Size", "AppType", "CityCode", "ProvinceCode", "AbExpCode", "EventId", "VersionAuditStatus", "RecommendTraceId", "VideoId", "City", "Province", "MachineInfo", "NewExpGroup", "SessionId", "SubSessionId", "PageSource", "CategoryId", "HotSceneType", });
     internal_static_RecommendRequest_EventIdEntry_descriptor =
       internal_static_RecommendRequest_descriptor.getNestedTypes().get(0);
     internal_static_RecommendRequest_EventIdEntry_fieldAccessorTable = new

+ 65 - 0
recommend-server-client/src/main/java/com/tzld/piaoquan/recommend/server/gen/recommend/RecommendRequest.java

@@ -196,6 +196,11 @@ private static final long serialVersionUID = 0L;
             categoryId_ = s;
             break;
           }
+          case 168: {
+
+            hotSceneType_ = input.readInt64();
+            break;
+          }
           default: {
             if (!parseUnknownField(
                 input, unknownFields, extensionRegistry, tag)) {
@@ -935,6 +940,17 @@ private static final long serialVersionUID = 0L;
     }
   }
 
+  public static final int HOT_SCENE_TYPE_FIELD_NUMBER = 21;
+  private long hotSceneType_;
+  /**
+   * <code>int64 hot_scene_type = 21;</code>
+   * @return The hotSceneType.
+   */
+  @java.lang.Override
+  public long getHotSceneType() {
+    return hotSceneType_;
+  }
+
   private byte memoizedIsInitialized = -1;
   @java.lang.Override
   public final boolean isInitialized() {
@@ -1012,6 +1028,9 @@ private static final long serialVersionUID = 0L;
     if (!getCategoryIdBytes().isEmpty()) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 20, categoryId_);
     }
+    if (hotSceneType_ != 0L) {
+      output.writeInt64(21, hotSceneType_);
+    }
     unknownFields.writeTo(output);
   }
 
@@ -1098,6 +1117,10 @@ private static final long serialVersionUID = 0L;
     if (!getCategoryIdBytes().isEmpty()) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(20, categoryId_);
     }
+    if (hotSceneType_ != 0L) {
+      size += com.google.protobuf.CodedOutputStream
+        .computeInt64Size(21, hotSceneType_);
+    }
     size += unknownFields.getSerializedSize();
     memoizedSize = size;
     return size;
@@ -1156,6 +1179,8 @@ private static final long serialVersionUID = 0L;
         .equals(other.getPageSource())) return false;
     if (!getCategoryId()
         .equals(other.getCategoryId())) return false;
+    if (getHotSceneType()
+        != other.getHotSceneType()) return false;
     if (!unknownFields.equals(other.unknownFields)) return false;
     return true;
   }
@@ -1214,6 +1239,9 @@ private static final long serialVersionUID = 0L;
     hash = (53 * hash) + getPageSource().hashCode();
     hash = (37 * hash) + CATEGORY_ID_FIELD_NUMBER;
     hash = (53 * hash) + getCategoryId().hashCode();
+    hash = (37 * hash) + HOT_SCENE_TYPE_FIELD_NUMBER;
+    hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+        getHotSceneType());
     hash = (29 * hash) + unknownFields.hashCode();
     memoizedHashCode = hash;
     return hash;
@@ -1412,6 +1440,8 @@ private static final long serialVersionUID = 0L;
 
       categoryId_ = "";
 
+      hotSceneType_ = 0L;
+
       return this;
     }
 
@@ -1468,6 +1498,7 @@ private static final long serialVersionUID = 0L;
       result.subSessionId_ = subSessionId_;
       result.pageSource_ = pageSource_;
       result.categoryId_ = categoryId_;
+      result.hotSceneType_ = hotSceneType_;
       onBuilt();
       return result;
     }
@@ -1595,6 +1626,9 @@ private static final long serialVersionUID = 0L;
         categoryId_ = other.categoryId_;
         onChanged();
       }
+      if (other.getHotSceneType() != 0L) {
+        setHotSceneType(other.getHotSceneType());
+      }
       this.mergeUnknownFields(other.unknownFields);
       onChanged();
       return this;
@@ -3129,6 +3163,37 @@ private static final long serialVersionUID = 0L;
       onChanged();
       return this;
     }
+
+    private long hotSceneType_ ;
+    /**
+     * <code>int64 hot_scene_type = 21;</code>
+     * @return The hotSceneType.
+     */
+    @java.lang.Override
+    public long getHotSceneType() {
+      return hotSceneType_;
+    }
+    /**
+     * <code>int64 hot_scene_type = 21;</code>
+     * @param value The hotSceneType to set.
+     * @return This builder for chaining.
+     */
+    public Builder setHotSceneType(long value) {
+      
+      hotSceneType_ = value;
+      onChanged();
+      return this;
+    }
+    /**
+     * <code>int64 hot_scene_type = 21;</code>
+     * @return This builder for chaining.
+     */
+    public Builder clearHotSceneType() {
+      
+      hotSceneType_ = 0L;
+      onChanged();
+      return this;
+    }
     @java.lang.Override
     public final Builder setUnknownFields(
         final com.google.protobuf.UnknownFieldSet unknownFields) {

+ 6 - 0
recommend-server-client/src/main/java/com/tzld/piaoquan/recommend/server/gen/recommend/RecommendRequestOrBuilder.java

@@ -272,4 +272,10 @@ public interface RecommendRequestOrBuilder extends
    */
   com.google.protobuf.ByteString
       getCategoryIdBytes();
+
+  /**
+   * <code>int64 hot_scene_type = 21;</code>
+   * @return The hotSceneType.
+   */
+  long getHotSceneType();
 }

+ 1 - 0
recommend-server-client/src/main/proto/com/tzld/piaoquan/recommend/server/recommend.proto

@@ -29,6 +29,7 @@ message RecommendRequest {
   string sub_session_id = 18;
   string page_source = 19;
   string category_id = 20;
+  int64 hot_scene_type = 21;
 }
 
 message MachineInfoProto {

+ 1 - 1
recommend-server-service/pom.xml

@@ -153,7 +153,7 @@
         <dependency>
             <groupId>com.tzld.piaoquan</groupId>
             <artifactId>recommend-server-client</artifactId>
-            <version>1.1.0</version>
+            <version>1.1.1</version>
         </dependency>
         <dependency>
             <groupId>com.tzld.piaoquan</groupId>

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

@@ -58,5 +58,7 @@ public class RecommendParam {
 
     private Integer categoryId;
 
+    private Long hotSceneType;
+
 }
 

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

@@ -217,6 +217,7 @@ public class RecommendService {
         recallParam.setSpecialRecommend(true);
         recallParam.setSize(request.getSize());
         recallParam.setProvince(request.getProvince());
+        recallParam.setCityCode(request.getCityCode());
 
         RecallResult recallResult = recallService.recall(recallParam);
 
@@ -437,6 +438,8 @@ public class RecommendService {
             param.setCategoryId(Integer.parseInt(request.getCategoryId()));
         }
 
+        param.setHotSceneType(request.getHotSceneType());
+
         return param;
     }
 
@@ -521,6 +524,11 @@ public class RecommendService {
         recallParam.setExpIdMap(param.getExpIdMap());
         recallParam.setCategoryId(param.getCategoryId());
 
+        recallParam.setCityCode(param.getCityCode());
+        recallParam.setAbCode(param.getAbCode());
+
+        recallParam.setHotSceneType(param.getHotSceneType());
+
         return recallParam;
     }
 

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

@@ -17,7 +17,6 @@ import org.springframework.stereotype.Service;
 
 import javax.annotation.PostConstruct;
 import java.util.*;
-import java.util.concurrent.TimeUnit;
 
 /**
  * @author dyp
@@ -25,13 +24,13 @@ import java.util.concurrent.TimeUnit;
 @Service
 @Slf4j
 public class ViewedService {
-    private Map<Integer, List<Integer>> viewedTypesMap = new HashMap<>();
-    private List<Integer> defaultViewedTypes = Lists.newArrayList(1, 6, 7, 5);
+    private final Map<Integer, List<Integer>> viewedTypesMap = new HashMap<>();
+    private final List<Integer> defaultViewedTypes = Lists.newArrayList(1, 6, 7, 5);
 
     @Value("${video.filter.url:}")
     private String videoFilterUrl;
 
-    private CloseableHttpClient client = HttpClientFactory.create(1000, 1000, 200, 200, 0, 1000);
+    private final CloseableHttpClient client = HttpClientFactory.create(1000, 1000, 200, 200, 0, 1000);
 
 
     @PostConstruct
@@ -44,10 +43,14 @@ public class ViewedService {
 
 
     // TODO 如果过滤失败,那么认为所有视频都被过滤掉
-    public List<Long> filterViewedVideo(int appType, String mid, String uid, List<Long> videoIds) {
+    public List<Long> filterViewedVideo(int appType, String mid, String uid, List<Long> videoIds, String cityCode,
+                                        String abCode, Long hotSceneType) {
 
         Stopwatch stopwatch = Stopwatch.createStarted();
-        List<Integer> viewedTypes = viewedTypesMap.getOrDefault(appType, defaultViewedTypes);
+        List<Integer> viewedTypes = new ArrayList<>(viewedTypesMap.getOrDefault(appType, defaultViewedTypes));
+        if ("60106".equals(abCode)) {
+            viewedTypes.add(8);
+        }
         CloseableHttpResponse chr = null;
         try {
             HttpPost post = new HttpPost(videoFilterUrl);
@@ -59,6 +62,8 @@ public class ViewedService {
             param.put("uid", uid);
             param.put("types", viewedTypes);
             param.put("videoIds", videoIds);
+            param.put("cityCode", cityCode);
+            param.put("hotSenceType", hotSceneType);
             List<Integer> recommendStatus = new ArrayList<>();
             recommendStatus.add(-6);
             param.put("recommendStatus", recommendStatus);

+ 12 - 13
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/filter/AbstractFilterService.java

@@ -35,7 +35,7 @@ public abstract class AbstractFilterService {
     @Autowired
     private ViewedService viewedService;
 
-    private ExecutorService pool = ThreadPoolFactory.filterPool();
+    private final ExecutorService pool = ThreadPoolFactory.filterPool();
 
     @Value("${newFilterGlobalSwitch:false}")
     private boolean newFilterGlobalSwitch;
@@ -68,9 +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);
+            videoIds = filterByViewedConcurrent(param, videoIds);
         } else {
-            videoIds = filterByViewed(param.getAppType(), param.getMid(), param.getUid(), videoIds);
+            videoIds = filterByViewed(param, videoIds);
         }
         return videoIds;
     }
@@ -96,9 +96,9 @@ public abstract class AbstractFilterService {
         }
     }
 
-    private List<Long> filterByViewedConcurrent(int appType, String mid, String uid, List<Long> videoIds) {
+    private List<Long> filterByViewedConcurrent(FilterParam param, List<Long> videoIds) {
         // TODO uid为空时,还需要过滤么?
-        if (StringUtils.isBlank(mid)
+        if (StringUtils.isBlank(param.getMid())
                 || CollectionUtils.isEmpty(videoIds)) {
             return videoIds;
         }
@@ -118,7 +118,8 @@ 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));
+                    viewedService.filterViewedVideo(param.getAppType(), param.getMid(), param.getUid(), ids, param.getCityCode(),
+                            param.getAbCode(), param.getHotSceneType()));
             futures.add(future);
         }
         try {
@@ -142,13 +143,14 @@ public abstract class AbstractFilterService {
 
     }
 
-    private List<Long> filterByViewed(int appType, String mid, String uid, List<Long> videoIds) {
+    private List<Long> filterByViewed(FilterParam param, List<Long> videoIds) {
         // TODO uid为空时,还需要过滤么?
-        if (StringUtils.isBlank(mid)
+        if (StringUtils.isBlank(param.getMid())
                 || CollectionUtils.isEmpty(videoIds)) {
             return videoIds;
         }
-        return viewedService.filterViewedVideo(appType, mid, uid, videoIds);
+        return viewedService.filterViewedVideo(param.getAppType(), param.getMid(), param.getUid(), videoIds, param.getCityCode(),
+                param.getAbCode(), param.getHotSceneType());
 
     }
 
@@ -177,10 +179,7 @@ public abstract class AbstractFilterService {
         // 1 判断是否过滤,不展示的app+区域列表。
         boolean filterFlag;
         if (rules.containsKey(appType)) {
-            filterFlag = false;
-            if (rules.get(appType).contains(regionCode)) {
-                filterFlag = true;
-            }
+            filterFlag = rules.get(appType).contains(regionCode);
         } else {
             filterFlag = true;
         }

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

@@ -22,6 +22,7 @@ public class FilterParam {
     private Map<Integer, List<String>> appRegionFiltered;
     private List<Long> videosWithRisk;
     private String regionCode;
+    private String cityCode;
     private int forceTruncation;
     private Set<String> abExpCodes;
 
@@ -30,4 +31,9 @@ public class FilterParam {
 
     // 层 - 实验
     private Map<String, String> expIdMap;
+
+    private String abCode;
+
+    private Long hotSceneType;
+
 }

+ 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())));

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

@@ -25,7 +25,9 @@ public class FilterParamFactory {
         filterParam.setAppRegionFiltered(param.getAppRegionFiltered());
         filterParam.setRegionCode(param.getRegionCode());
         filterParam.setAbExpCodes(param.getAbExpCodes());
-
+        filterParam.setCityCode(param.getCityCode());
+        filterParam.setAbCode(param.getAbCode());
+        filterParam.setHotSceneType(param.getHotSceneType());
         return filterParam;
     }
 
@@ -36,13 +38,16 @@ public class FilterParamFactory {
         filterParam.setMid(param.getMid());
         filterParam.setUid(param.getUid());
         filterParam.setExpIdMap(param.getExpIdMap());
-        
+
         // 风险过滤
         filterParam.setRiskFilterFlag(param.getRiskFilterFlag());
         filterParam.setVideosWithRisk(param.getVideosWithRisk());
         filterParam.setAppRegionFiltered(param.getAppRegionFiltered());
         filterParam.setRegionCode(param.getRegionCode());
         filterParam.setAbExpCodes(param.getAbExpCodes());
+        filterParam.setCityCode(param.getCityCode());
+        filterParam.setAbCode(param.getAbCode());
+        filterParam.setHotSceneType(param.getHotSceneType());
         return filterParam;
     }
 }

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

@@ -12,6 +12,7 @@ import java.util.Set;
 @Data
 public class RecallParam {
     private String regionCode;
+    private String cityCode;
     private String mid;
     private int appType;
     private String dataKey;
@@ -38,4 +39,6 @@ public class RecallParam {
     private Map<String, String> expIdMap;
     private Integer categoryId;
 
+    private Long hotSceneType;
+
 }

+ 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()));