xuhy
2026-04-18 5c66a7f02f62ce8f5293a59b467461b0468c4e51
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
@@ -7,6 +7,7 @@
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.common.collect.ImmutableMap;
@@ -69,6 +70,7 @@
import com.xiaopeng.common.security.utils.SecurityUtils;
import com.xiaopeng.order.constant.I18nKeyConstant;
import com.xiaopeng.order.dto.MileageDto;
import com.xiaopeng.order.dto.UserOrderListDto;
import com.xiaopeng.order.job.base.QuartzManager;
import com.xiaopeng.order.job.base.TimeJobType;
import com.xiaopeng.order.job.jobs.*;
@@ -87,6 +89,8 @@
import com.xiaopeng.order.utils.*;
import com.xiaopeng.order.utils.holiday.HolidayUtil;
import com.xiaopeng.order.vo.OrderDetailVo;
import com.xiaopeng.order.vo.OrderInfoVo;
import com.xiaopeng.order.vo.UserOrderListVo;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.shardingsphere.transaction.annotation.ShardingSphereTransactionType;
@@ -109,6 +113,7 @@
import java.math.RoundingMode;
import java.text.SimpleDateFormat;
import java.time.*;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
@@ -3803,4 +3808,45 @@
        );
        return num.intValue();
    }
    /**
     * 根据 UID 查询用户是否有 RT 订单 & 订单列表
     * @param dto
     * @return
     */
    @Override
    public List<UserOrderListVo> getUserOrderList(UserOrderListDto dto) {
        List<XpOrder> list = this.list(new QueryWrapper<XpOrder>().eq("app_user_id", dto.getUid())
                .eq("is_deleted", 0)
                .eq(dto.getOrderStatus() != null, "status", dto.getOrderStatus())
                .eq(dto.getOrderId() != null, "id", dto.getOrderId())
                .last(" order by create_time desc limit " + dto.getPageNo() + "," + dto.getPageSize())
        );
        List<UserOrderListVo> collect = list.stream().map(order -> {
            UserOrderListVo vo = new UserOrderListVo();
            vo.setOrderId(order.getId());
            vo.setOrderStatus(order.getStatus());
            vo.setOrderCreatedAt(order.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
            XpPoint startPoint = xpPointClient.queryById(order.getStartPointId()).getData();
            vo.setPickupAddress(null != startPoint ? startPoint.getPointAddress() : null);
            XpPoint endPoint = xpPointClient.queryById(order.getEndPointId()).getData();
            vo.setDestAddress(null != endPoint ? endPoint.getPointAddress() : null);
            vo.setTotalPrice(order.getOrderMoney());
            return vo;
        }).collect(Collectors.toList());
        return collect;
    }
    /**
     * 获取订单详情
     * @param orderId
     * @return
     */
    @Override
    public OrderInfoVo getOrderInfo(Long orderId) {
        return null;
    }
}