hjl
2024-07-01 03c6572c7918beaa20365e69c9694a11f0d9948a
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/OrderServiceImpl.java
@@ -5,7 +5,6 @@
import com.alibaba.excel.write.builder.ExcelWriterBuilder;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.admin.entity.*;
@@ -19,7 +18,6 @@
import com.ruoyi.common.core.constant.OrderConstants;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.exception.GlobalException;
import com.ruoyi.common.core.utils.StringUtils;
import org.apache.commons.codec.CharEncoding;
import org.springframework.stereotype.Service;
@@ -32,7 +30,6 @@
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
@@ -64,7 +61,7 @@
    @Override
    public OrderResultVO orderCountHome(OrderCountRequest orderCount) {
        List<String> cityId = orderCount.getCityIdList();
        List<String> cityList = orderCount.getCityList();
        Integer orderState = orderCount.getOrderState();
        String countType = orderCount.getCountType();
        String startTime = orderCount.getStartTime();
@@ -72,13 +69,13 @@
        List<OrderQueryVO> list;
        // 根据查询类型查询订单信息
        if (OrderConstants.YEAR.equals(countType)) {
            list = baseMapper.orderCountByYear(cityId, orderState, startTime, endTime);
            list = baseMapper.orderCountByYear(cityList, orderState, startTime, endTime);
        } else if (OrderConstants.MONTH.equals(countType)) {
            list = baseMapper.orderCountByMonth(cityId, orderState, startTime, endTime);
            list = baseMapper.orderCountByMonth(cityList, orderState, startTime, endTime);
        } else if (OrderConstants.WEEK.equals(countType)) {
            list = baseMapper.orderCountByWeek(cityId, orderState, startTime, endTime);
            list = baseMapper.orderCountByWeek(cityList, orderState, startTime, endTime);
        } else if (OrderConstants.TODAY.equals(countType)) {
            list = baseMapper.orderCountByToday(cityId, orderState, startTime, endTime);
            list = baseMapper.orderCountByToday(cityList, orderState, startTime, endTime);
        } else {
            list = new ArrayList<>();
        }
@@ -96,18 +93,18 @@
    }
    @Override
    public BigDecimal totalMoneyByQuarter(String startDateStr, String endDateStr, List<String> cityIdList) {
        return baseMapper.totalMoneyByQuarter(startDateStr, endDateStr, cityIdList);
    public BigDecimal totalMoneyByQuarter(String startDateStr, String endDateStr, List<String> cityList) {
        return baseMapper.totalMoneyByQuarter(startDateStr, endDateStr, cityList);
    }
    @Override
    public BigDecimal totalMoneyByYear(List<String> cityIdList) {
        return baseMapper.totalMoneyByYear(cityIdList);
    public BigDecimal totalMoneyByYear(List<String> cityList) {
        return baseMapper.totalMoneyByYear(cityList);
    }
    @Override
    public BigDecimal totalMoneyByMonth(List<String> cityIdList) {
        return baseMapper.totalMoneyByMonth(cityIdList);
    public BigDecimal totalMoneyByMonth(List<String> cityList) {
        return baseMapper.totalMoneyByMonth(cityList);
    }
    @Override
@@ -141,32 +138,9 @@
    @Override
    public IPage<Order> queryPage(OrderQueryRequest orderQueryRequest) {
        // 查询参数
        String orderNumber = orderQueryRequest.getOrderNumber();
        String cityName = orderQueryRequest.getCityName();
        String reservationName = orderQueryRequest.getReservationName();
        String reservationPhone = orderQueryRequest.getReservationPhone();
        Integer state = orderQueryRequest.getState();
        String workerName = orderQueryRequest.getWorkerName();
        String workerPhone = orderQueryRequest.getWorkerPhone();
        Date orderTime = orderQueryRequest.getOrderTime();
        Date time = orderQueryRequest.getTime();
        String serveName = orderQueryRequest.getServeName();
        Page<Order> page = Page.of(orderQueryRequest.getPageNum(), orderQueryRequest.getPageSize());
        // 构建查询体
        LambdaQueryChainWrapper<Order> wrapper = lambdaQuery();
        wrapper = StringUtils.isNotBlank(orderNumber) ? wrapper.like(Order::getOrderNumber, orderNumber) : wrapper;
        wrapper = StringUtils.isNotBlank(cityName) ? wrapper.like(Order::getReservationAddress, cityName) : wrapper;
        wrapper = StringUtils.isNotBlank(reservationName) ? wrapper.like(Order::getReservationName, reservationName) : wrapper;
        wrapper = StringUtils.isNotBlank(reservationPhone) ? wrapper.like(Order::getReservationPhone, reservationPhone) : wrapper;
        wrapper = null != state ? wrapper.eq(Order::getState, state) : wrapper;
        wrapper = StringUtils.isNotBlank(workerName) ? wrapper.like(Order::getServerName, workerName) : wrapper;
        wrapper = StringUtils.isNotBlank(workerPhone) ? wrapper.like(Order::getServerPhone, workerPhone) : wrapper;
        wrapper = null != orderTime ? wrapper.eq(Order::getCreateTime, orderTime) : wrapper;
        wrapper = null != time ? wrapper.eq(Order::getTime, time) : wrapper;
        wrapper = StringUtils.isNotBlank(serveName) ? wrapper.like(Order::getServeName, serveName) : wrapper;
        // 基础查询
        return wrapper.eq(Order::getIsDelete, 0).orderByDesc(Order::getCreateTime).page(page);
        return baseMapper.queryPage(orderQueryRequest, page);
    }
    @Override
@@ -276,4 +250,35 @@
    public IPage<OrderCountVO> orderCount(String name, String phone, Page<OrderCountVO> page) {
        return baseMapper.orderCount(name, phone, page);
    }
    @Override
    public OrderPageCountVO orderPageCount(OrderQueryRequest orderQueryRequest) {
        List<Order> orderList = baseMapper.orderPageCount(orderQueryRequest);
        int total = 0;
        int toBeDispatched = 0;
        int stayDoorstep = 0;
        int toBeCompleted = 0;
        int completed = 0;
        int canceled = 0;
        int reInvestment = 0;
        for (Order order : orderList) {
            total++;
            Integer state = order.getState();
            if (Constants.ZERO.equals(state)) {
                toBeDispatched++;
            } else if (Constants.ONE.equals(state)) {
                stayDoorstep++;
            } else if (Constants.TWO.equals(state)) {
                toBeCompleted++;
            } else if (Constants.THREE.equals(state)) {
                completed++;
            } else if (Constants.FOUR.equals(state)) {
                canceled++;
            } else if (Constants.FIVE.equals(state)) {
                reInvestment++;
            }
        }
        return new OrderPageCountVO(total, toBeDispatched, stayDoorstep,
                toBeCompleted, completed, canceled, reInvestment);
    }
}