未支付的订单可以取消,跳过退款
This commit is contained in:
parent
67aaad5519
commit
2077230be3
|
|
@ -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());
|
||||
// 申请退款金额
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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")) ||
|
||||
|
|
|
|||
Loading…
Reference in New Issue