From 3cdf10c4a6a246b6c75b51f577e1ea9743cb14bd Mon Sep 17 00:00:00 2001
From: zjk <852185829@qq.com>
Date: 星期三, 15 四月 2026 20:07:08 +0800
Subject: [PATCH] 1.行驶中,车辆故障异常处理,添加订单故障状态字段, 并修改 订单支付金额为0 ,将状态修改成9待评价。
---
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java | 58 ++++++++++++++++++++++++++++++++++++++++------------------
1 files changed, 40 insertions(+), 18 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 804c887..2edff13 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
@@ -1633,6 +1633,7 @@
redisService.setCacheObject("ORDER_STATUS:" + order.getId(), 0, 24L, TimeUnit.HOURS);
return;
}
+ /*
order.setStatus(0);
order.setAppUserId(null);
baseMapper.updateById(order);
@@ -1643,7 +1644,7 @@
xpOrderCancel.setCancelSource(1);
xpOrderCancel.setCancelReason("用户取消订单");
xpOrderCancelService.save(xpOrderCancel);
-
+ */
// 移除mongo数据
xpPricingClient.deleteXpGeoQueryEntity(order.getId().toString());
@@ -1989,6 +1990,15 @@
this.updateById(xpOrder);
//结束行程,修改状态和计算费用
this.endTrip(xpOrder.getId(),appUserId.toString());
+
+ //将支付金额修改成0 并将状态修改成 订单状态9
+ XpOrder xpOrder1 = new XpOrder();
+ xpOrder1.setId(xpOrder.getId());
+ xpOrder1.setPayMoney(BigDecimal.ZERO);
+ xpOrder1.setStatus(OrderStatusEnum.PENDING_PAYMENT.getCode());
+ xpOrder1.setUpdateTime(LocalDateTime.now());
+ baseMapper.updateById(xpOrder1);
+ redisService.setCacheObject("ORDER_STATUS:" + xpOrder.getId(), xpOrder1.getStatus(), 24L, TimeUnit.HOURS);
return R.ok();
}
@@ -2874,26 +2884,20 @@
XpOrder order = this.getById(dto.getOrderId());
order.setStatus(9);
order.setAppUserId(null);
-
- if(order.getCarAbnormal()){//是故障单 支付金额未0 @todo yyy 这里应该有问题
- order.setPayMoney(BigDecimal.ZERO);
- }else{
- 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()));
- }
+ 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);
redisService.setCacheObject("ORDER_STATUS:" + order.getId(), 9, 24L, TimeUnit.HOURS);
return R.ok();
@@ -3458,9 +3462,27 @@
xpOrder.setAppUserId(null);
this.updateById(xpOrder);
}
+ Boolean cancelShow = true; //是否能取消行程
+ xpOrderDetailVO.setCancelShow(cancelShow);
+
+
+
return xpOrderDetailVO;
}
+ /**
+ * 取消行程:若处于“送驾中”且离目的地小于10分钟路程(后台配置),【取消行程】按钮应置灰;
+ * 修改行程:
+ * 1. 当前剩余里程 < 800米 (后台配置)或 剩余时间 < 5分钟(后台配置)(以先到者为准),禁止修改,按钮置灰。
+ * 2. 单次行程最多允许修改 2次 (后台配置)目的地,防恶意高频调用
+ * @return
+ */
+ private Boolean isCancelShow(){
+
+ return true;
+ }
+
+
@Override
public void changeAmount(Long id, BigDecimal amount) {
if (Objects.isNull(id)) {
--
Gitblit v1.7.1