feat:数据统计查询,增加为0的情况
This commit is contained in:
@@ -171,18 +171,26 @@ public class DashboardServiceImpl extends ServiceImpl<DashboardMapper, Dashboard
|
|||||||
List<OrderPay> orderPayList = baseMapper.selectOrderPayListRel(param);
|
List<OrderPay> orderPayList = baseMapper.selectOrderPayListRel(param);
|
||||||
Map<Date, List<OrderPay>> orderPayListMap = orderPayList.stream().collect(Collectors.groupingBy(OrderPay::getCreateTime));
|
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<>();
|
List<Dashboard.SalesAmountStatistics> salesAmountStatisticsList = new ArrayList<>();
|
||||||
orderPayListMap.forEach((date, orderPays) -> {
|
|
||||||
Date statisticsDate = DateUtil.parseDate(DateUtil.formatDate(date));//将时间转化为
|
for (int i = 0; i <= endTime - startTime; i++) {
|
||||||
BigDecimal dailySale = orderPays.stream().map(OrderPay::getOrderPrice).reduce(BigDecimal.ZERO, BigDecimal::add);//将相同日期的订单额相加
|
Date statisticsDate = DateUtil.offsetDay(DateUtil.parseDate(param.getCreateTimeStart()), i).toJdkDate();//下一天
|
||||||
Dashboard.SalesAmountStatistics statistics = new Dashboard.SalesAmountStatistics();
|
Dashboard.SalesAmountStatistics statistics = new Dashboard.SalesAmountStatistics();
|
||||||
statistics.setDailySale(dailySale);
|
|
||||||
statistics.setStartStatisticsDate(statisticsDate);
|
statistics.setStartStatisticsDate(statisticsDate);
|
||||||
statistics.setEndStatisticsDate(statisticsDate);
|
statistics.setEndStatisticsDate(statisticsDate);
|
||||||
salesAmountStatisticsList.add(statistics);
|
salesAmountStatisticsList.add(statistics);
|
||||||
});
|
|
||||||
//按照时间排序
|
List<OrderPay> orderPays = orderPayListMap.getOrDefault(statisticsDate, Collections.emptyList());
|
||||||
Collections.sort(salesAmountStatisticsList, Comparator.comparing(Dashboard.BaseStatistics::getStartStatisticsDate));
|
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;
|
return salesAmountStatisticsList;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -195,19 +203,21 @@ public class DashboardServiceImpl extends ServiceImpl<DashboardMapper, Dashboard
|
|||||||
@Override
|
@Override
|
||||||
public List<Dashboard.OrderStatistics> orderStatisticsList(DashBoardParam param) {
|
public List<Dashboard.OrderStatistics> orderStatisticsList(DashBoardParam param) {
|
||||||
List<Order> orderList = baseMapper.selectOrderListRel(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<>();
|
List<Dashboard.OrderStatistics> orderStatisticsList = new ArrayList<>();
|
||||||
orderPayListMap.forEach((date, orderPays) -> {
|
for (int i = 0; i <= endTime - startTime; i++) {
|
||||||
Date statisticsDate = DateUtil.parseDate(DateUtil.formatDate(date));//将时间转化为
|
Date statisticsDate = DateUtil.offsetDay(DateUtil.parseDate(param.getCreateTimeStart()), i).toJdkDate();//下一天
|
||||||
Dashboard.OrderStatistics statistics = new Dashboard.OrderStatistics();
|
Dashboard.OrderStatistics statistics = new Dashboard.OrderStatistics();
|
||||||
statistics.setDailyNewOrders(orderPays.size());
|
|
||||||
statistics.setStartStatisticsDate(statisticsDate);
|
statistics.setStartStatisticsDate(statisticsDate);
|
||||||
statistics.setEndStatisticsDate(statisticsDate);
|
statistics.setEndStatisticsDate(statisticsDate);
|
||||||
orderStatisticsList.add(statistics);
|
orderStatisticsList.add(statistics);
|
||||||
});
|
List<Order> orderPays = orderListMap.getOrDefault(statisticsDate, Collections.emptyList());
|
||||||
//按照时间排序
|
statistics.setDailyNewOrders(orderPays.size());
|
||||||
Collections.sort(orderStatisticsList, Comparator.comparing(Dashboard.BaseStatistics::getStartStatisticsDate));
|
}
|
||||||
return orderStatisticsList;
|
return orderStatisticsList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user