Bladeren bron

Merge branch 'wyp/0416-categoryGroupData' of Server/long-article-recommend into master

wangyunpeng 1 week geleden
bovenliggende
commit
62b6e560b4

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

@@ -3678,28 +3678,39 @@ public class DataDashboardService {
                 }
                 result.add(export);
             }
-            result.add(buildCategoryGroupDataSum(dateStr, entry.getKey(), entry.getValue()));
         }
+        result.addAll(buildCategoryGroupDataSum(dateStr, resultMap));
         return result;
     }
 
-    private CategoryGroupDataExport buildCategoryGroupDataSum(String dateStr, String position,
-                                                              Map<String, CategoryGroupDataExport> categoryMap) {
-        CategoryGroupDataExport sum = new CategoryGroupDataExport();
-        sum.setDateStr(dateStr);
-        sum.setPosition(position);
-        sum.setCategory("SUM");
-        for (Map.Entry<String, CategoryGroupDataExport> entry : categoryMap.entrySet()) {
-            CategoryGroupDataExport export = entry.getValue();
-            sum.setViewCount(sum.getViewCount() + export.getViewCount());
-            sum.setFirstLevel(sum.getFirstLevel() + export.getFirstLevel());
-            sum.setFansCount(sum.getFansCount() + export.getFansCount());
+    private List<CategoryGroupDataExport> buildCategoryGroupDataSum(String dateStr,
+                                                                    Map<String, Map<String, CategoryGroupDataExport>> resultMap) {
+        List<CategoryGroupDataExport> result = new ArrayList<>();
+        Map<String, CategoryGroupDataExport> sumMap = new HashMap<>();
+        for (Map.Entry<String, Map<String, CategoryGroupDataExport>> positionMap : resultMap.entrySet()) {
+            for (Map.Entry<String, CategoryGroupDataExport> categoryMap : positionMap.getValue().entrySet()) {
+                String category = categoryMap.getKey();
+                CategoryGroupDataExport export = sumMap.get(category);
+                if (Objects.isNull(export)) {
+                    export = new CategoryGroupDataExport();
+                    export.setDateStr(dateStr);
+                    export.setPosition("SUM");
+                    export.setCategory(category);
+                    sumMap.put(category, export);
+                }
+                export.setViewCount(export.getViewCount() + categoryMap.getValue().getViewCount());
+                export.setFirstLevel(export.getFirstLevel() + categoryMap.getValue().getFirstLevel());
+                export.setFansCount(export.getFansCount() + categoryMap.getValue().getFansCount());
+            }
         }
-        if (sum.getFansCount() != null && sum.getFansCount() != 0) {
-            sum.setOpenRate((double) sum.getFirstLevel() / sum.getFansCount());
+        for (Map.Entry<String, CategoryGroupDataExport> item : sumMap.entrySet()) {
+            CategoryGroupDataExport export = item.getValue();
+            if (export.getFansCount()!= null && export.getFansCount()!= 0) {
+                export.setOpenRate((double) export.getFirstLevel() / export.getFansCount());
+            }
+            result.add(export);
         }
-        return sum;
+        return result;
     }
 
-
 }