Browse Source

auto reply filer dumplicate video

wangyunpeng 5 ngày trước cách đây
mục cha
commit
ef74986158

+ 15 - 4
api-module/src/main/java/com/tzld/piaoquan/api/service/strategy/impl/BuckStrategyV1.java

@@ -251,10 +251,21 @@ public class BuckStrategyV1 implements ReplyStrategyService {
             if ("base".equals(key)) {
                 continue;
             }
-            List<CgiReplyBucketData> collect = smallDataCgiReplyList.stream()
-                    .filter(x -> x.getStrategy().equals(key))
-                    .filter(x -> x.getGhId().equals(bucketDataParam.getGhId()))
-                    .collect(Collectors.toList());
+            List<Long> videoIds = new ArrayList<>();
+            List<CgiReplyBucketData> collect = new ArrayList<>();
+            for (CgiReplyBucketData data : smallDataCgiReplyList) {
+                if (!data.getStrategy().equals(key)) {
+                    continue;
+                }
+                if (!data.getGhId().equals(bucketDataParam.getGhId())) {
+                    continue;
+                }
+                if (videoIds.contains(data.getMiniVideoId())) {
+                    continue;
+                }
+                videoIds.add(data.getMiniVideoId());
+                collect.add(data);
+            }
             if (CollectionUtils.isEmpty(collect)) {
                 log.error("insertSmallData 算法排序数据异常,data:" + JSON.toJSONString(smallDataCgiReplyList));
                 continue;

+ 15 - 4
api-module/src/main/java/com/tzld/piaoquan/api/service/strategy/impl/ThirdPartyPushMessageStrategyV1.java

@@ -156,10 +156,21 @@ public class ThirdPartyPushMessageStrategyV1 implements ReplyStrategyService {
             if ("base".equals(key)) {
                 continue;
             }
-            List<CgiReplyBucketData> collect = smallDataCgiReplyList.stream()
-                    .filter(x -> x.getStrategy().equals(key))
-                    .filter(x -> x.getGhId().equals(bucketDataParam.getGhId()))
-                    .collect(Collectors.toList());
+            List<Long> videoIds = new ArrayList<>();
+            List<CgiReplyBucketData> collect = new ArrayList<>();
+            for (CgiReplyBucketData data : smallDataCgiReplyList) {
+                if (!data.getStrategy().equals(key)) {
+                    continue;
+                }
+                if (!data.getGhId().equals(bucketDataParam.getGhId())) {
+                    continue;
+                }
+                if (videoIds.contains(data.getMiniVideoId())) {
+                    continue;
+                }
+                videoIds.add(data.getMiniVideoId());
+                collect.add(data);
+            }
             if (CollectionUtils.isEmpty(collect)) {
                 log.error("ThirdPartyPushMessageStrategyV1 insertSmallData 算法排序数据异常 ,key:" + key +
                         ",data:" + JSON.toJSONString(smallDataCgiReplyList) + ",ghId:" + bucketDataParam.getGhId());

+ 15 - 4
api-module/src/main/java/com/tzld/piaoquan/api/service/strategy/impl/WeComPushMessageStrategyV1.java

@@ -147,10 +147,21 @@ public class WeComPushMessageStrategyV1 implements ReplyStrategyService {
             if ("base".equals(key)) {
                 continue;
             }
-            List<CgiReplyBucketData> collect = smallDataCgiReplyList.stream()
-                    .filter(x -> x.getStrategy().equals(key))
-                    .filter(x -> x.getGhId().equals(bucketDataParam.getGhId()))
-                    .collect(Collectors.toList());
+            List<Long> videoIds = new ArrayList<>();
+            List<CgiReplyBucketData> collect = new ArrayList<>();
+            for (CgiReplyBucketData data : smallDataCgiReplyList) {
+                if (!data.getStrategy().equals(key)) {
+                    continue;
+                }
+                if (!data.getGhId().equals(bucketDataParam.getGhId())) {
+                    continue;
+                }
+                if (videoIds.contains(data.getMiniVideoId())) {
+                    continue;
+                }
+                videoIds.add(data.getMiniVideoId());
+                collect.add(data);
+            }
             if (CollectionUtils.isEmpty(collect)) {
                 log.error("ThirdPartyPushMessageStrategyV1 insertSmallData 算法排序数据异常,data:" + JSON.toJSONString(smallDataCgiReplyList));
                 continue;