From 451484fae6c4f62dc8ca4a4ce3d0d83e5d907681 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期二, 18 十一月 2025 21:01:28 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 UserJYXTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java |  277 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 276 insertions(+), 1 deletions(-)

diff --git a/UserJYXTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java b/UserJYXTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
index 61216f3..ae32efa 100644
--- a/UserJYXTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
+++ b/UserJYXTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
@@ -3,6 +3,7 @@
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.huifu.bspay.sdk.opps.core.utils.RsaUtils;
 import com.stylefeng.guns.core.util.ToolUtil;
 import com.stylefeng.guns.modular.CharteredCar.server.IOrderCharteredCarService;
 import com.stylefeng.guns.modular.account.model.TEnterpriseWithdrawal;
@@ -46,8 +47,13 @@
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.io.InputStreamReader;
 import java.io.PrintWriter;
 import java.math.BigDecimal;
+import java.nio.charset.StandardCharsets;
+import java.security.KeyFactory;
+import java.security.PublicKey;
+import java.security.spec.X509EncodedKeySpec;
 import java.text.SimpleDateFormat;
 import java.util.*;
 
@@ -1481,7 +1487,58 @@
 
 
 
+    /**
+     * 斗拱回调  取消订单
+     * @param request
+     */
+    @ResponseBody
+    @PostMapping("/base/DGCancelOrderTaxi")
+    public void DGCancelOrderTaxi(HttpServletRequest request, HttpServletResponse response){
+        try {
+            String sign =request.getParameter("sign");
+            String resp_data = request.getParameter("resp_data");
+            System.out.println(sign);
+            System.out.println(resp_data);
+            resp_data =  resp_data.replaceAll("& #40;", "(").replaceAll("& #41;",")");
 
+
+            boolean verify = RsaUtils.verify(resp_data, "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsWrruP9JBxrUd8uEX5Z8y7pg/UIr5RNHSgDnHqNI1hbi2MfTzB5vZ275wSFFaLDD9BesgDWqsUepPS/opROlDCg9y6WYH8mkN23NmHL9F8kT48OMmH722am+Hp0XVMMwXqA0oNt4f7oW6kDemjZW8/RT4vIE7cyxoxSsVRvjqSpx9wDgFLPWh3o0pHQaoxLyeUsGBATHFrxEDlosBvsuXjMcgjPKXALrcemzKOhBmBkLgyxNVmh61ZK+FNXd+/X4PeZlnWf54NRQAUKe1308E6IIaszo+CjneKuhj1m/X4f7AIvxAqlhuCV5E/DfKRmGopxaWqdtE960Y/H4SmBh2wIDAQAB", sign);
+            if(verify){
+                JSONObject jsonObject = JSONObject.parseObject(resp_data);
+                String order_id = jsonObject.get("out_trans_id").toString();
+                String out_trade_no = jsonObject.get("req_seq_id").toString();
+                String trans_stat = jsonObject.get("trans_stat").toString();
+                if("S".equals(trans_stat)){
+                    String[] split = out_trade_no.split("_");
+                    Integer id = Integer.valueOf(split[0]);
+                    Integer type = Integer.valueOf(split[1]);
+                    switch (type){
+                        case 1:
+                            orderPrivateCarService.payCancelOrderPrivateCar(id, order_id, 1);
+                            break;
+                        case 2:
+                            orderTaxiService.payCancelOrderTaxi(id, order_id, 1);
+                            break;
+                        case 3:
+                            orderCrossCityService.payCancelOrderCrossCity(id, order_id, 1);
+                            break;
+                    }
+
+                    PrintWriter out = response.getWriter();
+                    out.print("success");
+                    out.flush();
+                    out.close();
+
+                }
+
+//                cloudPay(map.get("total_fee"),map.get("transaction_id"),1);
+            }
+
+
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+    }
 
 
 
@@ -1567,6 +1624,90 @@
         }
     }
 
