未支付的订单可以取消,跳过退款

This commit is contained in:
Hawking 2023-04-20 21:04:53 +08:00
parent 67aaad5519
commit 2077230be3
3 changed files with 13 additions and 7 deletions

View File

@ -149,8 +149,6 @@ public class AfterServiceRecordServiceImpl implements IAfterServiceRecordService
Assert.notNull(orderMaster, "找不到对应的订单");
FinancialMaster financialMaster = financialMasterService.selectByOrderMasterId(orderDetail.getOrderMasterId());
Assert.notNull(financialMaster, "找不到支付记录");
// Assert.hasText(financialMaster.getPaymentId(), "找不到订单的支付记录,请联系管理员");
// Assert.isTrue(PayStatus.PAID.getCode().equals(financialMaster.getPayStatus()), "订单未支付");
// 是否已付款,用于判断是否需要退款
boolean payReverse = PayStatus.PAID.getCode().equals(financialMaster.getPayStatus());
// 申请退款金额

View File

@ -294,9 +294,8 @@ public class OrderDetailServiceImpl implements OrderDetailService {
Assert.notNull(financialMaster, "FinancialMaster is null !");
FinancialDetail financialDetail = financialDetailService.selectByOrderDetailId(orderDetailId);
Assert.notNull(financialMaster, "找不到支付记录");
Assert.hasText(financialMaster.getPaymentId(), "找不到订单的支付记录,请联系管理员");
Assert.isTrue(PayStatus.PAID.getCode().equals(financialMaster.getPayStatus()) ||
PayStatus.PAYED_ADD.getCode().equals(financialMaster.getPayStatus()), "订单未支付");
boolean paid = PayStatus.PAID.getCode().equals(financialMaster.getPayStatus()) ||
PayStatus.PAYED_ADD.getCode().equals(financialMaster.getPayStatus());
// 主财务单金额
BigDecimal masterMoney = financialMaster.getPayMoney();
@ -337,6 +336,11 @@ public class OrderDetailServiceImpl implements OrderDetailService {
financialMaster.setPayMoney(masterMoney.subtract(detailMoney));
financialMasterService.updateFinancialMaster(financialMaster);
if (!paid) {
logger.info("子订单[id={}]未支付 不需要退款", orderDetailId);
return;
}
Assert.hasText(financialMaster.getPaymentId(), "找不到订单的支付记录,请联系管理员");
// 发起退款
String refundAmt = AdapayUtils.bigDecimalToString(detailMoney);
logger.info("子订单[id={}]发起退款: refundAmt={}元", orderDetailId, refundAmt);

View File

@ -378,8 +378,6 @@ public class OrderMasterServiceImpl implements OrderMasterService {
Assert.notNull(financialMaster, "找不到订单");
boolean paid = PayStatus.PAID.getCode().equals(financialMaster.getPayStatus()) ||
PayStatus.PAYED_ADD.getCode().equals(financialMaster.getPayStatus());
Assert.isTrue(paid, "订单未支付");
Assert.hasText(financialMaster.getPaymentId(), "找不到订单的支付记录,请联系管理员");
// 改主订单的支付状态
updatePayStatus(orderMasterId, PayStatus.REFUND.getCode());
@ -413,6 +411,12 @@ public class OrderMasterServiceImpl implements OrderMasterService {
logger.info("主订单[{}]无需退款 reverseAmt={}", orderMasterId, payMoney);
}
if (!paid) {
logger.info("主订单[{}]未支付,无需退款", orderMasterId);
return;
}
Assert.hasText(financialMaster.getPaymentId(), "找不到订单的支付记录,请联系管理员");
// 退款
String reverseAmt = payMoney.setScale(2, RoundingMode.DOWN).toString();
JSONObject response = adapayService.payReverse(orderMaster.getDeptId(), financialMaster.getPaymentId(), reverseAmt, RefundType.ROM);
if (AdapayStatusEnum.succeeded.code.equals(response.getString("status")) ||