|
@@ -2,6 +2,7 @@ package com.tzld.longarticle.recommend.server.service.recommend.rank.strategy;
|
|
|
|
|
|
|
|
|
import com.ctrip.framework.apollo.spring.annotation.ApolloJsonValue;
|
|
|
+import com.tzld.longarticle.recommend.server.common.enums.aigc.PublishPlanInputSourceTypesEnum;
|
|
|
import com.tzld.longarticle.recommend.server.common.enums.recommend.ScoreStrategyEnum;
|
|
|
import com.tzld.longarticle.recommend.server.model.dto.Content;
|
|
|
import com.tzld.longarticle.recommend.server.model.entity.crawler.Article;
|
|
@@ -19,6 +20,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* @author dyp
|
|
@@ -123,7 +125,21 @@ public class RankV15Strategy implements RankStrategy {
|
|
|
RankService.commonAddSecondContent(param, result, publishPool, contentPools, contentMap, indexReplacePoolConfigMap);
|
|
|
|
|
|
// 3-8
|
|
|
- RankService.commonAdd38Content(param, result, contentPools, contentMap, param.getStrategy());
|
|
|
+ // RankService.commonAdd38Content(param, result, contentPools, contentMap, param.getStrategy());
|
|
|
+ List<Content> pool = contentMap.get(contentPools[2]);
|
|
|
+ Integer videoSourceType = PublishPlanInputSourceTypesEnum.longArticleVideoPoolSource.getVal();
|
|
|
+ Queue<Content> videoPoolQueue = pool.stream().filter(o -> Objects.equals(o.getSourceType(), videoSourceType))
|
|
|
+ .collect(Collectors.toCollection(LinkedList::new));
|
|
|
+ Queue<Content> otherPoolQueue = pool.stream().filter(o -> !Objects.equals(o.getSourceType(), videoSourceType))
|
|
|
+ .collect(Collectors.toCollection(LinkedList::new));
|
|
|
+ for (int i = 3; i < param.getSize() + 1; i++) {
|
|
|
+ Integer sourceType = RankService.getStrategyPoolSourceType(param.getStrategy(), i);
|
|
|
+ if (Objects.equals(sourceType, videoSourceType) && !videoPoolQueue.isEmpty()) {
|
|
|
+ result.add(videoPoolQueue.poll());
|
|
|
+ } else if (!otherPoolQueue.isEmpty()) {
|
|
|
+ result.add(otherPoolQueue.poll());
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
RankStrategy.deduplication(result, contentMap, publishPool);
|
|
|
|