From c9b8c391c4d5017ba90cd5c621c5163147c3787f Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Thu, 13 Mar 2025 13:46:19 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=80=E6=AC=BE=E5=90=8C=E6=AD=A5=E5=93=8D?= =?UTF-8?q?=E5=BA=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../czg/service/order/service/PayService.java | 2 +- .../service/impl/OrderInfoServiceImpl.java | 5 +++ .../order/service/impl/PayServiceImpl.java | 35 +++++++++++++------ 3 files changed, 30 insertions(+), 12 deletions(-) diff --git a/cash-service/order-service/src/main/java/com/czg/service/order/service/PayService.java b/cash-service/order-service/src/main/java/com/czg/service/order/service/PayService.java index efd0827f3..906f78e1c 100644 --- a/cash-service/order-service/src/main/java/com/czg/service/order/service/PayService.java +++ b/cash-service/order-service/src/main/java/com/czg/service/order/service/PayService.java @@ -102,7 +102,7 @@ public interface PayService { /** * 订单退款 */ - CzgResult refundOrder(Long shopId, Long orderId, Long payOrderId, String refPayOrderNo, String refundReason, BigDecimal refundAmount); + void refundOrder(Long shopId, Long orderId, Long payOrderId, String refPayOrderNo, String refundReason, BigDecimal refundAmount); CzgResult> queryPayOrder(@NonNull Long orderId); diff --git a/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/OrderInfoServiceImpl.java b/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/OrderInfoServiceImpl.java index 156152623..e67018df6 100644 --- a/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/OrderInfoServiceImpl.java +++ b/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/OrderInfoServiceImpl.java @@ -620,9 +620,14 @@ public class OrderInfoServiceImpl extends ServiceImpl res = refund(refPayParam.getShopId(), new CzgRefundReq(refPayOrderNo, refPayParam.getRemark(), + CzgResult refund = refund(refPayParam.getShopId(), new CzgRefundReq(refPayOrderNo, refPayParam.getRemark(), refPayParam.getRefAmount().multiply(MONEY_RATE).longValue(), payment.getOrderNo(), "")); - if (res.getCode() != 200 || res.getData() == null) { - return CzgResult.failure(res.getMsg()); + if (refund.getCode() != 200 || refund.getData() == null || !"SUCCESS".equals(refund.getData().getState())) { + throw new CzgException(refund.getMsg()); + } else { + paymentService.updateChain() + .eq(OrderPayment::getId, refPaymentId) + .set(OrderPayment::getPayTime, refund.getData().getRefundTime()) + .set(OrderPayment::getTradeNumber, refund.getData().getRefundOrderId()) + .set(OrderPayment::getRespJson, JSONObject.toJSONString(refund.getData())) + .update(); } } ShopUserMoneyEditDTO shopUserMoneyEditDTO = new ShopUserMoneyEditDTO() @@ -598,17 +605,23 @@ public class PayServiceImpl implements PayService { @Override @Transactional - public CzgResult refundOrder(@NonNull Long shopId, @NonNull Long orderId, @NonNull Long payOrderId, @NonNull String refPayOrderNo, - @NonNull String refundReason, @NonNull BigDecimal refundAmount) { + public void refundOrder(@NonNull Long shopId, @NonNull Long orderId, @NonNull Long payOrderId, @NonNull String refPayOrderNo, + @NonNull String refundReason, @NonNull BigDecimal refundAmount) { OrderPayment payment = paymentService.getById(payOrderId); AssertUtil.isNull(payment, "退款失败支付记录不存在"); - initOrderPayment(new OrderPayment(shopId, orderId, "refund", refPayOrderNo, null, refundAmount)); + Long refundId = initOrderPayment(new OrderPayment(shopId, orderId, "refund", refPayOrderNo, null, refundAmount)); CzgResult refund = refund(shopId, new CzgRefundReq(refPayOrderNo, refundReason, refundAmount.multiply(MONEY_RATE).longValue(), payment.getOrderNo(), "")); - if (refund.getCode() != 200 || refund.getData() == null) { - return CzgResult.failure(refund.getMsg()); + if (refund.getCode() != 200 || refund.getData() == null || !"SUCCESS".equals(refund.getData().getState())) { + throw new CzgException(refund.getMsg()); + } else { + paymentService.updateChain() + .eq(OrderPayment::getId, refundId) + .set(OrderPayment::getPayTime, refund.getData().getRefundTime()) + .set(OrderPayment::getTradeNumber, refund.getData().getRefundOrderId()) + .set(OrderPayment::getRespJson, JSONObject.toJSONString(refund.getData())) + .update(); } - return CzgResult.success(); } @Override