From ad0b0dde969cdb8939e9f34c4eb951d79d1dd939 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期二, 24 九月 2024 14:07:47 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java |   55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 54 insertions(+), 1 deletions(-)

diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
index 61b4ae3..660a07e 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -1706,6 +1706,8 @@
 	}
 
 
+	@Resource
+	private TShoppingOrderService shoppingOrderService;
 	@Override
 	public R payRefund(PayOrderRefundDto payOrderQueryDto) {
 			if (payOrderQueryDto.getType()==1){
@@ -1763,10 +1765,61 @@
 
 
 			}
+			if (payOrderQueryDto.getType()==2){
+				TShoppingOrder tChargingOrder = shoppingOrderService.getById(payOrderQueryDto.getOrderId());
+				TChargingOrderRefund chargingOrderRefund = new TChargingOrderRefund();
+				chargingOrderRefund.setChargingOrderId(tChargingOrder.getId());
+				chargingOrderRefund.setRefundAmount(payOrderQueryDto.getRefundAmount());
+				chargingOrderRefund.setRefundStatus(1);
+				chargingOrderRefund.setPayType(tChargingOrder.getPaymentType());
+				chargingOrderRefund.setRefundTime(LocalDateTime.now());
+				chargingOrderRefund.setCode(tChargingOrder.getCode());
+				SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+				chargingOrderRefund.setRefundCode("GDF" + sdf.format(new Date()) + (Double.valueOf(Math.random() * 1000).intValue()));
+				chargingOrderRefund.setRefundTitle("后台退款");
+				chargingOrderRefund.setRefundContent("后台退款");
+				chargingOrderRefund.setRefundReason("后台退款");
+				chargingOrderRefund.setRefundRemark("后台退款");
+				chargingOrderRefund.setRefundTotalAmount(tChargingOrder.getRefundAmount().add(payOrderQueryDto.getRefundAmount()));
+				chargingOrderRefund.setPayAmount(tChargingOrder.getPaymentAmount());
+
+				if(1 == tChargingOrder.getPaymentType()){
+					WxPaymentRefundModel model = new WxPaymentRefundModel();
+					model.setOut_trade_no(tChargingOrder.getCode());
+					model.setOut_refund_no(chargingOrderRefund.getRefundCode());
+					model.setTransaction_id(tChargingOrder.getSerialNumber());
+					model.setReason("取消订单");
+					model.setNotify_url("http://221.182.45.100:9000/order/t-shopping-order/cancelShoppingOrderWxRefund");
+					WxPaymentRefundModel.RefundAmount amount = new WxPaymentRefundModel.RefundAmount();
+					amount.setRefund(payOrderQueryDto.getRefundAmount().multiply(new BigDecimal(100)).intValue());
+					amount.setTotal(tChargingOrder.getPaymentAmount().multiply(new BigDecimal(100)).intValue());
+					amount.setCurrency("CNY");
+					model.setAmount(amount);
+					R<String> orderR = wxPaymentClient.refundOrderR(model);
+					if(200 == orderR.getCode()){
+						chargingOrderRefundService.save(chargingOrderRefund);
+					}
+				}
+
+				if(2 == tChargingOrder.getPaymentType()){
+					RefundReq dto = new RefundReq();
+					dto.setOutTradeNo(tChargingOrder.getCode());
+					dto.setOutRequestNo(tChargingOrder.getCode());
+					dto.setRefundAmount(payOrderQueryDto.getRefundAmount().toString());
+					dto.setRefundReason("取消订单");
+					RefundResp resp = aliPaymentClient.refund(dto).getData();
+					if(null != resp){
+						SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-DDTHH:mm:ss+TIMEZONE");
+						chargingOrderRefundService.save(chargingOrderRefund);
+
+					}
+				}
+
+			}
 
 
 
-		return null;
+		return R.ok();
 	}
 
 

--
Gitblit v1.7.1