zhangbo 1 éve
szülő
commit
2c364b47bc

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

@@ -26,7 +26,7 @@ import java.util.concurrent.TimeUnit;
 @Slf4j
 public class ViewedService {
     private Map<Integer, List<Integer>> viewedTypesMap = new HashMap<>();
-    private List<Integer> defaultViewedTypes = Lists.newArrayList(1, 6, 7, 5);
+    private List<Integer> defaultViewedTypes = Lists.newArrayList(1, 6, 7, 5, 8);
 
     @Value("${video.filter.url:}")
     private String videoFilterUrl;
@@ -37,14 +37,14 @@ public class ViewedService {
     @PostConstruct
     public void init() {
 //        1-已观看 2-视频状态 3-是否进入老年人社区 4-话题状态 5-推荐状态 6-白名单过滤 7-涉政视频过滤
-        viewedTypesMap.put(0, Lists.newArrayList(1, 6, 5));
-        viewedTypesMap.put(4, Lists.newArrayList(1, 6, 5));
-        viewedTypesMap.put(13, Lists.newArrayList(1, 5));
+        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));
     }
 
 
     // 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 regionCode) {
 
         Stopwatch stopwatch = Stopwatch.createStarted();
         List<Integer> viewedTypes = viewedTypesMap.getOrDefault(appType, defaultViewedTypes);
@@ -59,6 +59,7 @@ public class ViewedService {
             param.put("uid", uid);
             param.put("types", viewedTypes);
             param.put("videoIds", videoIds);
+            param.put("cityCode", regionCode);
             List<Integer> recommendStatus = new ArrayList<>();
             recommendStatus.add(-6);
             param.put("recommendStatus", recommendStatus);

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

@@ -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.getAppType(), param.getMid(), param.getUid(), videoIds, param.getRegionCode());
         } else {
-            videoIds = filterByViewed(param.getAppType(), param.getMid(), param.getUid(), videoIds);
+            videoIds = filterByViewed(param.getAppType(), param.getMid(), param.getUid(), videoIds, param.getRegionCode());
         }
         return videoIds;
     }
@@ -96,7 +96,7 @@ public abstract class AbstractFilterService {
         }
     }
 
-    private List<Long> filterByViewedConcurrent(int appType, String mid, String uid, List<Long> videoIds) {
+    private List<Long> filterByViewedConcurrent(int appType, String mid, String uid, List<Long> videoIds, String regionCode) {
         // TODO uid为空时,还需要过滤么?
         if (StringUtils.isBlank(mid)
                 || CollectionUtils.isEmpty(videoIds)) {
@@ -118,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));
+                    viewedService.filterViewedVideo(appType, mid, uid, ids, regionCode));
             futures.add(future);
         }
         try {
@@ -142,13 +142,13 @@ public abstract class AbstractFilterService {
 
     }
 
-    private List<Long> filterByViewed(int appType, String mid, String uid, List<Long> videoIds) {
+    private List<Long> filterByViewed(int appType, String mid, String uid, List<Long> videoIds, String regionCode) {
         // TODO uid为空时,还需要过滤么?
         if (StringUtils.isBlank(mid)
                 || CollectionUtils.isEmpty(videoIds)) {
             return videoIds;
         }
-        return viewedService.filterViewedVideo(appType, mid, uid, videoIds);
+        return viewedService.filterViewedVideo(appType, mid, uid, videoIds, regionCode);
 
     }