Browse Source

ADD:PushFromIndex

sunxy 11 tháng trước cách đây
mục cha
commit
49a5d28fea

+ 11 - 5
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/RecommendService.java

@@ -5,12 +5,8 @@ import com.google.common.base.Stopwatch;
 import com.google.common.base.Strings;
 import com.google.common.reflect.TypeToken;
 import com.tzld.piaoquan.recommend.server.common.base.Constant;
-import com.tzld.piaoquan.recommend.server.common.enums.AppTypeEnum;
 import com.tzld.piaoquan.recommend.server.gen.common.Result;
-import com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto;
-import com.tzld.piaoquan.recommend.server.gen.recommend.RecommendRequest;
-import com.tzld.piaoquan.recommend.server.gen.recommend.RecommendResponse;
-import com.tzld.piaoquan.recommend.server.gen.recommend.VideoProto;
+import com.tzld.piaoquan.recommend.server.gen.recommend.*;
 import com.tzld.piaoquan.recommend.server.model.MachineInfo;
 import com.tzld.piaoquan.recommend.server.model.RecommendParam;
 import com.tzld.piaoquan.recommend.server.model.Video;
@@ -136,6 +132,15 @@ public class RecommendService {
         // 更新position
         List<VideoProto> vps = new ArrayList<>();
         for (int i = 0; i < videos.size(); i++) {
+            Map<String, List<String>> pushFromIndex = videos.get(i).getPushFromIndex();
+            List<PushFromIndex> pushFromIndexList = new ArrayList<>();
+            if (MapUtils.isNotEmpty(pushFromIndex)) {
+                pushFromIndex.forEach((k, v) -> {
+                    PushFromIndex.Builder builder = PushFromIndex.newBuilder().setPushFrom(k);
+                    v.forEach(builder::addIndex);
+                    pushFromIndexList.add(builder.build());
+                });
+            }
             vps.add(VideoProto.newBuilder()
                     .setPosition(i + 1)
                     .setPushFrom(Strings.nullToEmpty(videos.get(i).getPushFrom()))
@@ -146,6 +151,7 @@ public class RecommendService {
                     .setFlowPool(Strings.nullToEmpty(videos.get(i).getFlowPool()))
                     .setIsInFlowPool(videos.get(i).isInFlowPool() ? 1 : 0)
                     .setRand(videos.get(i).getRand())
+                    .addAllPushFromIndex(pushFromIndexList)
                     .build());
         }
 

+ 10 - 0
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/VideoRecommendService.java

@@ -182,6 +182,15 @@ public class VideoRecommendService {
         // 更新position
         List<VideoProto> vps = new ArrayList<>();
         for (int i = 0; i < videos.size(); i++) {
+            Map<String, List<String>> pushFromIndex = videos.get(i).getPushFromIndex();
+            List<PushFromIndex> pushFromIndexList = new ArrayList<>();
+            if (MapUtils.isNotEmpty(pushFromIndex)) {
+                pushFromIndex.forEach((k, v) -> {
+                    PushFromIndex.Builder builder = PushFromIndex.newBuilder().setPushFrom(k);
+                    v.forEach(builder::addIndex);
+                    pushFromIndexList.add(builder.build());
+                });
+            }
             vps.add(VideoProto.newBuilder()
                     .setPosition(i + 1)
                     .setPushFrom(Strings.nullToEmpty(videos.get(i).getPushFrom()))
@@ -192,6 +201,7 @@ public class VideoRecommendService {
                     .setFlowPool(Strings.nullToEmpty(videos.get(i).getFlowPool()))
                     .setIsInFlowPool(videos.get(i).isInFlowPool() ? 1 : 0)
                     .setRand(videos.get(i).getRand())
+                    .addAllPushFromIndex(pushFromIndexList)
                     .build());
         }
         return videos;

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

@@ -133,7 +133,7 @@ public class RankService {
             }
             for (Video video : data.getVideos()) {
                 Set<String> pushFromSet = videoIdPushFromMap.get(video.getVideoId());
-                if (pushFromSet != null && pushFromSet.size() > 1) {
+                if (pushFromSet != null && pushFromSet.size() > 0) {
                     Map<String, List<String>> map = new HashMap<>();
                     pushFromSet.forEach(p -> map.computeIfAbsent(p, k -> new ArrayList<>()));
                     video.setPushFromIndex(map);