From 5c863676b014e5ae2fa601d89a83160b6e7a6c07 Mon Sep 17 00:00:00 2001
From: “mitao” <“2763622819@qq.com”>
Date: 星期五, 15 五月 2026 18:07:26 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/1.1' into 1.1

---
 xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java |   89 +++++++++++++++++++++++++++++++++++++-------
 1 files changed, 74 insertions(+), 15 deletions(-)

diff --git a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
index b587e5d..9849bf4 100644
--- a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
+++ b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
@@ -22,9 +22,7 @@
 import com.xiaopeng.api.dto.map.RouteAndFareDto;
 import com.xiaopeng.api.dto.operation.LonLatDto;
 import com.xiaopeng.api.dto.order.*;
-import com.xiaopeng.api.dto.payFront.CreditOrderCreateDto;
-import com.xiaopeng.api.dto.payFront.CreditPaySignQueryDto;
-import com.xiaopeng.api.dto.payFront.CreditPrecreateDto;
+import com.xiaopeng.api.dto.payFront.*;
 import com.xiaopeng.api.dto.pushMessage.SendMessageDTO;
 import com.xiaopeng.api.dto.statistics.DailyCountDTO;
 import com.xiaopeng.api.dto.statistics.OrderStatisticsDTO;
@@ -61,10 +59,8 @@
 import com.xiaopeng.api.vo.operation.NearestNextVo;
 import com.xiaopeng.api.vo.operation.RouteVo;
 import com.xiaopeng.api.vo.order.*;
-import com.xiaopeng.api.vo.payFront.CreditOrderCreateVo;
-import com.xiaopeng.api.vo.payFront.CreditPaySignQueryVo;
+import com.xiaopeng.api.vo.payFront.*;
 import com.xiaopeng.api.vo.order.FareBreakdownVo;
-import com.xiaopeng.api.vo.payFront.CreditPrecreateVo;
 import com.xiaopeng.api.vo.vehicleConvoy.AddTaxiPassengerVo;
 import com.xiaopeng.api.vo.vehicleConvoy.BluetoothDeliverVo;
 import com.xiaopeng.api.vo.vehicleConvoy.CancelTaxiPassengerVo;
@@ -78,6 +74,7 @@
 import com.xiaopeng.common.core.exception.ServiceException;
 import com.xiaopeng.common.core.utils.DateUtils;
 import com.xiaopeng.common.core.utils.GeodesyUtil;
+import com.xiaopeng.common.core.utils.OrderCodeUtil;
 import com.xiaopeng.common.core.utils.StringUtils;
 import com.xiaopeng.common.core.web.domain.BaseModel;
 import com.xiaopeng.common.core.web.page.PageInfo;
@@ -3327,6 +3324,8 @@
     public R payment(XpOrderPayDto dto, String uid) {
 
 
+        XpOrder order = this.getById(dto.getOrderId());
+
         HashMap<String, Object> resultMap = new HashMap<>();
 
         // 1.0 免密  //查询是否开通免密
@@ -3336,7 +3335,7 @@
         creditPaySignQueryDto.setUid(Long.valueOf(uid));
         creditPaySignQueryDto.setBusinessId("xp-robotaxi");
         creditPaySignQueryDto.setCategory("009001");
-        creditPaySignQueryDto.setBusinessOrderId("");
+        creditPaySignQueryDto.setBusinessOrderId(OrderCodeUtil.getOrderCode("MMZF"));
         R<CreditPaySignQueryVo> creditPaySignQueryVoR = xpPayFrontClient.queryCreditPaySign(creditPaySignQueryDto);
         if (creditPaySignQueryVoR.getCode()==200) {
             CreditPaySignQueryVo data = creditPaySignQueryVoR.getData();
@@ -3353,9 +3352,9 @@
             CreditOrderCreateDto creditOrderCreateDto = new CreditOrderCreateDto();
             creditOrderCreateDto.setUid(Long.valueOf(uid));
             creditOrderCreateDto.setBusinessId("xp-robotaxi");
-            creditOrderCreateDto.setCategory("xp_robotaxi_api");
+            creditOrderCreateDto.setCategory("009001");
             creditOrderCreateDto.setBusinessOrderId("");
-            creditOrderCreateDto.setSubject("009001");
+            creditOrderCreateDto.setSubject("小鹏集团|robotaxi");
             creditOrderCreateDto.setPayType("13");
 
 
@@ -3371,6 +3370,10 @@
                 CreditOrderCreateVo data = creditOrderCreateVoR.getData();
                 resultMap.put("status", 1);
                 resultMap.put("value", data);
+
+                order.setPayType(3);
+                order.setAuthOrderId(data.getAuthOrderId());
+
                 return R.ok(resultMap);
             }
 
@@ -3378,7 +3381,6 @@
 
             // 未签约
             // 调用预下单接口
-            XpOrder order = this.getById(dto.getOrderId());
             CreditPrecreateDto creditPrecreateDto = new CreditPrecreateDto();
             creditPrecreateDto.setUid(uid);
             creditPrecreateDto.setBizId("xp-robotaxi");
@@ -4705,6 +4707,59 @@
         return vo;
     }
 
