8.9
luodangjia
2024-08-09 02e99e878911715d2785e371ae6fb576597578b0
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
@@ -4,7 +4,9 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.core.constant.Constants;
import com.ruoyi.common.core.constant.OrderConstants;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.GaoDeMapUtil;
import com.ruoyi.common.core.vo.AddressDto;
import com.ruoyi.common.core.vo.Path;
import com.ruoyi.order.entity.ChangeDispatch;
import com.ruoyi.order.entity.Order;
@@ -13,6 +15,7 @@
import com.ruoyi.order.service.ChangeDispatchService;
import com.ruoyi.order.service.OrderService;
import com.ruoyi.order.vo.*;
import com.ruoyi.user.api.feignClient.UserClient;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -43,6 +46,8 @@
    @Resource
    private ChangeDispatchService changeDispatchService;
    @Resource
    private UserClient userClient;
    @Override
    public OrderResultVO orderCountHome(OrderCountRequest orderCount) {
@@ -71,11 +76,11 @@
                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);
                    list = baseMapper.orderCountByTimeRangeYear(cityList, startTime, endTime, orderState);
                } else if (diffInDays > Constants.THIRTY) {
                    list = baseMapper.orderCountByTimeRangeMonth(cityList, startTime, endTime,orderState);
                    list = baseMapper.orderCountByTimeRangeMonth(cityList, startTime, endTime, orderState);
                } else {
                    list = baseMapper.orderCountByTimeRange(cityList, startTime, endTime,orderState);
                    list = baseMapper.orderCountByTimeRange(cityList, startTime, endTime, orderState);
                }
            } catch (ParseException e) {
                list = new ArrayList<>();
@@ -84,18 +89,23 @@
        // 计算订单总额及总订单数量
        BigDecimal totalMoney;
        int orderNumber;
        int fakeNumber;
        if (list.isEmpty()) {
            totalMoney = BigDecimal.ZERO;
            orderNumber = 0;
            fakeNumber = 0;
        } else {
            totalMoney = list.stream().map(OrderQueryVO::getTotalPrice)
                    .filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
            orderNumber = list.stream().filter(order -> order.getNumber() != null)
                    .mapToInt(OrderQueryVO::getNumber).sum();
            fakeNumber = list.stream().filter(order -> order.getFakeCount() != null)
                    .mapToInt(OrderQueryVO::getNumber).sum();
        }
        return new
                OrderResultVO(totalMoney, orderNumber, list);
                OrderResultVO(totalMoney, orderNumber, list,fakeNumber);
    }
@@ -131,8 +141,8 @@
    @Override
    public Page<OrderCountVO> orderCount(String name, String phone, Page<OrderCountVO> page) {
        return baseMapper.orderCount(name, phone, page);
    public Page<OrderCountVO> orderCount(String name, String phone, List<String> cityList, Page<OrderCountVO> page) {
        return baseMapper.orderCount(name, phone, cityList, page);
    }
    @Override
@@ -245,6 +255,9 @@
    @Override
    public Boolean placeOrder(UserOrderRequest userOrderRequest) {
        R<AddressDto> cityCode = userClient.getCityCode(userOrderRequest.getAddressId());
        // 下单参数
        String orderNumber = userOrderRequest.getOrderNumber();
        Integer serveId = userOrderRequest.getServeId();
@@ -269,7 +282,7 @@
        order.setUserId(userId);
        order.setReservationName(reservationName);
        order.setReservationPhone(reservationPhone);
        order.setReservationAddress(address);
        order.setReservationAddress(address+cityCode.getData().getName());
        order.setTime(time);
        order.setReservationRemark(reservationRemark);
        order.setOrderMoney(defaultPrice.add(new BigDecimal(String.valueOf(subsidy))));
@@ -280,11 +293,23 @@
        order.setIsWithdrawal(Constants.ZERO);
        order.setSubsidy(subsidy);
        order.setAddress(addressDetail);
        order.setIsEvaluate(Constants.ZERO);
        order.setCity(cityCode.getData().getCity());
        order.setCityCode(cityCode.getData().getCityCode());
        return this.save(order);
    }
    @Override
    public String orderEstimate(UserOrderRequest userOrderRequest) {
        R<AddressDto> cityCode = userClient.getCityCode(userOrderRequest.getAddressId());
        R<BigDecimal> servePrice = userClient.getServePrice(userOrderRequest.getServeId(), cityCode.getData().getCityCode());
        if (servePrice.getData()!=null){
            userOrderRequest.setDefaultPrice(servePrice.getData());
        }
        // 下单参数
        String orderNumber = userOrderRequest.getOrderNumber();
        Integer serveId = userOrderRequest.getServeId();
@@ -307,12 +332,13 @@
        order.setServeName(serveName);
        order.setServePrice(defaultPrice);
        order.setUserId(userId);
        order.setIsEvaluate(Constants.ZERO);
        order.setReservationName(reservationName);
        order.setReservationPhone(reservationPhone);
        if (null == userOrderRequest.getAddressId()) {
            order.setReservationAddress(addressDetail);
            order.setReservationAddress(cityCode.getData().getName()+address+cityCode.getData().getDetail());
        } else {
            order.setReservationAddress(address);
            order.setReservationAddress(address+cityCode.getData().getName()+cityCode.getData().getDetail());
        }
        order.setTime(time);
        order.setReservationRemark(reservationRemark);
@@ -327,7 +353,9 @@
        order.setLatitude(latitude);
        order.setIsWithdrawal(Constants.ZERO);
        order.setSubsidy(subsidy);
        order.setAddress(addressDetail);
        order.setAddress("");
        order.setCity(cityCode.getData().getCity());
        order.setCityCode(cityCode.getData().getCityCode());
        this.save(order);
        return String.valueOf(order.getId());
    }