From 2922e51a7a8e657a8467c818ae16700e41ddac77 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 10 五月 2022 19:45:58 +0800
Subject: [PATCH] bug修复

---
 app/src/main/java/com/yeshi/makemoney/app/service/impl/goldcorn/GoldCornGetRecordServiceImpl.java |   44 +++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 43 insertions(+), 1 deletions(-)

diff --git a/app/src/main/java/com/yeshi/makemoney/app/service/impl/goldcorn/GoldCornGetRecordServiceImpl.java b/app/src/main/java/com/yeshi/makemoney/app/service/impl/goldcorn/GoldCornGetRecordServiceImpl.java
index 35e73ef..aad4516 100644
--- a/app/src/main/java/com/yeshi/makemoney/app/service/impl/goldcorn/GoldCornGetRecordServiceImpl.java
+++ b/app/src/main/java/com/yeshi/makemoney/app/service/impl/goldcorn/GoldCornGetRecordServiceImpl.java
@@ -2,6 +2,7 @@
 
 import com.yeshi.makemoney.app.dao.goldcorn.GoldCornGetRecordDao;
 import com.yeshi.makemoney.app.dao.goldcorn.GoldCornGetRecordDao.DaoQuery;
+import com.yeshi.makemoney.app.entity.SystemEnum;
 import com.yeshi.makemoney.app.entity.goldcorn.GoldCornGetRecord;
 import com.yeshi.makemoney.app.entity.goldcorn.GoldCornGetType;
 import com.yeshi.makemoney.app.exception.goldcorn.GoldCornGetRecordException;
@@ -17,6 +18,8 @@
 import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.stereotype.Service;
 import org.yeshi.utils.TimeUtil;
+import org.yeshi.utils.statistic.BaseStatisticTimeQuery;
+import org.yeshi.utils.statistic.StatisticNumberResult;
 
 import javax.annotation.Resource;
 import java.util.*;
@@ -205,11 +208,28 @@
     }
 
     @Override
+    public Map<String, Long> sumGoldCornNum(GoldCornGetRecordQuery goldCornGetRecordQuery) {
+
+        List<AggregationOperation> list = new ArrayList<>();
+        list.add(Aggregation.match(goldCornGetRecordDao.getCriteria(createDaoQuery(goldCornGetRecordQuery))));
+        list.add(Aggregation.group("day").sum("cornNum").as("cornNum"));
+        AggregationResults<Map<String, Object>> results = goldCornGetRecordDao.aggregate(list, Map.class);
+        List<Map<String, Object>> resultList = results.getMappedResults();
+        Map<String, Long> resultMap = new HashMap<>();
+        for (Map<String, Object> result : resultList) {
+            String day = result.get("_id") + "";
+            Long count = Long.parseLong(result.get("cornNum") + "");
+            resultMap.put(day, count);
+        }
+        return resultMap;
+    }
+
+    @Override
     public List<Long> listUids(Date minCreateTime, Date maxCreateTime, int page, int pageSize) {
         List<AggregationOperation> list = new ArrayList<>();
         list.add(Aggregation.match(Criteria.where("createTime").gte(minCreateTime).lt(maxCreateTime)));
         list.add(Aggregation.group("uid"));
-        list.add(Aggregation.sort(Sort.Direction.DESC,"_id"));
+        list.add(Aggregation.sort(Sort.Direction.DESC, "_id"));
         list.add(Aggregation.skip(Long.parseLong((page - 1) * pageSize + "")));
         list.add(Aggregation.limit(pageSize));
         AggregationResults<Map<String, Object>> results = goldCornGetRecordDao.aggregate(list, Map.class);
@@ -245,5 +265,27 @@
         return uidList.stream().collect(Collectors.toMap(uid -> uid, uid -> signInedList.contains(uid)));
     }
 
+    @Override
+    public List<StatisticNumberResult> statistic(SystemEnum system, BaseStatisticTimeQuery query) {
+        GoldCornGetRecordQuery q = new GoldCornGetRecordQuery();
+        q.setStartTime(TimeUtil.getGernalTime(query.getStartTime().getTime(), "yyyy.MM.dd HH:mm:ss"));
+        q.setEndTime(TimeUtil.getGernalTime(query.getEndTime().getTime(), "yyyy.MM.dd HH:mm:ss"));
+        q.setFormat("yyyy.MM.dd HH:mm:ss");
+        Map<String, Long> map = sumGoldCornNum(q);
+        List<StatisticNumberResult> resultList = new ArrayList<>();
+        for (String key : map.keySet()) {
+            StatisticNumberResult numberResult = new StatisticNumberResult();
+            numberResult.setTime(key);
+            numberResult.setNumber(map.get(key));
+            resultList.add(numberResult);
+        }
+
+        Comparator<StatisticNumberResult> cm = (o1, o2) ->
+                GoldCornUtil.convertFormatDay(o1.getTime()).getTime() - GoldCornUtil.convertFormatDay(o2.getTime()).getTime() > 0 ? 1 : -1;
+
+        Collections.sort(resultList, cm);
+        return resultList;
+    }
+
 
 }
\ No newline at end of file

--
Gitblit v1.8.0