From 76e0a1248fb3abef43ae2493611be89ed5ed9f73 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期五, 27 九月 2024 10:36:30 +0800
Subject: [PATCH] 修改bug

---
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java  |   10 +++
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java    |    6 +-
 ruoyi-api/ruoyi-api-payment/src/main/java/com/ruoyi/payment/api/vo/PaymentOrder.java                   |    2 
 ruoyi-api/ruoyi-api-payment/src/main/java/com/ruoyi/payment/api/feignClient/WxPaymentClient.java       |   20 ------
 ruoyi-api/ruoyi-api-payment/src/main/java/com/ruoyi/payment/api/factory/WxPaymentFallbackFactory.java  |   15 -----
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java       |   26 ++++++++
 ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/controller/WxPayController.java            |   18 ++++++
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java       |   31 +++-------
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserTagFallbackFactory.java |    5 +
 9 files changed, 72 insertions(+), 61 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserTagFallbackFactory.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserTagFallbackFactory.java
index 75e3c52..de3afd7 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserTagFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserTagFallbackFactory.java
@@ -30,6 +30,11 @@
             public R<TAppUserTag> getUserTag(TAppUserTag appUserTag) {
                 return R.fail("获取用户标签关系失败:" + throwable.getMessage());
             }
+    
+            @Override
+            public void addUserTag(TAppUserTag appUserTag) {
+        
+            }
         };
     }
 }
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java
index 72ebc17..294d7b0 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java
@@ -118,6 +118,16 @@
             public R<String> stopCharging(String id) {
                 return R.fail("手动停止充电失败:" + throwable.getMessage());
             }
+    
+            @Override
+            public void chargingOrderWXCallback(String out_trade_no, String transaction_id, String attach) {
+                log.error("充电支付成功回调通知失败:" + throwable.getMessage());
+            }
+    
+            @Override
+            public void chargingOrderStartupFailureWxRefund(String out_refund_no, String refund_id, String tradeState, String success_time) {
+                log.error("远程启动失败后退款通知失败:" + throwable.getMessage());
+            }
         };
     }
 }
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java
index b395682..c92882a 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java
@@ -137,4 +137,30 @@
      */
     @PutMapping(value = "/t-charging-order/stopCharging/{id}")
     R<String> stopCharging(@PathVariable("id") String id);
+    
+    
+    /**
+     * 充电支付成功回调通知
+     * @param out_trade_no
+     * @param transaction_id
+     * @param attach
+     */
+    @PostMapping("/t-charging-order/chargingOrderWXCallback")
+    void chargingOrderWXCallback(@RequestParam("out_trade_no") String out_trade_no,
+                                 @RequestParam("transaction_id") String transaction_id,
+                                 @RequestParam("attach") String attach);
+    
+    
+    /**
+     * 远程启动失败后退款回调
+     * @param out_refund_no
+     * @param refund_id
+     * @param tradeState
+     * @param success_time
+     */
+    @PostMapping("/t-charging-order/chargingOrderStartupFailureWxRefund")
+    void chargingOrderStartupFailureWxRefund(@RequestParam("out_trade_no") String out_refund_no,
+                                             @RequestParam("out_trade_no") String refund_id,
+                                             @RequestParam("out_trade_no") String tradeState,
+                                             @RequestParam("out_trade_no") String success_time);
 }
diff --git a/ruoyi-api/ruoyi-api-payment/src/main/java/com/ruoyi/payment/api/factory/WxPaymentFallbackFactory.java b/ruoyi-api/ruoyi-api-payment/src/main/java/com/ruoyi/payment/api/factory/WxPaymentFallbackFactory.java
index 71c165e..763ea46 100644
--- a/ruoyi-api/ruoyi-api-payment/src/main/java/com/ruoyi/payment/api/factory/WxPaymentFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-payment/src/main/java/com/ruoyi/payment/api/factory/WxPaymentFallbackFactory.java
@@ -38,16 +38,6 @@
             public R<Map<String, Object>> orderPay(PaymentOrder paymentOrder) {
                 return R.fail("调起微信支付失败:" + throwable.getMessage());
             }
-    
-            @Override
-            public R<Map<String, Object>> payNotify(HttpServletRequest request) {
-                return R.fail("微信支付回调失败:" + throwable.getMessage());
-            }
-    
-            @Override
-            public void ack() {
-        
-            }
 
             @Override
             public void close(String outTradeNo) {
@@ -57,11 +47,6 @@
             @Override
             public R<String> refundOrderR(WxPaymentRefundModel model) {
                 return R.fail("微信退款失败:" + throwable.getMessage());
-            }
-    
-            @Override
-            public R<WxRefundNotifyResp> refundNotify(HttpServletRequest request) {
-                return R.fail("微信退款回调失败:" + throwable.getMessage());
             }
         };
     }
