增加接触免押状态

This commit is contained in:
2025-09-26 22:49:40 +08:00
parent 90559cff06
commit 652573f9ef
2 changed files with 28 additions and 4 deletions

View File

@ -14,6 +14,7 @@ public enum PayStatusEnum {
INIT("INIT", "初始化"),
USERPAYING("USERPAYING", "用户支付中"),
SUCCESS("SUCCESS", "支付成功"),
UNFREEZE_SUCCESS("UNFREEZE_SUCCESS", "解除免押成功"),
PAYERROR("PAYERROR", "支付失败"),
REFUNDING("REFUNDING", "退款中"),
REFUND_SUCCESS("REFUND_SUCCESS", "退款成功"),

View File

@ -17,10 +17,7 @@ import com.sczx.order.service.OrderDistribService;
import com.sczx.order.service.OrderService;
import com.sczx.order.service.PayService;
import com.sczx.order.thirdpart.dto.*;
import com.sczx.order.thirdpart.dto.req.AlipayCloseRequest;
import com.sczx.order.thirdpart.dto.req.AlipayFundFreezeRequest;
import com.sczx.order.thirdpart.dto.req.AlipayQueryFreezeRequest;
import com.sczx.order.thirdpart.dto.req.CarQueryConditionReq;
import com.sczx.order.thirdpart.dto.req.*;
import com.sczx.order.thirdpart.integration.CarInteg;
import com.sczx.order.thirdpart.integration.PayInteg;
import com.sczx.order.thirdpart.integration.StoreInteg;
@ -1074,6 +1071,9 @@ public class OrderServiceImpl implements OrderService {
if(!orderMainPO.getStoreId().equals(carDTO.getStoreId())){
throw new BizException("此车辆不属于当前门店");
}
if(!Objects.equals(orderMainPO.getCarModelId(), carDTO.getModelId())){
throw new BizException("不能绑定此车型:"+carDTO.getModelName()+",的车辆");
}
if(!orderMainPO.getOrderStatus().equals(OrderStatusEnum.WAIT_PICK.getCode())){
throw new BizException("订单状态异常,非待取车状态");
}
@ -1341,6 +1341,29 @@ public class OrderServiceImpl implements OrderService {
orderSubRepo.save(fdSubOrder);
}
}
//免押订单,则还需要解除免押
orderSubWrapper = new LambdaQueryWrapper<>();
orderSubWrapper.eq(OrderSubPO::getOrderId, orderDTO.getOrderId())
.eq(OrderSubPO::getDelFlag, "0")
.eq(OrderSubPO::getSuborderType, SubOrderTypeEnum.NO_DEPOSIT.getCode())
.eq(OrderSubPO::getPayStatus, PayStatusEnum.SUCCESS).last(" limit 1");
OrderSubPO noDepositOrder = orderSubRepo.getOne(orderSubWrapper);
if (Objects.nonNull(noDepositOrder)) {
AlipayFinishFreezeRequest alipayFinishFreezeRequest = new AlipayFinishFreezeRequest();
alipayFinishFreezeRequest.setCompanyId(orderDTO.getOperatorId().toString());
alipayFinishFreezeRequest.setAuthNo(noDepositOrder.getTransactionId());
alipayFinishFreezeRequest.setOutRequestNo(noDepositOrder.getPaymentId());
alipayFinishFreezeRequest.setAmount(noDepositOrder.getAmount().toString());
AlipayResponse result = payInteg.finishFreeze(alipayFinishFreezeRequest);
if (result.isSuccess()) {
//解冻成功更新状态为解冻成功
LambdaUpdateWrapper<OrderSubPO> updatenoDepositWrapper = new LambdaUpdateWrapper<>();
updatenoDepositWrapper.set(OrderSubPO::getPayStatus, PayStatusEnum.UNFREEZE_SUCCESS.getCode())
.eq(OrderSubPO::getSuborderId, noDepositOrder.getSuborderId());
orderSubRepo.update(updatenoDepositWrapper);
}
}
});
return orderDTO;
}