From 252aac6e821146edd7775d571b9dafa003b495fe Mon Sep 17 00:00:00 2001 From: yangqingyuan Date: Tue, 3 Sep 2024 10:30:02 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E6=95=B0=E6=8D=AE=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1=E6=9F=A5=E8=AF=A2=EF=BC=8C=E5=A2=9E=E5=8A=A0=E4=B8=BA?= =?UTF-8?q?0=E7=9A=84=E6=83=85=E5=86=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/DashboardServiceImpl.java | 38 ++++++++++++------- 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/gxwebsoft/shop/service/impl/DashboardServiceImpl.java b/src/main/java/com/gxwebsoft/shop/service/impl/DashboardServiceImpl.java index 08c2cdc..81d2dc0 100644 --- a/src/main/java/com/gxwebsoft/shop/service/impl/DashboardServiceImpl.java +++ b/src/main/java/com/gxwebsoft/shop/service/impl/DashboardServiceImpl.java @@ -171,18 +171,26 @@ public class DashboardServiceImpl extends ServiceImpl orderPayList = baseMapper.selectOrderPayListRel(param); Map> orderPayListMap = orderPayList.stream().collect(Collectors.groupingBy(OrderPay::getCreateTime)); + int startTime = DateUtil.parseDate(param.getCreateTimeStart()).dayOfYear(); + int endTime = DateUtil.parseDate(param.getCreateTimeEnd()).dayOfYear(); + List salesAmountStatisticsList = new ArrayList<>(); - orderPayListMap.forEach((date, orderPays) -> { - Date statisticsDate = DateUtil.parseDate(DateUtil.formatDate(date));//将时间转化为 - BigDecimal dailySale = orderPays.stream().map(OrderPay::getOrderPrice).reduce(BigDecimal.ZERO, BigDecimal::add);//将相同日期的订单额相加 + + for (int i = 0; i <= endTime - startTime; i++) { + Date statisticsDate = DateUtil.offsetDay(DateUtil.parseDate(param.getCreateTimeStart()), i).toJdkDate();//下一天 Dashboard.SalesAmountStatistics statistics = new Dashboard.SalesAmountStatistics(); - statistics.setDailySale(dailySale); statistics.setStartStatisticsDate(statisticsDate); statistics.setEndStatisticsDate(statisticsDate); salesAmountStatisticsList.add(statistics); - }); - //按照时间排序 - Collections.sort(salesAmountStatisticsList, Comparator.comparing(Dashboard.BaseStatistics::getStartStatisticsDate)); + + List orderPays = orderPayListMap.getOrDefault(statisticsDate, Collections.emptyList()); + if (!orderPays.isEmpty()) { + BigDecimal dailySale = orderPays.stream().map(OrderPay::getOrderPrice).reduce(BigDecimal.ZERO, BigDecimal::add);//将相同日期的订单额相加 + statistics.setDailySale(dailySale); + } else { + statistics.setDailySale(BigDecimal.ZERO);//如果没有当前数据,用0默认 + } + } return salesAmountStatisticsList; } @@ -195,19 +203,21 @@ public class DashboardServiceImpl extends ServiceImpl orderStatisticsList(DashBoardParam param) { List orderList = baseMapper.selectOrderListRel(param); - Map> orderPayListMap = orderList.stream().collect(Collectors.groupingBy(Order::getCreateTime)); + Map> orderListMap = orderList.stream().collect(Collectors.groupingBy(Order::getCreateTime)); + + int startTime = DateUtil.parseDate(param.getCreateTimeStart()).dayOfYear(); + int endTime = DateUtil.parseDate(param.getCreateTimeEnd()).dayOfYear(); List orderStatisticsList = new ArrayList<>(); - orderPayListMap.forEach((date, orderPays) -> { - Date statisticsDate = DateUtil.parseDate(DateUtil.formatDate(date));//将时间转化为 + for (int i = 0; i <= endTime - startTime; i++) { + Date statisticsDate = DateUtil.offsetDay(DateUtil.parseDate(param.getCreateTimeStart()), i).toJdkDate();//下一天 Dashboard.OrderStatistics statistics = new Dashboard.OrderStatistics(); - statistics.setDailyNewOrders(orderPays.size()); statistics.setStartStatisticsDate(statisticsDate); statistics.setEndStatisticsDate(statisticsDate); orderStatisticsList.add(statistics); - }); - //按照时间排序 - Collections.sort(orderStatisticsList, Comparator.comparing(Dashboard.BaseStatistics::getStartStatisticsDate)); + List orderPays = orderListMap.getOrDefault(statisticsDate, Collections.emptyList()); + statistics.setDailyNewOrders(orderPays.size()); + } return orderStatisticsList; }