diff --git a/ruoyi-api/ruoyi-api-payment/src/main/java/com/ruoyi/payment/api/feignClient/WxPaymentClient.java b/ruoyi-api/ruoyi-api-payment/src/main/java/com/ruoyi/payment/api/feignClient/WxPaymentClient.java
index 8f6e6c2..b96a0d5 100644
--- a/ruoyi-api/ruoyi-api-payment/src/main/java/com/ruoyi/payment/api/feignClient/WxPaymentClient.java
+++ b/ruoyi-api/ruoyi-api-payment/src/main/java/com/ruoyi/payment/api/feignClient/WxPaymentClient.java
@@ -41,20 +41,6 @@
 	R<Map<String, Object>> orderPay(@RequestBody PaymentOrder paymentOrder);
 	
 	
-	/**
-	 * 支付回调
-	 * @param request
-	 * @return
-	 */
-	@PostMapping("/wx/pay/notify")
-	R<Map<String, Object>> payNotify(HttpServletRequest request);
-	
-	/**
-	 * 支付回调成功后的成功应答
-	 */
-	@PostMapping("/wx/pay/ack")
-	void ack();
-	
 	
 	/**
 	 * 关闭订单
@@ -66,10 +52,4 @@
 	@ApiOperation("订单退款")
 	@PostMapping(value = "/wx/refundOrderR")
 	public R<String> refundOrderR(@RequestBody WxPaymentRefundModel model);
-	
-	
-	
-	@ApiOperation("订单退款回调")
-	@PostMapping(value = "/wx/refund/notify")
-	R<WxRefundNotifyResp> refundNotify(HttpServletRequest request);
 }
diff --git a/ruoyi-api/ruoyi-api-payment/src/main/java/com/ruoyi/payment/api/vo/PaymentOrder.java b/ruoyi-api/ruoyi-api-payment/src/main/java/com/ruoyi/payment/api/vo/PaymentOrder.java
index 08d54c1..3fac737 100644
--- a/ruoyi-api/ruoyi-api-payment/src/main/java/com/ruoyi/payment/api/vo/PaymentOrder.java
+++ b/ruoyi-api/ruoyi-api-payment/src/main/java/com/ruoyi/payment/api/vo/PaymentOrder.java
@@ -29,5 +29,5 @@
 	/**
 	 * 回调地址
 	 */
-	private String notifyUrl ="http://221.182.45.100:9000/payment/wx/pay/notify";
+	private String notifyUrl ="/payment/wx/pay/notify";
 }
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
index 16e7970..f591474 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
@@ -68,6 +68,7 @@
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import javax.servlet.ServletInputStream;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.PrintWriter;
@@ -428,21 +429,12 @@
     
     /**
      * 充电充值支付回调
-     * @param request
      */
     @ResponseBody
     @PostMapping(value = "/chargingOrderWXCallback")
