feat:数据统计查询,增加为0的情况
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user