Browse Source

score数据处理

wangyunpeng 3 months ago
parent
commit
4cfdc06b9b

+ 24 - 10
long-article-recommend-service/src/test/java/com/tzld/longarticle/recommend/server/DataDashboardTest.java

@@ -1,6 +1,8 @@
 package com.tzld.longarticle.recommend.server;
 package com.tzld.longarticle.recommend.server;
 
 
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
+import com.tzld.longarticle.recommend.server.common.enums.recommend.ArticleCategoryStatusEnum;
+import com.tzld.longarticle.recommend.server.mapper.longArticle.ArticleCategoryMapper;
 import com.tzld.longarticle.recommend.server.model.entity.longArticle.ArticleCategory;
 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.DatastatScore;
 import com.tzld.longarticle.recommend.server.model.vo.IntermediateIndicatorsExport;
 import com.tzld.longarticle.recommend.server.model.vo.IntermediateIndicatorsExport;
@@ -32,6 +34,8 @@ public class DataDashboardTest {
     DatastatScoreRepository datastatScoreRepository;
     DatastatScoreRepository datastatScoreRepository;
     @Resource
     @Resource
     ArticleCategoryRepository articleCategoryRepository;
     ArticleCategoryRepository articleCategoryRepository;
+    @Resource
+    ArticleCategoryMapper articleCategoryMapper;
 
 
     @Test
     @Test
     public void test() {
     public void test() {
@@ -77,19 +81,29 @@ public class DataDashboardTest {
     @Test
     @Test
     public void datastatScore() {
     public void datastatScore() {
         List<DatastatScore> scoreList = datastatScoreRepository.getBySourceIdIsNotNull();
         List<DatastatScore> scoreList = datastatScoreRepository.getBySourceIdIsNotNull();
-        List<ArticleCategory> categoryList = articleCategoryRepository.getByStatusAndVersion(1, 2);
+        List<ArticleCategory> categoryList = articleCategoryRepository.getByStatusAndVersion(ArticleCategoryStatusEnum.SUCCESS.getCode(), 2);
         Map<String, ArticleCategory> categoryMap = categoryList.stream().collect(Collectors.toMap(ArticleCategory::getProduceContentId, category -> category));
         Map<String, ArticleCategory> categoryMap = categoryList.stream().collect(Collectors.toMap(ArticleCategory::getProduceContentId, category -> category));
-        Map<String, ArticleCategory> titleMap = categoryList.stream().collect(Collectors.toMap(ArticleCategory::getTitle, category -> category));
-        for (DatastatScore score : scoreList) {
-            ArticleCategory category = categoryMap.get(score.getSourceId());
-            if (Objects.isNull(category)) {
-                category = titleMap.get(score.getTitle());
-                if (Objects.isNull(category)) {
-                    continue;
+        Map<String, ArticleCategory> titleMap = categoryList.stream().collect(Collectors.toMap(ArticleCategory::getTitle, category -> category, (a, b) -> a));
+        Map<String, List<DatastatScore>> scoreMap = scoreList.stream().collect(Collectors.groupingBy(DatastatScore::getTitle));
+        for (Map.Entry<String, List<DatastatScore>> entry : scoreMap.entrySet()) {
+            String title = entry.getKey();
+            List<DatastatScore> list = entry.getValue();
+            ArticleCategory category = null;
+            for (DatastatScore score : list) {
+                category = categoryMap.get(score.getSourceId());
+                if (Objects.nonNull(category)) {
+                    category = titleMap.get(score.getTitle());
+                    break;
                 }
                 }
             }
             }
-            score.setCategory(category.getCategory());
-            datastatScoreRepository.save(score);
+            if (Objects.isNull(category)) {
+                category = titleMap.get(title);
+            }
+            if (Objects.isNull(category)) {
+                log.error("category not exists");
+                continue;
+            }
+            articleCategoryMapper.updateArticleCategory(title, category.getCategory());
         }
         }
     }
     }