From 67ca3401fde44528a048498563d95b023211efdd Mon Sep 17 00:00:00 2001 From: "kuang.yifei@iwhalecloud.com" Date: Wed, 22 Jun 2022 17:39:45 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=80=E6=AC=BE=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ghy/web/controller/pay/PayController.java | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/pay/PayController.java b/ghy-admin/src/main/java/com/ghy/web/controller/pay/PayController.java index 58d82d42..77c8ff69 100644 --- a/ghy-admin/src/main/java/com/ghy/web/controller/pay/PayController.java +++ b/ghy-admin/src/main/java/com/ghy/web/controller/pay/PayController.java @@ -2,6 +2,7 @@ package com.ghy.web.controller.pay; import com.alibaba.fastjson.JSONObject; import com.ghy.common.adapay.model.AdapayStatusEnum; +import com.ghy.common.adapay.model.PaymentDTO; import com.ghy.common.core.domain.AjaxResult; import com.ghy.order.domain.OrderMaster; import com.ghy.order.service.OrderMasterService; @@ -35,6 +36,31 @@ public class PayController { @Resource private FinancialMasterService financialMasterService; + /** + * 撤销支付 + * + * @param orderMasterId 主订单ID + * @param refundAmt 退款金额 保留两位小数 + */ + @PostMapping("refund") + @ResponseBody + public AjaxResult refund(Long orderMasterId, String refundAmt) throws BaseAdaPayException { + OrderMaster orderMaster = orderMasterService.selectById(orderMasterId); + Assert.notNull(orderMaster, "找不到对应的订单"); + FinancialMaster financialMaster = financialMasterService.selectByOrderMasterId(orderMasterId); + PaymentDTO payment = financialMasterService.selectPaymentById(financialMaster.getPaymentId()); + Assert.notNull(payment, "找不到支付记录"); + Assert.notNull(financialMaster, "找不到订单"); + Assert.isTrue(financialMaster.getPayStatus() == 1, "订单未支付"); + Assert.hasText(financialMaster.getPaymentId(), "找不到订单的支付记录,请联系管理员"); + JSONObject response = adapayService.refund(orderMaster.getDeptId(), financialMaster.getPaymentId(),payment.getOrderNo(), refundAmt); + if (AdapayStatusEnum.succeeded.code.equals(response.getString("status"))) { + return AjaxResult.success(); + } else { + return AjaxResult.error(response.getString("error_msg")); + } + } + /** * 撤销支付 *