Selaa lähdekoodia

今日已发布内容过滤

wangyunpeng 2 viikkoa sitten
vanhempi
commit
8d0dac8c0a

+ 2 - 0
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/mapper/aigc/AigcBaseMapper.java

@@ -87,4 +87,6 @@ public interface AigcBaseMapper {
     List<IdPlatformDTO> getIdPlatformByContentId(List<String> idList);
 
     List<DailyAuditProduceExport> getAccountDailyProduceAuditCount(Long startTimeStamp, Long endTimeStamp);
+
+    List<PublishContent> getTodayPublishContentList(String accountId, Long todayStart);
 }

+ 2 - 0
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/service/recommend/filter/FilterService.java

@@ -131,6 +131,7 @@ public class FilterService {
         strategies.add(ServiceBeanFactory.getBean(DeDuplicationStrategy.class));
         strategies.add(ServiceBeanFactory.getBean(KeywordStrategy.class));
         strategies.add(ServiceBeanFactory.getBean(ArticlePromotionStrategy.class));
+        strategies.add(ServiceBeanFactory.getBean(TodayPublishStrategy.class));
 //        strategies.add(ServiceBeanFactory.getBean(VideoPoolBadAuditStrategy.class));
         if (param.getScene().equals(FWH_COLD_START)) {
             strategies.add(ServiceBeanFactory.getBean(HistoryTitleForFwhColdStartStrategy.class));
@@ -166,6 +167,7 @@ public class FilterService {
 
     private List<FilterStrategy> getUnPreFilterStrategies(FilterParam param) {
         List<FilterStrategy> strategies = new ArrayList<>();
+        strategies.add(ServiceBeanFactory.getBean(TodayPublishStrategy.class));
         if (!param.getScene().equals(FWH_COLD_START)
                 && !Objects.equals(param.getStrategy(), RankStrategyEnum.INFINITE_STRATEGY.getStrategy())) {
             strategies.add(ServiceBeanFactory.getBean(LowScoreStrategy.class));

+ 41 - 0
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/service/recommend/filter/strategy/TodayPublishStrategy.java

@@ -0,0 +1,41 @@
+package com.tzld.longarticle.recommend.server.service.recommend.filter.strategy;
+
+import com.tzld.longarticle.recommend.server.mapper.aigc.AigcBaseMapper;
+import com.tzld.longarticle.recommend.server.model.dto.Content;
+import com.tzld.longarticle.recommend.server.model.entity.aigc.PublishContent;
+import com.tzld.longarticle.recommend.server.service.recommend.filter.FilterParam;
+import com.tzld.longarticle.recommend.server.service.recommend.filter.FilterResult;
+import com.tzld.longarticle.recommend.server.service.recommend.filter.FilterStrategy;
+import com.tzld.longarticle.recommend.server.util.DateUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Component
+@Slf4j
+public class TodayPublishStrategy implements FilterStrategy {
+
+    @Autowired
+    private AigcBaseMapper aigcBaseMapper;
+
+    @Override
+    public FilterResult filter(FilterParam param) {
+        FilterResult filterResult = new FilterResult();
+        List<String> result = new ArrayList<>(param.getContents().size());
+        Long todayStart = DateUtils.getTodayStart();
+        List<PublishContent> todayPublishContentList = aigcBaseMapper.getTodayPublishContentList(param.getAccountId(), todayStart);
+        List<String> todayPublishContentIdList = todayPublishContentList.stream().map(PublishContent::getId).collect(Collectors.toList());
+        for (Content content : param.getContents()) {
+            if (!todayPublishContentIdList.contains(content.getId())) {
+                result.add(content.getId());
+            }
+        }
+        filterResult.setContentIds(result);
+        return filterResult;
+    }
+
+}

+ 5 - 0
long-article-recommend-service/src/main/resources/mapper/aigc/AigcBaseMapper.xml

@@ -428,4 +428,9 @@
         where audit.audit_account != 'wangyunpeng'
     </select>
 
+    <select id="getTodayPublishContentList"
+            resultType="com.tzld.longarticle.recommend.server.model.entity.aigc.PublishContent">
+        select id from publish_content where publish_account_id = #{accountId} and publish_timestamp > #{todayStart}
+    </select>
+
 </mapper>