diff --git a/ghy-order/src/main/java/com/ghy/order/service/impl/AfterServiceRecordServiceImpl.java b/ghy-order/src/main/java/com/ghy/order/service/impl/AfterServiceRecordServiceImpl.java index 9f5f5849..21388ed2 100644 --- a/ghy-order/src/main/java/com/ghy/order/service/impl/AfterServiceRecordServiceImpl.java +++ b/ghy-order/src/main/java/com/ghy/order/service/impl/AfterServiceRecordServiceImpl.java @@ -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()); // 申请退款金额 diff --git a/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java b/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java index 57290018..daa79e11 100644 --- a/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java +++ b/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java @@ -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); diff --git a/ghy-order/src/main/java/com/ghy/order/service/impl/OrderMasterServiceImpl.java b/ghy-order/src/main/java/com/ghy/order/service/impl/OrderMasterServiceImpl.java index 604809b7..81d658d0 100644 --- a/ghy-order/src/main/java/com/ghy/order/service/impl/OrderMasterServiceImpl.java +++ b/ghy-order/src/main/java/com/ghy/order/service/impl/OrderMasterServiceImpl.java @@ -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")) ||