From a5e4c4c7ffd5ad80c3d4b2f1fff69ce9b071bdcf Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期一, 20 四月 2026 14:58:08 +0800
Subject: [PATCH] Merge branch '1.0' of http://120.76.84.145:10101/gitblit/r/java/Robotaxi into 1.0
---
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java | 26 +++++++++++++++++++++-----
1 files changed, 21 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 a3d98c3..1c9f8a7 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
@@ -547,14 +547,14 @@
@Override
@Transactional
@ShardingSphereTransactionType(TransactionType.BASE)
- public void cancelOrCloseOrder(Long orderId, Integer type) {
+ public void cancelOrCloseOrder(Long orderId, Integer type,Boolean isFree) {
// 1. 校验订单是否存在
XpOrder order = this.getById(orderId);
if (Objects.isNull(order)) {
throw new ServiceException("订单不存在");
}
- // 2. 校验操作类型
+ // 2. 校验操作类型 操作类型:1=取消订单,2=关闭订单
if (type != 1 && type != 2) {
throw new ServiceException("操作类型错误,type只能为1或2");
}
@@ -568,6 +568,9 @@
throw new ServiceException("当前订单状态不允许取消,只有待接单、待出发、接驾中状态的订单可以取消", I18nKeyConstant.ORDER_CANCEL_FAILED);
}
} else {
+ if(isFree == null){
+ throw new ServiceException("是否豁免费用不能为空", I18nKeyConstant.ORDER_CLOSE_FAILED);
+ }
// 关闭订单:0=已取消,1=待接单,2=待出发,3=接驾中,4=待客上车,5=乘客已上车,6=服务中 状态可以关闭
if (currentStatus == 7 || currentStatus == 8 || currentStatus == 9 || currentStatus == 10) {
throw new ServiceException("当前订单状态不允许关闭", I18nKeyConstant.ORDER_CLOSE_FAILED);
@@ -581,6 +584,9 @@
} else {
// 关闭订单
closeOrder(order);
+ if(isFree){
+ this.setFree(order.getId());
+ }
}
}
@@ -2073,15 +2079,25 @@
this.endTrip(xpOrder.getId(),appUserId.toString());
//将支付金额修改成0 并将状态修改成 订单状态9
+ setFree(xpOrder.getId());
+ return R.ok();
+ }
+
+ /**
+ * 豁免
+ */
+ public void setFree(Long id){
+
+ //将支付金额修改成0 并将状态修改成 订单状态9
XpOrder xpOrder1 = new XpOrder();
- xpOrder1.setId(xpOrder.getId());
+ xpOrder1.setId(id);
+ xpOrder1.setIsFree( true);//豁免
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);
+ redisService.setCacheObject("ORDER_STATUS:" + id, xpOrder1.getStatus(), 24L, TimeUnit.HOURS);
- return R.ok();
}
--
Gitblit v1.7.1