|
@@ -6,10 +6,12 @@ import com.google.common.collect.Lists;
|
|
|
import com.tzld.longarticle.recommend.server.common.enums.StatusEnum;
|
|
|
import com.tzld.longarticle.recommend.server.common.enums.recommend.ArticleCategoryStatusEnum;
|
|
|
import com.tzld.longarticle.recommend.server.common.enums.recommend.ArticlePoolPromotionSourceStatusEnum;
|
|
|
+import com.tzld.longarticle.recommend.server.common.enums.recommend.ContentPoolEnum;
|
|
|
import com.tzld.longarticle.recommend.server.mapper.aigc.AigcBaseMapper;
|
|
|
import com.tzld.longarticle.recommend.server.mapper.longArticle.ArticleCategoryMapper;
|
|
|
import com.tzld.longarticle.recommend.server.model.dto.CrawlerContent;
|
|
|
import com.tzld.longarticle.recommend.server.model.dto.kimi.KimiResult;
|
|
|
+import com.tzld.longarticle.recommend.server.model.entity.aigc.ProducePlan;
|
|
|
import com.tzld.longarticle.recommend.server.model.entity.aigc.ProducePlanExeRecord;
|
|
|
import com.tzld.longarticle.recommend.server.model.entity.longArticle.ArticleCategory;
|
|
|
import com.tzld.longarticle.recommend.server.model.entity.longArticle.ArticleCrawlerPlan;
|
|
@@ -22,6 +24,7 @@ import com.tzld.longarticle.recommend.server.model.vo.ProduceContentCrawlerVO;
|
|
|
import com.tzld.longarticle.recommend.server.remote.CrawlerContentByPlanService;
|
|
|
import com.tzld.longarticle.recommend.server.remote.DeepSeekApiService;
|
|
|
import com.tzld.longarticle.recommend.server.remote.KimiApiService;
|
|
|
+import com.tzld.longarticle.recommend.server.repository.aigc.ProducePlanRepository;
|
|
|
import com.tzld.longarticle.recommend.server.repository.longArticle.ArticleCategoryRepository;
|
|
|
import com.tzld.longarticle.recommend.server.repository.longArticle.ArticleCrawlerPlanRepository;
|
|
|
import com.tzld.longarticle.recommend.server.repository.longArticle.ArticlePoolPromotionSourceRepository;
|
|
@@ -60,6 +63,8 @@ public class ArticleCategoryService {
|
|
|
KimiApiService kimiApiService;
|
|
|
@Autowired
|
|
|
DeepSeekApiService deepSeekApiService;
|
|
|
+ @Autowired
|
|
|
+ ProducePlanRepository producePlanRepository;
|
|
|
|
|
|
@ApolloJsonValue("${cold.pool.produce.planId:[\"20240802021606053813696\", \"20240802080355355308981\",\n" +
|
|
|
"\"20240805154433785506170\", \"20240805154359027876170\", \"20241024100016206421084\", " +
|
|
@@ -181,6 +186,12 @@ public class ArticleCategoryService {
|
|
|
}
|
|
|
|
|
|
private void addColdArticleCategoryByProducePlan() {
|
|
|
+ List<String> producePlanIds = aigcBaseMapper.getProducePlanId();
|
|
|
+ List<ProducePlan> producePlanList = producePlanRepository.findByIdIn(producePlanIds);
|
|
|
+ producePlanIds = producePlanList.stream()
|
|
|
+ .filter(o -> StringUtils.hasText(o.getPlanTag())
|
|
|
+ && o.getPlanTag().contains(ContentPoolEnum.autoArticlePoolLevel4.getContentPool()))
|
|
|
+ .map(ProducePlan::getId).collect(Collectors.toList());
|
|
|
List<ArticleCategory> saveList = addArticleCategoryByProducePlan(producePlanIds);
|
|
|
if (CollectionUtils.isNotEmpty(saveList)) {
|
|
|
articleCategoryMapper.batchInsertArticleCategory(saveList);
|
|
@@ -188,17 +199,15 @@ public class ArticleCategoryService {
|
|
|
}
|
|
|
|
|
|
private void addPromotionArticleCategoryByProducePlan() {
|
|
|
- List<String> articlePromotionProducePlanIds = new ArrayList<>();
|
|
|
// 获取晋级生成计划Id
|
|
|
- for (Map.Entry<String, Map<String, Map<String, String>>> oneEntry : produceConfig.entrySet()) {
|
|
|
- for (Map.Entry<String, Map<String, String>> twoEntry : oneEntry.getValue().entrySet()) {
|
|
|
- twoEntry.getValue().forEach((key, value) -> {
|
|
|
- if (StringUtils.hasText(value) && !producePlanIds.contains(value)) {
|
|
|
- articlePromotionProducePlanIds.add(value);
|
|
|
- }
|
|
|
- });
|
|
|
- }
|
|
|
- }
|
|
|
+ List<String> producePlanIds = aigcBaseMapper.getProducePlanId();
|
|
|
+ List<ProducePlan> producePlanList = producePlanRepository.findByIdIn(producePlanIds);
|
|
|
+ List<String> articlePromotionProducePlanIds = producePlanList.stream()
|
|
|
+ .filter(o -> StringUtils.hasText(o.getPlanTag())
|
|
|
+ && (o.getPlanTag().contains(ContentPoolEnum.autoArticlePoolLevel1.getContentPool())
|
|
|
+ || o.getPlanTag().contains(ContentPoolEnum.autoArticlePoolLevel2.getContentPool())))
|
|
|
+ .map(ProducePlan::getId).collect(Collectors.toList());
|
|
|
+
|
|
|
List<ArticleCategory> saveList = addArticleCategoryByProducePlan(articlePromotionProducePlanIds);
|
|
|
// 已晋级文章 先溯源查找源内容品类,查询不到再用kimi进行分类
|
|
|
if (CollectionUtils.isNotEmpty(saveList)) {
|
|
@@ -266,7 +275,10 @@ public class ArticleCategoryService {
|
|
|
private List<ArticleCategory> addArticleCategoryByProducePlan(List<String> producePlanIds) {
|
|
|
List<ProducePlanExeRecord> produceContentList = aigcBaseMapper.getAllByProducePlanId(producePlanIds);
|
|
|
List<String> channelContentIds = produceContentList.stream().map(ProducePlanExeRecord::getChannelContentId).distinct().collect(Collectors.toList());
|
|
|
- List<ArticleCategory> articleCategoryList = articleCategoryRepository.getAllByChannelContentIdInAndVersion(channelContentIds, activeVersion);
|
|
|
+ List<ArticleCategory> articleCategoryList = new ArrayList<>();
|
|
|
+ for (List<String> partition : Lists.partition(channelContentIds, 1000)) {
|
|
|
+ articleCategoryList.addAll(articleCategoryRepository.getAllByChannelContentIdInAndVersion(partition, activeVersion));
|
|
|
+ }
|
|
|
List<String> articleCategoryIds = articleCategoryList.stream().map(ArticleCategory::getChannelContentId).collect(Collectors.toList());
|
|
|
List<ProduceContentCrawlerVO> list = produceContentList.stream().filter(o -> !articleCategoryIds.contains(o.getChannelContentId())).map(o -> {
|
|
|
ProduceContentCrawlerVO item = new ProduceContentCrawlerVO();
|