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