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