hjl
2024-07-18 b9da8289051937fbbbd47bbda97414ad6c769a90
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
@@ -18,11 +18,14 @@
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.Month;
import java.time.Year;
import java.time.temporal.TemporalAdjusters;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;
@@ -51,15 +54,32 @@
        List<OrderQueryVO> list;
        // 根据查询类型查询订单信息
        if (OrderConstants.YEAR.equals(countType)) {
            list = baseMapper.orderCountByYear(cityList, orderState, startTime, endTime);
            list = baseMapper.orderCountByYear(cityList, orderState);
        } else if (OrderConstants.MONTH.equals(countType)) {
            list = baseMapper.orderCountByMonth(cityList, orderState, startTime, endTime);
            list = baseMapper.orderCountByMonth(cityList, orderState);
        } else if (OrderConstants.WEEK.equals(countType)) {
            list = baseMapper.orderCountByWeek(cityList, orderState, startTime, endTime);
            list = baseMapper.orderCountByWeek(cityList, orderState);
        } else if (OrderConstants.TODAY.equals(countType)) {
            list = baseMapper.orderCountByToday(cityList, orderState, startTime, endTime);
            list = baseMapper.orderCountByToday(cityList, orderState);
        } else {
            list = new ArrayList<>();
            try {
                startTime = startTime + " 00:00:00";
                endTime = endTime + " 00:00:00";
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                Date date1 = sdf.parse(startTime);
                Date date2 = sdf.parse(endTime);
                long diffInMillis = date2.getTime() - date1.getTime();
                long diffInDays = diffInMillis / (24 * 60 * 60 * 1000);
                if (diffInDays > Constants.YEAR_DAY) {
                    list = baseMapper.orderCountByTimeRangeYear(cityList, startTime, endTime,orderState);
                } else if (diffInDays > Constants.THIRTY) {
                    list = baseMapper.orderCountByTimeRangeMonth(cityList, startTime, endTime,orderState);
                } else {
                    list = baseMapper.orderCountByTimeRange(cityList, startTime, endTime,orderState);
                }
            } catch (ParseException e) {
                list = new ArrayList<>();
            }
        }
        // 计算订单总额及总订单数量
        BigDecimal totalMoney;
@@ -73,7 +93,10 @@
            orderNumber = list.stream().filter(order -> order.getNumber() != null)
                    .mapToInt(OrderQueryVO::getNumber).sum();
        }
        return new OrderResultVO(totalMoney, orderNumber, list);
        return new
                OrderResultVO(totalMoney, orderNumber, list);
    }
    @Override
@@ -136,7 +159,7 @@
            } else if (Constants.FOUR.equals(state)) {
                canceled++;
            }
            if (order.getIsReinvest() != null && order.getIsReinvest() == 1) {
            if (order.getState().equals(Constants.SIX)) {
                reInvestment++;
            }
        }