解除免押,取消订单问题
This commit is contained in:
@ -46,7 +46,7 @@ public interface PayService {
|
||||
* @param authCode
|
||||
* @return
|
||||
*/
|
||||
boolean finishFreezeOrder(Long companyId,String outOrderNo, String authCode);
|
||||
boolean finishFreezeOrder(Long companyId,String outOrderNo, String authCode, BigDecimal freezeFee);
|
||||
|
||||
/**
|
||||
* 取消冻结
|
||||
|
||||
@ -593,6 +593,7 @@ public class OrderServiceImpl implements OrderService {
|
||||
,orderAmount);
|
||||
}
|
||||
|
||||
@Transactional
|
||||
@Override
|
||||
public void cancelOrder(PayOrderReq payOrderReq,OrderMainPO orderMainPO) {
|
||||
log.info("开始取消订单");
|
||||
@ -606,7 +607,7 @@ public class OrderServiceImpl implements OrderService {
|
||||
|
||||
LambdaQueryWrapper<OrderSubPO> orderSubQueryWrapper = new LambdaQueryWrapper<>();
|
||||
orderSubQueryWrapper.eq(OrderSubPO::getOrderId, orderMainPO.getOrderId());
|
||||
orderSubQueryWrapper.in(OrderSubPO::getPayStatus, Arrays.asList(PayStatusEnum.USERPAYING.getCode(), PayStatusEnum.INIT.getCode()));
|
||||
orderSubQueryWrapper.in(OrderSubPO::getPayStatus, Arrays.asList(PayStatusEnum.USERPAYING.getCode(), PayStatusEnum.INIT.getCode(), PayStatusEnum.SUCCESS.getCode()));
|
||||
orderSubQueryWrapper.orderByDesc(OrderSubPO::getCreatedAt);
|
||||
List<OrderSubPO> orderSubPOList = orderSubRepo.list(orderSubQueryWrapper);
|
||||
boolean closePayOrder = false;
|
||||
@ -634,11 +635,11 @@ public class OrderServiceImpl implements OrderService {
|
||||
//不管取消是否成功,都要删除订单
|
||||
closePayOrder = true;
|
||||
}else {
|
||||
closePayOrder = payService.finishFreezeOrder(Long.valueOf(companyStoreDTO.getOperatingCompanyId()),noDepositOrder.getPaymentId(),noDepositOrder.getTransactionId());
|
||||
closePayOrder = payService.finishFreezeOrder(Long.valueOf(companyStoreDTO.getOperatingCompanyId()),noDepositOrder.getPaymentId(),noDepositOrder.getTransactionId(),noDepositOrder.getAmount());
|
||||
}
|
||||
|
||||
} else if(StringUtils.equalsIgnoreCase(noDepositOrder.getPayStatus(), PayStatusEnum.SUCCESS.getCode())){
|
||||
closePayOrder = payService.finishFreezeOrder(Long.valueOf(companyStoreDTO.getOperatingCompanyId()),noDepositOrder.getPaymentId(),noDepositOrder.getTransactionId());
|
||||
closePayOrder = payService.finishFreezeOrder(Long.valueOf(companyStoreDTO.getOperatingCompanyId()),noDepositOrder.getPaymentId(),noDepositOrder.getTransactionId(),noDepositOrder.getAmount());
|
||||
}
|
||||
if (closePayOrder) {
|
||||
//解冻成功更新状态为解冻成功
|
||||
@ -1398,7 +1399,7 @@ public class OrderServiceImpl implements OrderService {
|
||||
.eq(OrderSubPO::getPayStatus, PayStatusEnum.SUCCESS).last(" limit 1");
|
||||
OrderSubPO noDepositOrder = orderSubRepo.getOne(orderSubWrapper);
|
||||
if (Objects.nonNull(noDepositOrder)) {
|
||||
boolean result = payService.finishFreezeOrder(orderDTO.getOperatorId(),noDepositOrder.getPaymentId(),noDepositOrder.getTransactionId());
|
||||
boolean result = payService.finishFreezeOrder(orderDTO.getOperatorId(),noDepositOrder.getPaymentId(),noDepositOrder.getTransactionId(),noDepositOrder.getAmount());
|
||||
if (result) {
|
||||
//解冻成功更新状态为解冻成功
|
||||
LambdaUpdateWrapper<OrderSubPO> updatenoDepositWrapper = new LambdaUpdateWrapper<>();
|
||||
|
||||
@ -103,12 +103,13 @@ public class PayServiceImpl implements PayService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean finishFreezeOrder(Long companyId, String outOrderNo, String authCode) {
|
||||
public boolean finishFreezeOrder(Long companyId, String outOrderNo, String authCode, BigDecimal freezeFee) {
|
||||
log.info("开始完结支付宝押金冻结支付单");
|
||||
AlipayFinishFreezeRequest finishFreezeRequest = new AlipayFinishFreezeRequest();
|
||||
finishFreezeRequest.setCompanyId(companyId.toString());
|
||||
finishFreezeRequest.setAuthNo(authCode);
|
||||
finishFreezeRequest.setOutRequestNo(OrderUtil.generateSubOrderNo(OrderUtil.FFZ_PREFIX));
|
||||
finishFreezeRequest.setAmount(freezeFee.toString());
|
||||
AlipayResponse alipayResponse = payInteg.finishFreeze(finishFreezeRequest);
|
||||
return alipayResponse.isSuccess();
|
||||
}
|
||||
|
||||
@ -129,9 +129,16 @@ public class NoPayOrderProcessTask {
|
||||
log.info("订单{}已超过最大重试次数,强行删除订单", orderMainPO.getOrderNo());
|
||||
orderService.forceRemoveRentOrder(orderMainPO);
|
||||
} else {
|
||||
PayOrderReq payOrderReq = new PayOrderReq();
|
||||
payOrderReq.setOrderNo(orderMainPO.getOrderNo());
|
||||
orderService.cancelOrder(payOrderReq,orderMainPO);
|
||||
if(orderMainPO.getOrderStatus().equals(OrderStatusEnum.WAIT_PAY.getCode())){
|
||||
PayOrderReq payOrderReq = new PayOrderReq();
|
||||
payOrderReq.setOrderNo(orderMainPO.getOrderNo());
|
||||
orderService.cancelOrder(payOrderReq,orderMainPO);
|
||||
} else if(orderMainPO.getOrderStatus().equals(OrderStatusEnum.RERENT_WAIT_PAY.getCode())){
|
||||
PayOrderReq payOrderReq = new PayOrderReq();
|
||||
payOrderReq.setOrderNo(orderMainPO.getOrderNo());
|
||||
orderService.cancelRerentOrOverDueOrder(orderMainPO);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user