|
@@ -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;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
}
|