From c61295c7a6ca17857ff629ddb48c2ef65bb691b1 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期六, 14 三月 2026 11:52:47 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java |   55 ++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 50 insertions(+), 5 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 3b7914c..3c34c5a 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
@@ -703,6 +703,22 @@
         // 更新订单状态为已完成(10)
         this.lambdaUpdate().set(XpOrder::getStatus, 10)
                 .eq(XpOrder::getId, order.getId()).update();
+
+
+        // 消息推送
+        Map<String, Object> params = new HashMap<>();
+        Map<String, Object> content = new HashMap<>();
+        content.put("orderId", order.getId().toString());
+        content.put("status", OrderStatusEnum.COMPLETED.getCode());
+        params.put("type", PushMessageTypeEnum.ORDER_STATUS.getDesc());
+        params.put("content", com.alibaba.fastjson2.JSONObject.toJSONString(content));
+        params.put("timestamp", new Date().getTime() + "");
+        String message = JSONObject.toJSONString(params);
+        SendMessageDTO sendMessageDTO = new SendMessageDTO();
+        sendMessageDTO.setMessage(message);
+        sendMessageDTO.setAppUserId(String.valueOf(order.getAppUserId()));
+        xpPushMessageClient.sendStatus(sendMessageDTO);
+        log.info("运营人员取消订单成功,推送乘客消息完成");
         log.info("订单关闭成功,订单ID: {}, 操作人: {}", order.getId(), SecurityUtils.getUsername());
     }
 
@@ -1005,7 +1021,7 @@
     }
 
     @Override
-    public List<XpHistoryStartPointsVo> getHistoryStartPoints(String uid, double lon, double lat) {
+    public List<XpHistoryStartPointsVo> getHistoryStartPoints(String uid, double lon, double lat,Long electronicAreaId) {
         //
         List<XpOrder> xpOrders = this.baseMapper.getHistoryStartPoints(Long.valueOf(uid));
 //        selectList(new LambdaQueryWrapper<XpOrder>().eq(XpOrder::getAppUserId, Long.parseLong(uid)).orderByDesc(BaseModel::getCreateTime).last("LIMIT 10"));
@@ -1043,7 +1059,7 @@
     }
 
     @Override
-    public List<XpHistoryEndPointsVo> getHistoryEndPoints(String uid, double lon, double lat) {
+    public List<XpHistoryEndPointsVo> getHistoryEndPoints(String uid, double lon, double lat,Long electronicAreaId) {
         //
         List<XpOrder> xpOrders = this.baseMapper.getHistoryEndPoints(Long.valueOf(uid));
 //        selectList(new LambdaQueryWrapper<XpOrder>().eq(XpOrder::getAppUserId, Long.parseLong(uid)).orderByDesc(BaseModel::getCreateTime).last("LIMIT 10"));
@@ -1678,7 +1694,7 @@
                     }
                     String durationAndMileage = key.split("\\|")[2];
                     startDetail.setDuration(Double.valueOf(durationAndMileage.split("&")[0]));
-                    startDetail.setMileage(new BigDecimal(durationAndMileage.split("&")[1]));
+                    startDetail.setMileage(new BigDecimal(durationAndMileage.split("&")[1]).multiply(BigDecimal.valueOf(1000)));
                     start.add(startDetail);
                 }
                 // 封装里程费
@@ -1728,7 +1744,19 @@
                 // 封装时长费
                 FareBreakdownDetailVo timeDetail = new FareBreakdownDetailVo();
                 if (key.contains("时长费")) {
-                    timeDetail.setType(startDetail.getType());
+                    if(key.contains("普通时段")){
+                        timeDetail.setType(1);
+                    }
+                    if(key.contains("夜间行驶")){
+                        timeDetail.setType(2);
+                    }
+                    if(key.contains("高峰")){
+                        timeDetail.setType(3);
+                    }
+                    if(key.contains("节假")){
+                        timeDetail.setType(4);
+                    }
+
                     timeDetail.setMoney(stringBigDecimalEntry.getValue());
                     timeDetail.setDuration(Double.valueOf(key.split("&")[1]));
                     duration.add(timeDetail);
@@ -1738,7 +1766,7 @@
                 if (key.contains("远途费")) {
                     longDetail.setType(startDetail.getType());
                     longDetail.setMoney(stringBigDecimalEntry.getValue());
-                    longDetail.setMileage(new BigDecimal(key.split("&")[1]));
+//                    longDetail.setMileage(new BigDecimal(key.split("&")[1]));
                     longDistance.add(longDetail);
                 }
             }
@@ -2424,6 +2452,23 @@
         XpOrder order = this.getById(dto.getOrderId());
         order.setStatus(9);
         order.setAppUserId(null);
+
+
+        if(order.getCouponId()!=null){
+            UseUserCouponDto useUserCouponDto = new UseUserCouponDto();
+            useUserCouponDto.setUserCouponId(order.getCouponId());
+            R<BigDecimal> decimalR = xpAppUserCouponClient.useUserCoupon(useUserCouponDto);
+            if(decimalR.getCode()==200){
+                order.setCouponMoney(decimalR.getData());
+                if(order.getCouponMoney().compareTo(order.getOrderMoney())>0){
+                    order.setPayMoney(BigDecimal.ZERO);
+                    order.setCouponMoney(order.getOrderMoney());
+                }else {
+                    order.setPayMoney(order.getOrderMoney().subtract(decimalR.getData()));
+                }
+            }
+
+        }
         baseMapper.updateById(order);
         return R.ok();
     }

--
Gitblit v1.7.1