解决续租车辆,还车时间为空的问题

This commit is contained in:
2025-09-28 15:55:54 +08:00
parent d1c4d4bf93
commit f2529153b5
4 changed files with 21 additions and 11 deletions

View File

@ -10,6 +10,7 @@ import org.apache.ibatis.annotations.Update;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Date; import java.util.Date;
import java.util.List;
@Mapper @Mapper
public interface OrderPayMapper { public interface OrderPayMapper {
@ -67,8 +68,8 @@ public interface OrderPayMapper {
@Select("select suborder_id from zc_order_sub where payment_id = #{paymentId} and suborder_type = 'RENTBATTEY' limit 1") @Select("select suborder_id from zc_order_sub where payment_id = #{paymentId} and suborder_type = 'RENTBATTEY' limit 1")
Long getSubOrderIdByTradeNo(@Param("paymentId") String paymentId); Long getSubOrderIdByTradeNo(@Param("paymentId") String paymentId);
@Select("select * from zc_order_sub where payment_id = #{paymentId} order by suborder_id desc limit 1") @Select("select * from zc_order_sub where payment_id = #{paymentId}")
OrderSub getSubOrderByTradeNo(@Param("paymentId") String paymentId); List<OrderSub> listSubOrderByTradeNo(@Param("paymentId") String paymentId);
/** /**
* 免押成功,更新子订单状态 * 免押成功,更新子订单状态

View File

@ -27,6 +27,7 @@ import java.math.BigDecimal;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
@ -424,9 +425,11 @@ public class WechatPayService {
if(OrderStatus.equals("WAIT_PAY")){ if(OrderStatus.equals("WAIT_PAY")){
orderPayMapper.updateOrderStatus(orderMain.getOrderNo(),"WAIT_PICK"); orderPayMapper.updateOrderStatus(orderMain.getOrderNo(),"WAIT_PICK");
}else if (OrderStatus.equals("RERENT_WAIT_PAY") || OrderStatus.equals("RENT_ING")){ }else if (OrderStatus.equals("RERENT_WAIT_PAY")){
OrderSub orderSub = orderPayMapper.getSubOrderByTradeNo(outTradeNo); List<OrderSub> orderSub = orderPayMapper.listSubOrderByTradeNo(outTradeNo);
orderPayMapper.updateOrderStatusAndEndRentTime(orderMain.getOrderNo(),orderSub.getReturnTime(),0,orderMain.getOrderAmount().add(orderSub.getAmount()),"RENT_ING"); OrderSub rentCarSubOrder = orderSub.stream().filter(x -> x.getSuborderType().equals("RENTCAR")).findFirst().orElse( null);
BigDecimal rentCarAmount = orderSub.stream().map(OrderSub::getAmount).reduce(BigDecimal.ZERO,BigDecimal::add);
orderPayMapper.updateOrderStatusAndEndRentTime(orderMain.getOrderNo(),rentCarSubOrder.getReturnTime(),0,orderMain.getOrderAmount().add(rentCarAmount),"RENT_ING");
//发送租电订单同步 //发送租电订单同步
Long batterySubOrderId = orderPayMapper.getSubOrderIdByTradeNo(outTradeNo); Long batterySubOrderId = orderPayMapper.getSubOrderIdByTradeNo(outTradeNo);
logger.info("发送租电订单同步: {}", batterySubOrderId); logger.info("发送租电订单同步: {}", batterySubOrderId);

View File

@ -159,9 +159,12 @@ public class AlipayRentServiceImpl implements AlipayRentService {
if(OrderStatus.equals("WAIT_PAY")){ if(OrderStatus.equals("WAIT_PAY")){
orderPayMapper.updateOrderStatus(orderMain.getOrderNo(),"WAIT_PICK"); orderPayMapper.updateOrderStatus(orderMain.getOrderNo(),"WAIT_PICK");
}else if (OrderStatus.equals("RERENT_WAIT_PAY") || OrderStatus.equals("RENT_ING")){ }else if (OrderStatus.equals("RERENT_WAIT_PAY")){
OrderSub orderSub = orderPayMapper.getSubOrderByTradeNo(outTradeNo); List<OrderSub> orderSub = orderPayMapper.listSubOrderByTradeNo(outTradeNo);
orderPayMapper.updateOrderStatusAndEndRentTime(orderMain.getOrderNo(),orderSub.getReturnTime(),0,orderMain.getOrderAmount().add(orderSub.getAmount()),"RENT_ING"); OrderSub rentCarSubOrder = orderSub.stream().filter(x -> x.getSuborderType().equals("RENTCAR")).findFirst().orElse( null);
BigDecimal rentCarAmount = orderSub.stream().map(OrderSub::getAmount).reduce(BigDecimal.ZERO,BigDecimal::add);
orderPayMapper.updateOrderStatusAndEndRentTime(orderMain.getOrderNo(),rentCarSubOrder.getReturnTime(),0,orderMain.getOrderAmount().add(rentCarAmount),"RENT_ING");
//发送租电订单同步 //发送租电订单同步
Long batterySubOrderId = orderPayMapper.getSubOrderIdByTradeNo(outTradeNo); Long batterySubOrderId = orderPayMapper.getSubOrderIdByTradeNo(outTradeNo);
log.info("发送租电订单同步: {}", batterySubOrderId); log.info("发送租电订单同步: {}", batterySubOrderId);

View File

@ -25,6 +25,7 @@ import org.springframework.stereotype.Service;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import java.util.List;
import java.util.Map; import java.util.Map;
@Slf4j @Slf4j
@ -551,9 +552,11 @@ public class AlipayServiceImpl implements AlipayService {
if(OrderStatus.equals("WAIT_PAY")){ if(OrderStatus.equals("WAIT_PAY")){
orderPayMapper.updateOrderStatus(orderMain.getOrderNo(),"WAIT_PICK"); orderPayMapper.updateOrderStatus(orderMain.getOrderNo(),"WAIT_PICK");
}else if (OrderStatus.equals("RERENT_WAIT_PAY") || OrderStatus.equals("RENT_ING")){ }else if (OrderStatus.equals("RERENT_WAIT_PAY")){
OrderSub orderSub = orderPayMapper.getSubOrderByTradeNo(outTradeNo); List<OrderSub> orderSub = orderPayMapper.listSubOrderByTradeNo(outTradeNo);
orderPayMapper.updateOrderStatusAndEndRentTime(orderMain.getOrderNo(),orderSub.getReturnTime(),0,orderMain.getOrderAmount().add(orderSub.getAmount()),"RENT_ING"); OrderSub rentCarSubOrder = orderSub.stream().filter(x -> x.getSuborderType().equals("RENTCAR")).findFirst().orElse( null);
BigDecimal rentCarAmount = orderSub.stream().map(OrderSub::getAmount).reduce(BigDecimal.ZERO,BigDecimal::add);
orderPayMapper.updateOrderStatusAndEndRentTime(orderMain.getOrderNo(),rentCarSubOrder.getReturnTime(),0,orderMain.getOrderAmount().add(rentCarAmount),"RENT_ING");
//发送租电订单同步 //发送租电订单同步
Long batterySubOrderId = orderPayMapper.getSubOrderIdByTradeNo(outTradeNo); Long batterySubOrderId = orderPayMapper.getSubOrderIdByTradeNo(outTradeNo);
log.info("发送租电订单同步: {}", batterySubOrderId); log.info("发送租电订单同步: {}", batterySubOrderId);