From 2077230be3ee22d2dc402bf59349ce0bdc67649e Mon Sep 17 00:00:00 2001 From: Hawking Date: Thu, 20 Apr 2023 21:04:53 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9C=AA=E6=94=AF=E4=BB=98=E7=9A=84=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E5=8F=AF=E4=BB=A5=E5=8F=96=E6=B6=88=EF=BC=8C=E8=B7=B3?= =?UTF-8?q?=E8=BF=87=E9=80=80=E6=AC=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/AfterServiceRecordServiceImpl.java | 2 -- .../ghy/order/service/impl/OrderDetailServiceImpl.java | 10 +++++++--- .../ghy/order/service/impl/OrderMasterServiceImpl.java | 8 ++++++-- 3 files changed, 13 insertions(+), 7 deletions(-) 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")) ||