+
+
+    /**
+     * 斗拱回调  支付
+     * @param request
+     */
+    @ResponseBody
+    @PostMapping("/base/DGCallBack")
+    public void DGCallBack(HttpServletRequest request, HttpServletResponse response){
+        try {
+            String sign =request.getParameter("sign");
+            String resp_data = request.getParameter("resp_data");
+            System.out.println(sign);
+            System.out.println(resp_data);
+            resp_data =  resp_data.replaceAll("& #40;", "(").replaceAll("& #41;",")");
+
+
+            boolean verify = RsaUtils.verify(resp_data, "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsWrruP9JBxrUd8uEX5Z8y7pg/UIr5RNHSgDnHqNI1hbi2MfTzB5vZ275wSFFaLDD9BesgDWqsUepPS/opROlDCg9y6WYH8mkN23NmHL9F8kT48OMmH722am+Hp0XVMMwXqA0oNt4f7oW6kDemjZW8/RT4vIE7cyxoxSsVRvjqSpx9wDgFLPWh3o0pHQaoxLyeUsGBATHFrxEDlosBvsuXjMcgjPKXALrcemzKOhBmBkLgyxNVmh61ZK+FNXd+/X4PeZlnWf54NRQAUKe1308E6IIaszo+CjneKuhj1m/X4f7AIvxAqlhuCV5E/DfKRmGopxaWqdtE960Y/H4SmBh2wIDAQAB", sign);
+            if(verify){
+                JSONObject jsonObject = JSONObject.parseObject(resp_data);
+                String o = jsonObject.get("req_seq_id").toString();
+                String order_id = jsonObject.get("out_trans_id").toString();
+                String out_trade_no = jsonObject.get("req_seq_id").toString();
+                String trans_stat = jsonObject.get("trans_stat").toString();
+                if("S".equals(trans_stat)){
+                    String[] split = out_trade_no.split("_");
+                    Integer id = Integer.valueOf(split[0]);
+                    Integer type = Integer.valueOf(split[1]);
+                    switch (type){
+                        case 1:
+                            orderPrivateCarService.payOrderPrivateCarCallback(id, order_id, 1);
+                            break;
+                        case 2:
+                            orderTaxiService.payOrderTaxiCallback(id, order_id, 1,0);
+                            break;
+                        case 3:
+                            orderCrossCityService.payOrderCrossCityCallback(id, order_id, 1,null);
+                            break;
+                        case 4:
+                            orderLogisticsService.payOrderLogisticsCallback(id, order_id, 1);
+                            break;
+                        case 5:
+                            orderLogisticsService.payOrderLogisticsCallback(id, order_id, 1);
+                            break;
+                    }
+
+                    PrintWriter out = response.getWriter();
+                    out.print("success");
+                    out.flush();
+                    out.close();
+
+                }
+
+//                cloudPay(map.get("total_fee"),map.get("transaction_id"),1);
+            }
+
+
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+    }
+    public final String getBody(HttpServletRequest request) {
+        InputStreamReader in = null;
+        try {
+            in = new InputStreamReader(request.getInputStream(), StandardCharsets.UTF_8);
+            StringBuffer bf = new StringBuffer();
+            int len;
+            char[] chs = new char[1024];
+            while ((len = in.read(chs)) != -1) {
+                bf.append(new String(chs, 0, len));
+            }
+            return bf.toString();
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            if (null != in) {
+                try {
+                    in.close();
+                } catch (Exception e) {
+                }
+            }
+        }
+        return null;
+    }
 
     /**
      * 完成订单微信支付回调
@@ -1676,6 +1817,46 @@
 
 
     /**
+     * 斗拱回调  支付小件物流差价支付回调
+     * @param request
+     */
+    @ResponseBody
+    @PostMapping("/base/DGPayOrderLogisticsSpread")
+    public void DGPayOrderLogisticsSpread(HttpServletRequest request, HttpServletResponse response){
+        try {
+            String sign =request.getParameter("sign");
+            String resp_data = request.getParameter("resp_data");
+            resp_data =  resp_data.replaceAll("& #40;", "(").replaceAll("& #41;",")");
+
+            boolean verify = RsaUtils.verify(resp_data, "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsWrruP9JBxrUd8uEX5Z8y7pg/UIr5RNHSgDnHqNI1hbi2MfTzB5vZ275wSFFaLDD9BesgDWqsUepPS/opROlDCg9y6WYH8mkN23NmHL9F8kT48OMmH722am+Hp0XVMMwXqA0oNt4f7oW6kDemjZW8/RT4vIE7cyxoxSsVRvjqSpx9wDgFLPWh3o0pHQaoxLyeUsGBATHFrxEDlosBvsuXjMcgjPKXALrcemzKOhBmBkLgyxNVmh61ZK+FNXd+/X4PeZlnWf54NRQAUKe1308E6IIaszo+CjneKuhj1m/X4f7AIvxAqlhuCV5E/DfKRmGopxaWqdtE960Y/H4SmBh2wIDAQAB", sign);
+            System.out.println("斗拱回调  支付小件物流差价支付回调:");
+            if(verify){
+                JSONObject jsonObject = JSONObject.parseObject(resp_data);
+                String order_id = jsonObject.get("out_trans_id").toString();
+                String out_trade_no = jsonObject.get("req_seq_id").toString();
+                String trans_stat = jsonObject.get("trans_stat").toString();
+                if("S".equals(trans_stat) && ToolUtil.isNotEmpty(out_trade_no)){
+                    String[] split = out_trade_no.split("_");
+                    Integer id = Integer.valueOf(split[0]);
+                    Integer type = Integer.valueOf(split[1]);
+                    orderLogisticsService.payOrderLogisticsSpreadCallback(id, order_id, 1);
+
+                    PrintWriter out = response.getWriter();
+                    out.print("success");
+                    out.flush();
+                    out.close();
+
+                }
+
+//                cloudPay(map.get("total_fee"),map.get("transaction_id"),1);
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+    }
+
+
+    /**
      * 小件物流差价微信支付回调
      * @param request
      */
@@ -1737,6 +1918,8 @@
             e.printStackTrace();
         }
     }
+
+
 
     /**
      * 取消订单微信退款成功回调
@@ -1811,6 +1994,45 @@
     }
 
 
+
+    /**
+     * 斗拱回调  购买出行卡支付回调
+     * @param request
+     */
+    @ResponseBody
+    @PostMapping("/base/DGPayTaxiCardPaymentSpread")
+    public void DGPayTaxiCardPaymentSpread(HttpServletRequest request, HttpServletResponse response){
+        try {
+            String sign =request.getParameter("sign");
+            String resp_data = request.getParameter("resp_data");
+            resp_data =  resp_data.replaceAll("& #40;", "(").replaceAll("& #41;",")");
+
+            boolean verify = RsaUtils.verify(resp_data, "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsWrruP9JBxrUd8uEX5Z8y7pg/UIr5RNHSgDnHqNI1hbi2MfTzB5vZ275wSFFaLDD9BesgDWqsUepPS/opROlDCg9y6WYH8mkN23NmHL9F8kT48OMmH722am+Hp0XVMMwXqA0oNt4f7oW6kDemjZW8/RT4vIE7cyxoxSsVRvjqSpx9wDgFLPWh3o0pHQaoxLyeUsGBATHFrxEDlosBvsuXjMcgjPKXALrcemzKOhBmBkLgyxNVmh61ZK+FNXd+/X4PeZlnWf54NRQAUKe1308E6IIaszo+CjneKuhj1m/X4f7AIvxAqlhuCV5E/DfKRmGopxaWqdtE960Y/H4SmBh2wIDAQAB", sign);
+            System.out.println("斗拱回调  购买出行卡支付回调:");
+            if(verify){
+                JSONObject jsonObject = JSONObject.parseObject(resp_data);
+                String order_id = jsonObject.get("out_trans_id").toString();
+                String out_trade_no = jsonObject.get("req_seq_id").toString();
+                String trans_stat = jsonObject.get("trans_stat").toString();
+                if("S".equals(trans_stat) && ToolUtil.isNotEmpty(out_trade_no)){
+                    out_trade_no = out_trade_no.split("_")[0];
+                    taxiCardService.payTaxiCardPaymentSpread(Integer.valueOf(out_trade_no), order_id);
+
+                    PrintWriter out = response.getWriter();
+                    out.print("success");
+                    out.flush();
+                    out.close();
+
+                }
+
+//                cloudPay(map.get("total_fee"),map.get("transaction_id"),1);
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+    }
+
+
     /**
      * 购买出行卡微信支付回调
      * @param request
@@ -1828,7 +2050,7 @@
                 String out_trade_no = map.get("out_trade_no");
                 String result = map.get("result");
                 System.out.println(out_trade_no+"_"+order_id);
-                if(ToolUtil.isNotEmpty(out_trade_no) && ToolUtil.isNotEmpty(order_id)){
+                if(ToolUtil.isNotEmpty(out_trade_no)){
                     PrintWriter out = response.getWriter();
                     out.write(result);
                     out.flush();
@@ -1913,6 +2135,59 @@
     }
 
 
+
+    /**
+     *  斗拱 感谢费支付回调
+     * @param request
+     * @param response
+     */
+    @ResponseBody
+    @PostMapping("/base/DGPayThankYouFee")
+    public void DGPayThankYouFee(HttpServletRequest request, HttpServletResponse response){
+        try {
+            String sign =request.getParameter("sign");
+            String resp_data = request.getParameter("resp_data");
+            resp_data =  resp_data.replaceAll("& #40;", "(").replaceAll("& #41;",")");
+            boolean verify = RsaUtils.verify(resp_data, "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsWrruP9JBxrUd8uEX5Z8y7pg/UIr5RNHSgDnHqNI1hbi2MfTzB5vZ275wSFFaLDD9BesgDWqsUepPS/opROlDCg9y6WYH8mkN23NmHL9F8kT48OMmH722am+Hp0XVMMwXqA0oNt4f7oW6kDemjZW8/RT4vIE7cyxoxSsVRvjqSpx9wDgFLPWh3o0pHQaoxLyeUsGBATHFrxEDlosBvsuXjMcgjPKXALrcemzKOhBmBkLgyxNVmh61ZK+FNXd+/X4PeZlnWf54NRQAUKe1308E6IIaszo+CjneKuhj1m/X4f7AIvxAqlhuCV5E/DfKRmGopxaWqdtE960Y/H4SmBh2wIDAQAB", sign);
+            if(verify){
+                JSONObject jsonObject = JSONObject.parseObject(resp_data);
+                String order_id = jsonObject.get("out_trans_id").toString();
+                String out_trade_no = jsonObject.get("req_seq_id").toString();
+                String trans_stat = jsonObject.get("trans_stat").toString();
+                if("S".equals(trans_stat) && ToolUtil.isNotEmpty(out_trade_no) && ToolUtil.isNotEmpty(order_id)){
+
+                    String[] s = out_trade_no.split("_");
+                    switch (Integer.valueOf(s[1])){
+                        case 1:
+                            orderPrivateCarService.payThankYouFeeCallback(Integer.valueOf(s[0]), order_id, 1);
+                        case 2:
+                            orderTaxiService.payThankYouFeeCallback(Integer.valueOf(s[0]), order_id, 1);
+                        case 3:
+                            orderCrossCityService.payThankYouFeeCallback(Integer.valueOf(s[0]), order_id, 1);
+                        case 4:
+                            orderLogisticsService.payThankYouFeeCallback(Integer.valueOf(s[0]), order_id, 1);
+                        case 5:
+                            orderLogisticsService.payThankYouFeeCallback(Integer.valueOf(s[0]), order_id, 1);
+                        case 6:
+                            orderCharteredCarService.payThankYouFeeCallback(Integer.valueOf(s[0]), order_id, 1);
+                        case 7:
+                            orderCallService.payThankYouFeeCallback(Integer.valueOf(s[0]), order_id, 1);
+                    }
+
+                    PrintWriter out = response.getWriter();
+                    out.print("success");
+                    out.flush();
+                    out.close();
+
+                }
+//                cloudPay(map.get("total_fee"),map.get("transaction_id"),1);
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+    }
+
+
     /**
      * 感谢费支付回调
      * @param request

--
Gitblit v1.7.1