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/GoldCornConsumeRecordServiceImpl.java | 41 +++++++++++++++++++++++++++++++---------- 1 files changed, 31 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/com/yeshi/makemoney/app/service/impl/goldcorn/GoldCornConsumeRecordServiceImpl.java b/app/src/main/java/com/yeshi/makemoney/app/service/impl/goldcorn/GoldCornConsumeRecordServiceImpl.java index bca656e..0d169e5 100644 --- a/app/src/main/java/com/yeshi/makemoney/app/service/impl/goldcorn/GoldCornConsumeRecordServiceImpl.java +++ b/app/src/main/java/com/yeshi/makemoney/app/service/impl/goldcorn/GoldCornConsumeRecordServiceImpl.java @@ -4,15 +4,19 @@ import javax.annotation.Resource; import com.yeshi.makemoney.app.exception.goldcorn.GoldCornConsumeRecordException; +import org.springframework.data.domain.Sort; +import org.springframework.data.mongodb.core.aggregation.Aggregation; +import org.springframework.data.mongodb.core.aggregation.AggregationOperation; +import org.springframework.data.mongodb.core.aggregation.AggregationResults; import org.springframework.stereotype.Service; -import java.util.Date; +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.*; import org.yeshi.utils.StringUtil; import org.yeshi.utils.TimeUtil; import org.yeshi.utils.bean.BeanUtil; - -import java.util.List; import com.yeshi.makemoney.app.dao.goldcorn.GoldCornConsumeRecordDao; import com.yeshi.makemoney.app.entity.goldcorn.GoldCornConsumeRecord; @@ -29,14 +33,20 @@ @Resource private GoldCornConsumeRecordDao goldCornConsumeRecordDao; - @Override - public List<GoldCornConsumeRecord> list(GoldCornConsumeRecordQuery goldCornConsumeRecordQuery, int page, int pageSize) { + private DaoQuery createDaoQuery(GoldCornConsumeRecordQuery goldCornConsumeRecordQuery) { DaoQuery daoQuery = new DaoQuery(); daoQuery.type = goldCornConsumeRecordQuery.getType(); daoQuery.uid = goldCornConsumeRecordQuery.getUid(); daoQuery.minCreateTime = goldCornConsumeRecordQuery.toStartTime(); daoQuery.maxCreateTime = goldCornConsumeRecordQuery.toEndTime(); + daoQuery.sortList = Arrays.asList(new Sort.Order[]{Sort.Order.desc("createTime")}); + daoQuery.eventId = goldCornConsumeRecordQuery.getEventId(); + return daoQuery; + } + @Override + public List<GoldCornConsumeRecord> list(GoldCornConsumeRecordQuery goldCornConsumeRecordQuery, int page, int pageSize) { + DaoQuery daoQuery = createDaoQuery(goldCornConsumeRecordQuery); daoQuery.start = (page - 1) * pageSize; daoQuery.count = pageSize; return goldCornConsumeRecordDao.list(daoQuery); @@ -44,11 +54,7 @@ @Override public long count(GoldCornConsumeRecordQuery goldCornConsumeRecordQuery) { - DaoQuery daoQuery = new DaoQuery(); - daoQuery.type = goldCornConsumeRecordQuery.getType(); - daoQuery.uid = goldCornConsumeRecordQuery.getUid(); - daoQuery.minCreateTime = goldCornConsumeRecordQuery.toStartTime(); - daoQuery.maxCreateTime = goldCornConsumeRecordQuery.toEndTime(); + DaoQuery daoQuery = createDaoQuery(goldCornConsumeRecordQuery); return goldCornConsumeRecordDao.count(daoQuery); } @@ -101,5 +107,20 @@ } } + @Override + public BigDecimal sumMoney(GoldCornConsumeRecordQuery query) { + Criteria criteria = goldCornConsumeRecordDao.getCriteria(createDaoQuery(query)); + List<AggregationOperation> list = new ArrayList<>(); + if (criteria != null) { + list.add(Aggregation.match(criteria)); + } + list.add(Aggregation.project("money")); + + list.add(Aggregation.group().sum("money").as("money")); + AggregationResults<Map> results = goldCornConsumeRecordDao.aggregate(list, Map.class); + Object money = results.getUniqueMappedResult().get("money"); + return money == null ? new BigDecimal(0) : new BigDecimal(money + "").divide(new BigDecimal(100), 2, RoundingMode.FLOOR); + } + } \ No newline at end of file -- Gitblit v1.8.0