ソースを参照

Merge branch 'wyp/0529-datastat' of Server/long-article-recommend into master

wangyunpeng 1 ヶ月 前
コミット
2518322fea

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

@@ -8,6 +8,7 @@ public class CategoryGroupDataExport {
     private String position;
     private String category;
     private Integer publishTimes = 0;
+    private Integer publishDistinctTimes = 0;
     private Long fansCount = 0L;
     private Integer viewCount = 0;
     private Integer firstLevel = 0;

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

@@ -3770,10 +3770,10 @@ public class DataDashboardService {
 
         List<Pair<String, String>> styles = Arrays
                 .asList(
-                        Pair.of("I", "0.00%"),
                         Pair.of("J", "0.00%"),
                         Pair.of("K", "0.00%"),
-                        Pair.of("L", "0.00%")
+                        Pair.of("L", "0.00%"),
+                        Pair.of("M", "0.00%")
                 );
         doSendFeishuSheet(dateStrList, dailyDetailSheetToken, "bl1eL2", rowNum, rows,
                 2, styles, null, null);
@@ -3788,14 +3788,18 @@ public class DataDashboardService {
         Map<String, ArticleCategory> titleCategoryMap = articleCategoryList.stream()
                 .collect(Collectors.toMap(ArticleCategory::getTitleMd5, Function.identity(), (a, b) -> a));
         Map<String, Map<String, CategoryGroupDataExport>> resultMap = new HashMap<>();
+        Map<String, Map<String, Set<String>>> categoryPositionTitleMap = new HashMap<>();
         for (DatastatSortStrategy item : list) {
             if (Objects.isNull(item.getViewCount()) || Objects.isNull(item.getFirstLevel()) || Objects.isNull(item.getFans())) {
                 continue;
             }
             Map<String, CategoryGroupDataExport> positionMap = resultMap.get(ContentPositionEnum.from(item.getPosition()));
+            Map<String, Set<String>> positionTitleMap = categoryPositionTitleMap.get(ContentPositionEnum.from(item.getPosition()));
             if (MapUtils.isEmpty(positionMap)) {
                 positionMap = new HashMap<>();
+                positionTitleMap = new HashMap<>();
                 resultMap.put(ContentPositionEnum.from(item.getPosition()), positionMap);
+                categoryPositionTitleMap.put(ContentPositionEnum.from(item.getPosition()), positionTitleMap);
             }
             ArticleCategory articleCategory = categoryMap.get(item.getSourceId());
             if (Objects.isNull(articleCategory)) {
@@ -3806,12 +3810,19 @@ public class DataDashboardService {
                 continue;
             }
             CategoryGroupDataExport export = positionMap.get(articleCategory.getCategory());
+            Set<String> titleSet = positionTitleMap.get(articleCategory.getCategory());
             if (Objects.isNull(export)) {
                 export = new CategoryGroupDataExport();
                 export.setDateStr(dateStr);
                 export.setPosition(ContentPositionEnum.from(item.getPosition()));
                 export.setCategory(articleCategory.getCategory());
                 positionMap.put(articleCategory.getCategory(), export);
+                titleSet = new HashSet<>();
+                positionTitleMap.put(articleCategory.getCategory(), titleSet);
+            }
+            if (!titleSet.contains(item.getTitle())) {
+                export.setPublishDistinctTimes(export.getPublishDistinctTimes() + 1);
+                titleSet.add(item.getTitle());
             }
             export.setPublishTimes(export.getPublishTimes() + 1);
             export.setViewCount(export.getViewCount() + item.getViewCount());
@@ -3856,6 +3867,7 @@ public class DataDashboardService {
                     sumMap.put(category, export);
                 }
                 export.setPublishTimes(export.getPublishTimes() + categoryMap.getValue().getPublishTimes());
+                export.setPublishDistinctTimes(export.getPublishDistinctTimes() + categoryMap.getValue().getPublishDistinctTimes());
                 export.setViewCount(export.getViewCount() + categoryMap.getValue().getViewCount());
                 export.setFirstLevel(export.getFirstLevel() + categoryMap.getValue().getFirstLevel());
                 export.setFission0(export.getFission0() + categoryMap.getValue().getFission0());