Browse Source

账号头条发布得分导出增加品类

wangyunpeng 8 months ago
parent
commit
7a277a615e

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

@@ -21,6 +21,8 @@ public interface LongArticleBaseMapper {
 
     void updateRootProduceContentLevel(String rootProduceContentId, String level);
 
+    void deleteDatastatScoreByDtIn(List<String> dateStrList);
+
     void batchInsertDatastatScore(List<DatastatScore> list);
 
     void batchInsertArticleCategory(List<ArticleCategory> list);

+ 3 - 0
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/model/entity/longArticle/DatastatScore.java

@@ -35,6 +35,9 @@ public class DatastatScore {
     @Column(name = "title")
     private String title;
 
+    @Column(name = "category")
+    private String category;
+
     @Column(name = "strategy")
     private String strategy;
 

+ 1 - 0
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/model/vo/FirstContentScoreExport.java

@@ -10,6 +10,7 @@ public class FirstContentScoreExport {
     private String accountName;
     private Integer index;
     private String title;
+    private String category;
     private String strategy;
 
     private Double score;

+ 16 - 1
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/service/recommend/DataDashboardService.java

@@ -16,6 +16,7 @@ import com.tzld.longarticle.recommend.server.model.entity.crawler.AccountAvgInfo
 import com.tzld.longarticle.recommend.server.model.entity.crawler.Article;
 import com.tzld.longarticle.recommend.server.model.entity.crawler.ArticleDetailInfo;
 import com.tzld.longarticle.recommend.server.model.entity.crawler.PublishSortLog;
+import com.tzld.longarticle.recommend.server.model.entity.longArticle.ArticleCategory;
 import com.tzld.longarticle.recommend.server.model.entity.longArticle.DatastatScore;
 import com.tzld.longarticle.recommend.server.model.entity.longArticle.DatastatSortStrategy;
 import com.tzld.longarticle.recommend.server.model.param.MiniprogramTaskParam;
@@ -29,10 +30,12 @@ import com.tzld.longarticle.recommend.server.repository.crawler.AccountAvgInfoRe
 import com.tzld.longarticle.recommend.server.repository.crawler.ArticleDetailInfoRepository;
 import com.tzld.longarticle.recommend.server.repository.crawler.ArticleRepository;
 import com.tzld.longarticle.recommend.server.repository.crawler.PublishSortLogRepository;
+import com.tzld.longarticle.recommend.server.repository.longArticle.ArticleCategoryRepository;
 import com.tzld.longarticle.recommend.server.repository.longArticle.DatastatScoreRepository;
 import com.tzld.longarticle.recommend.server.service.recommend.score.ScoreStrategy;
 import com.tzld.longarticle.recommend.server.util.DateUtils;
 import com.tzld.longarticle.recommend.server.util.MapBuilder;
+import com.tzld.longarticle.recommend.server.util.Md5Util;
 import com.tzld.longarticle.recommend.server.util.feishu.FeiShu;
 import com.xxl.job.core.biz.model.ReturnT;
 import com.xxl.job.core.handler.annotation.XxlJob;
@@ -47,6 +50,7 @@ import org.springframework.web.client.RestTemplate;
 
 import java.lang.reflect.Field;
 import java.util.*;
+import java.util.function.Function;
 import java.util.stream.Collectors;
 
 @Service
@@ -79,6 +83,8 @@ public class DataDashboardService {
     private ProducePlanInputSourceRepository producePlanInputSourceRepository;
     @Autowired
     private DatastatScoreRepository datastatScoreRepository;
+    @Autowired
+    private ArticleCategoryRepository articleCategoryRepository;
 
     @ApolloJsonValue("${export.account.ghId:[]}")
     private static List<String> ghIdList;
@@ -1385,6 +1391,7 @@ public class DataDashboardService {
         sortLogList = sortLogList.stream().filter(o -> o.getIndex() == 1 || o.getIndex() == 2).collect(Collectors.toList());
         sortLogList.sort(Comparator.comparing(PublishSortLog::getGhId).thenComparing(PublishSortLog::getDateStr));
         List<String> ghIds = sortLogList.stream().map(PublishSortLog::getGhId).distinct().collect(Collectors.toList());
+        Map<String, String> titleMd5Map = sortLogList.stream().collect(Collectors.toMap(PublishSortLog::getTitle, o -> Md5Util.encoderByMd5(o.getTitle()), (a, b) -> a));
         long minTimestamp = DateUtils.dateStrToTimestamp(dateStrList.get(0), "yyyyMMdd");
         List<Article> articleList = articleRepository.getByGhIdInAndPublishTimestampGreaterThanAndTypeEquals(ghIds, minTimestamp, ArticleTypeEnum.QUNFA.getVal());
         articleList = articleList.stream().filter(o -> o.getItemIndex() == 1 || o.getItemIndex() == 2).collect(Collectors.toList());
@@ -1405,6 +1412,8 @@ public class DataDashboardService {
                 .collect(Collectors.groupingBy(AccountAvgInfo::getGhId,
                         Collectors.groupingBy(AccountAvgInfo::getUpdateTime,
                                 Collectors.toMap(AccountAvgInfo::getPosition, o -> o))));
+        List<ArticleCategory> articleCategoryList = articleCategoryRepository.findAll();
+        Map<String, ArticleCategory> titleCategoryMap = articleCategoryList.stream().collect(Collectors.toMap(ArticleCategory::getTitleMd5, Function.identity(), (a, b) -> a));
 
         String title = "";
         for (PublishSortLog publishSortLog : sortLogList) {
@@ -1430,6 +1439,11 @@ public class DataDashboardService {
             item.setAccountName(publishSortLog.getAccountName());
             item.setIndex(publishSortLog.getIndex());
             item.setTitle(publishSortLog.getTitle());
+            String titleMd5 = titleMd5Map.get(publishSortLog.getTitle());
+            ArticleCategory articleCategory = titleCategoryMap.get(titleMd5);
+            if (Objects.nonNull(articleCategory)) {
+                item.setCategory(articleCategory.getCategory());
+            }
             item.setStrategy(publishSortLog.getStrategy());
             item.setScore(Double.valueOf(publishSortLog.getScore()));
             JSONObject scoreMap = JSONObject.parseObject(publishSortLog.getScoreMap());
@@ -1477,7 +1491,7 @@ public class DataDashboardService {
 
     private void saveDatastatScore(List<String> dateStrList, List<FirstContentScoreExport> result) {
         if (CollectionUtils.isNotEmpty(result)) {
-            datastatScoreRepository.deleteByDtIn(dateStrList);
+            longArticleBaseMapper.deleteDatastatScoreByDtIn(dateStrList);
             List<DatastatScore> saveList = new ArrayList<>();
             for (FirstContentScoreExport value : result) {
                 DatastatScore item = new DatastatScore();
@@ -1486,6 +1500,7 @@ public class DataDashboardService {
                 item.setAccountName(value.getAccountName());
                 item.setIndex(value.getIndex());
                 item.setTitle(value.getTitle());
+                item.setCategory(value.getCategory());
                 item.setStrategy(value.getStrategy());
                 item.setScore(value.getScore());
                 item.setHisFissionAvgReadRateRate(value.getHisFissionAvgReadRateRateStrategy());

+ 7 - 0
long-article-recommend-service/src/main/resources/mapper/longArticle/LongArticleBaseMapper.xml

@@ -57,6 +57,13 @@
         update article_pool_promotion_source set level = #{level} where root_produce_content_id = #{rootProduceContentId}
     </update>
 
+    <delete id="deleteDatastatScoreByDtIn">
+        delete from datastat_score where dt in
+        <foreach collection="dateStrList" item="item" open="(" close=")" separator=",">
+            #{item}
+        </foreach>
+    </delete>
+
     <insert id="batchInsertDatastatScore">
         INSERT INTO datastat_score
         (dt, gh_id, account_name, `index`, title, strategy, score, similarity, view_count_rate,