+    /**
+     * 查询订单状态
+     * @param orderId
+     * @return
+     */
+    @Override
+    public OrderStatusFromOrderIdVo queryOrderStatusFromOrderId(Long orderId) {
+
+        XpOrder order = this.getById(orderId);
+        if(order==null){
+            return null;
+        }
+        if(order.getPayType()==3){
+            // 免密查询 如果成功则调用结算
+            CreditOrderQueryDto dto = new CreditOrderQueryDto();
+            dto.setBusinessOrderId(OrderCodeUtil.getOrderCode("MMZF"));
+            dto.setAuthOrderId(order.getAuthOrderId());
+            dto.setPayType("13");
+            R<CreditOrderQueryVo> creditOrderQueryVoR = xpPayFrontClient.queryCreditOrder(dto);
+            if(creditOrderQueryVoR.getCode()==200){
+                CreditOrderQueryVo creditOrderQueryVo = creditOrderQueryVoR.getData();
+                if(creditOrderQueryVo.getCreditOrderStatus().equals("DONE")){
+                    // 订单确认 需要吊起扣款
+                    CreditOrderWxPayDto creditOrderWxPayDto = new CreditOrderWxPayDto();
+                    creditOrderWxPayDto.setBusinessOrderId(OrderCodeUtil.getOrderCode("MMZF"));
+                    creditOrderWxPayDto.setAuthOrderId(order.getAuthOrderId());
+                    creditOrderWxPayDto.setPayCallbackUrl("13");
+                    creditOrderWxPayDto.setTotalAmount( order.getOrderMoney().multiply(BigDecimal.valueOf(100)).longValue());
+                    creditOrderWxPayDto.setSubject("小鹏集团|robotaxi");
+                    creditOrderWxPayDto.setPayType("13");
+
+                    List<CreditOrderCreateDto.PostPayment> postPayments = new ArrayList<>();
+                    CreditOrderCreateDto.PostPayment postPayment = new CreditOrderCreateDto.PostPayment();
+                    postPayment.setName("收费标准");
+                    postPayment.setDescription("行程价格动态浮动,具体详情可在费用详情或计价规则查看");
+                    postPayments.add(postPayment);
+                    creditOrderWxPayDto.setPostPayments(postPayments);
+                    R<CreditOrderWxPayVo> creditOrderWxPayVoR = xpPayFrontClient.creditOrderWxPay(creditOrderWxPayDto);
+                }else if(creditOrderQueryVo.getCreditOrderStatus().equals("CREATED") || creditOrderQueryVo.getCreditOrderStatus().equals("DOING")){
+
+                }
+            }
+
+        }else {
+            // 微信支付也需要查询下
+
+        }
+        OrderStatusFromOrderIdVo orderStatusFromOrderIdVo = new OrderStatusFromOrderIdVo();
+        orderStatusFromOrderIdVo.setOrderId(order.getId());
+        orderStatusFromOrderIdVo.setStatus(order.getStatus());
+        return orderStatusFromOrderIdVo;
+    }
+
 
     /**
      * 发票列表
@@ -4714,18 +4769,22 @@
     @Override
     public List<XpInvoiceVo> invoiceList(XpOrderInvoiceQuery query) {
 
-        // 格式:yyyyMM 转yyyy-MM
-        query.setStartTime(query.getStartTime().substring(0, 4) + "-" + query.getStartTime().substring(4, 6));
-        query.setEndTime(query.getEndTime().substring(0, 4) + "-" + query.getEndTime().substring(4, 6));
+        DateTimeFormatter monthFormatter = DateTimeFormatter.ofPattern("yyyyMM");
+        LocalDateTime startTime = YearMonth.parse(query.getStartTime(), monthFormatter)
+                .atDay(1)
+                .atStartOfDay();
+        LocalDateTime endTime = YearMonth.parse(query.getEndTime(), monthFormatter)
+                .atEndOfMonth()
+                .atTime(23, 59, 59);
 
         List<XpOrder> list =null;
         // 通过uid 和时间查出来数据  先判断是否传入了分页
         if (query.getPageNo()!=null && query.getPageSize()!=null) {
             Page<XpOrder> page = new Page<>(query.getPageNo(), query.getPageSize());
-            Page<XpOrder> orderPage = this.baseMapper.selectPage(page, new LambdaQueryWrapper<XpOrder>().eq(XpOrder::getAppUserId, Long.valueOf(query.getUid())).ge(XpOrder::getStatus, 9).between(BaseModel::getCreateTime, query.getStartTime(), query.getEndTime()));
+            Page<XpOrder> orderPage = this.baseMapper.selectPage(page, new LambdaQueryWrapper<XpOrder>().eq(XpOrder::getAppUserId, Long.valueOf(query.getUid())).ge(XpOrder::getStatus, 9).between(BaseModel::getCreateTime, startTime, endTime));
             list = orderPage.getRecords();
         }else {
-            list = this.baseMapper.selectList(new LambdaQueryWrapper<XpOrder>().eq(XpOrder::getAppUserId, Long.valueOf(query.getUid())).ge(XpOrder::getStatus, 9).between(BaseModel::getCreateTime, query.getStartTime(), query.getEndTime()));
+            list = this.baseMapper.selectList(new LambdaQueryWrapper<XpOrder>().eq(XpOrder::getAppUserId, Long.valueOf(query.getUid())).ge(XpOrder::getStatus, 9).between(BaseModel::getCreateTime, startTime, endTime));
         }
 
         if(list.isEmpty()){

--
Gitblit v1.7.1