feat:数据统计查询,增加为0的情况

This commit is contained in:
yangqingyuan
2024-09-03 10:30:02 +08:00
parent b016fddee0
commit 252aac6e82

View File

@@ -171,18 +171,26 @@ public class DashboardServiceImpl extends ServiceImpl<DashboardMapper, Dashboard
List<OrderPay> orderPayList = baseMapper.selectOrderPayListRel(param);
Map<Date, List<OrderPay>> orderPayListMap = orderPayList.stream().collect(Collectors.groupingBy(OrderPay::getCreateTime));
int startTime = DateUtil.parseDate(param.getCreateTimeStart()).dayOfYear();
int endTime = DateUtil.parseDate(param.getCreateTimeEnd()).dayOfYear();
List<Dashboard.SalesAmountStatistics> 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<OrderPay> 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<DashboardMapper, Dashboard
@Override
public List<Dashboard.OrderStatistics> orderStatisticsList(DashBoardParam param) {
List<Order> orderList = baseMapper.selectOrderListRel(param);
Map<Date, List<Order>> orderPayListMap = orderList.stream().collect(Collectors.groupingBy(Order::getCreateTime));
Map<Date, List<Order>> orderListMap = orderList.stream().collect(Collectors.groupingBy(Order::getCreateTime));
int startTime = DateUtil.parseDate(param.getCreateTimeStart()).dayOfYear();
int endTime = DateUtil.parseDate(param.getCreateTimeEnd()).dayOfYear();
List<Dashboard.OrderStatistics> 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<Order> orderPays = orderListMap.getOrDefault(statisticsDate, Collections.emptyList());
statistics.setDailyNewOrders(orderPays.size());
}
return orderStatisticsList;
}