-    public void chargingOrderWXCallback(HttpServletRequest request) {
-        Map<String, Object> data = wxPaymentClient.payNotify(request).getData();
-        if (null != data) {
-            String out_trade_no = data.get("out_trade_no").toString();
-            String transaction_id = data.get("transaction_id").toString();
-            String attach = data.get("attach").toString();
-            AjaxResult ajaxResult = chargingOrderService.chargingOrderCallback(1, out_trade_no, transaction_id, attach);
-            if (ajaxResult.isSuccess()) {
-                wxPaymentClient.ack();
-            }
-        }
+    public void chargingOrderWXCallback(@RequestParam("out_trade_no") String out_trade_no, @RequestParam("transaction_id") String transaction_id,
+                                        @RequestParam("attach") String attach) {
+        AjaxResult ajaxResult = chargingOrderService.chargingOrderCallback(1, out_trade_no, transaction_id, attach);
     }
 
 
@@ -471,19 +463,14 @@
     
     /**
      * 远程启动失败后退款回调
-     * @param request
      */
     @ResponseBody
     @PostMapping(value = "/chargingOrderStartupFailureWxRefund")
-    public void chargingOrderStartupFailureWxRefund(HttpServletRequest request){
-        WxRefundNotifyResp data = wxPaymentClient.refundNotify(request).getData();
-        if(null != data){
-            String out_refund_no = data.getOut_refund_no();
-            String refund_id = data.getRefund_id();
-            String tradeState = data.getTradeState();
-            String success_time = data.getSuccess_time();
-            chargingOrderService.chargingOrderStartupFailureWxRefund(out_refund_no, refund_id, tradeState, success_time);
-        }
+    public void chargingOrderStartupFailureWxRefund(@RequestParam("out_trade_no") String out_refund_no,
+                                                    @RequestParam("out_trade_no") String refund_id,
+                                                    @RequestParam("out_trade_no") String tradeState,
+                                                    @RequestParam("out_trade_no") String success_time){
+        chargingOrderService.chargingOrderStartupFailureWxRefund(out_refund_no, refund_id, tradeState, success_time);
     }
     
     
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 a558cc9..10655bc 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
@@ -498,7 +498,7 @@
 			paymentOrder.setAmount(addChargingOrder.getPaymentAmount());
 			paymentOrder.setOpenId(appUser.getWxOpenid());
 			paymentOrder.setDescription("充电充值");
-			paymentOrder.setNotifyUrl("/order/t-charging-order/chargingOrderWXCallback");
+			paymentOrder.setNotifyUrl("/payment/wx/pay/notify");
 			Map<String, Object> data = wxPaymentClient.orderPay(paymentOrder).getData();
 			return AjaxResult.success(data);
 		}
@@ -711,7 +711,7 @@
 				model.setOut_trade_no(chargingOrder.getCode());
 				model.setOut_refund_no(chargingOrderRefund.getRefundCode());
 				model.setReason("充电失败,取消充电订单");
-				model.setNotify_url("/order/t-charging-order/chargingOrderStartupFailureWxRefund");
+				model.setNotify_url("/payment/wx/refund/notify");
 				WxPaymentRefundModel.RefundAmount amount = new WxPaymentRefundModel.RefundAmount();
 				amount.setRefund(rechargeAmount.multiply(new BigDecimal(100)).intValue());
 				amount.setTotal(rechargeAmount.multiply(new BigDecimal(100)).intValue());
@@ -1115,7 +1115,7 @@
 				model.setOut_trade_no(chargingOrder.getCode());
 				model.setOut_refund_no(chargingOrderRefund.getRefundCode());
 				model.setReason("充电完成退款");
-				model.setNotify_url("http://221.182.45.100:9000/order/t-charging-order/chargingOrderStartupFailureWxRefund");
+				model.setNotify_url("/payment/wx/refund/notify");
 				WxPaymentRefundModel.RefundAmount amount = new WxPaymentRefundModel.RefundAmount();
 				amount.setRefund(refundAmount.multiply(new BigDecimal(100)).intValue());
 				amount.setTotal(rechargeAmount.multiply(new BigDecimal(100)).intValue());
diff --git a/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/controller/WxPayController.java b/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/controller/WxPayController.java
index 6c834a0..3a1672f 100644
--- a/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/controller/WxPayController.java
+++ b/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/controller/WxPayController.java
@@ -3,6 +3,7 @@
 import com.fasterxml.jackson.core.type.TypeReference;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.order.api.feignClient.ChargingOrderClient;
 import com.ruoyi.order.api.feignClient.OrderClient;
 import com.ruoyi.payment.api.vo.PaymentOrder;
 import com.ruoyi.payment.api.vo.WxRefundNotifyResp;
@@ -37,6 +38,9 @@
 
     @Resource
     private OrderClient orderClient;
+    
+    @Resource
+    private ChargingOrderClient chargingOrderClient;
 
 
 
@@ -121,6 +125,7 @@
             log.info("支付回调:{}", params);
             String outRefundNo = (String) params.get("transaction_id");
             String out_trade_no = params.get("out_trade_no").toString();
+            String attach = params.get("attach").toString();
             String substring = out_trade_no.substring(0, 2);
             switch (substring){
                 //购物订单
@@ -131,6 +136,10 @@
                 case "HY":
                     orderClient.vipCallBack(out_trade_no,outRefundNo);
                     System.err.println("----收到会员回调");
+                    break;
+                case "CD":
+                    chargingOrderClient.chargingOrderWXCallback(out_trade_no, outRefundNo, attach);
+                    System.err.println("----充电支付回调");
                     break;
             }
 
@@ -180,6 +189,15 @@
             // 时间不对的话,可以调用  WxTimeUtils.toRfc3339Date(success_time)转换一下
             String success_time = params.get("success_time").toString();
             if (tradeState.equals(RefundEnum.SUCCESS.name())) {
+                String substring = out_refund_no.substring(0, 3);
+                switch (substring){
+                    //购物订单
+                    case "CDF":
+                        chargingOrderClient.chargingOrderStartupFailureWxRefund(out_refund_no, refund_id, tradeState, success_time);
+                        System.err.println("----充电启动失败退款回调通知");
+                        break;
+                }
+                
                 WxRefundNotifyResp resp = new WxRefundNotifyResp();
                 resp.setOut_trade_no(out_trade_no);
                 resp.setOut_refund_no(out_refund_no);

--
Gitblit v1.7.1