From 215fde9671b285b4f77fa3f5a669c58b74af17c8 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期六, 24 八月 2024 18:01:08 +0800
Subject: [PATCH] 代码提交

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TShoppingOrderController.java |   43 +++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 43 insertions(+), 0 deletions(-)

diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TShoppingOrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TShoppingOrderController.java
index ba052cc..5312f64 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TShoppingOrderController.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TShoppingOrderController.java
@@ -3,6 +3,7 @@
 import java.time.LocalDateTime;
 
 
+import com.ruoyi.account.api.feignClient.AppCouponClient;
 import com.ruoyi.account.api.feignClient.AppUserClient;
 import com.ruoyi.account.api.model.TAppUserAddress;
 import com.ruoyi.common.core.domain.R;
@@ -18,6 +19,11 @@
 import com.ruoyi.order.service.TShoppingOrderService;
 import com.ruoyi.other.api.feignClient.CouponClient;
 import com.ruoyi.other.api.feignClient.GoodsClient;
+import com.ruoyi.payment.api.feignClient.AliPaymentClient;
+import com.ruoyi.payment.api.feignClient.WxPaymentClient;
+import com.ruoyi.payment.api.model.RefundReq;
+import com.ruoyi.payment.api.model.RefundResp;
+import com.ruoyi.payment.api.model.WxPaymentRefundModel;
 import com.ruoyi.system.api.domain.SysUser;
 import com.ruoyi.system.api.feignClient.SysUserClient;
 import io.swagger.annotations.Api;
@@ -111,6 +117,12 @@
 	}
 	@Resource
 	private TokenService tokenService;
+	@Resource
+	private AliPaymentClient aliPaymentClient;
+	@Resource
+	private WxPaymentClient wxPaymentClient;
+	@Resource
+	private AppCouponClient appCouponClient;
 	@GetMapping("/cancelShoppingOrder")
 	@ApiOperation(value = "取消订单", tags = {"管理后台-购物订单"})
 	public AjaxResult cancelShoppingOrder(String id) {
@@ -123,9 +135,40 @@
 		switch (byId.getPaymentType()){
 			case 1:
 				// 微信
+				WxPaymentRefundModel wxPaymentRefundModel = new WxPaymentRefundModel();
+				wxPaymentRefundModel.setTransaction_id(byId.getSerialNumber());
+				wxPaymentRefundModel.setOut_trade_no(byId.getCode());
+				wxPaymentRefundModel.setOut_refund_no(OrderCodeUtil.getOrderCode("GW"));
+				// todo 部署到线上之后写回调地址
+//				wxPaymentRefundModel.setNotify_url("");
+				String string = byId.getPaymentAmount().multiply(new BigDecimal("100")).toString();
+				int i = Integer.parseInt(string);
+				WxPaymentRefundModel.RefundAmount refundAmount = new WxPaymentRefundModel.RefundAmount();
+				refundAmount.setTotal(i);
+				refundAmount.setRefund(i);
+				wxPaymentRefundModel.setAmount(refundAmount);
+				wxPaymentClient.refundOrderR(wxPaymentRefundModel);
 				break;
 			case 2:
 				// 支付宝
+				RefundReq refundReq = new RefundReq();
+				refundReq.setOutTradeNo(byId.getSerialNumber());
+				String gw = OrderCodeUtil.getOrderCode("GW");
+				refundReq.setOutRequestNo(gw);
+				refundReq.setRefundAmount(byId.getPaymentAmount().toString());
+				refundReq.setRefundReason("后台退款");
+				RefundResp data = aliPaymentClient.refund(refundReq).getData();
+				if (data!=null){
+					// 退款成功 回退优惠券
+//					byId.setStatus(4);
+					if (byId.getAppCouponId()!=null){
+						appCouponClient.refund(byId.getAppCouponId().toString());
+						byId.setRefundCode(gw);
+						byId.setRefundAmount(byId.getPaymentAmount());
+						byId.setRefundStatus(2);
+						byId.setRefundSerialNumber(data.getTradeNo());
+					}
+				}
 				break;
 		}
 		shoppingOrderService.updateById(byId);

--
Gitblit v1.7.1