From 8692f6f0807a1e70f3a1988834b0e5d6a8080753 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期四, 20 七月 2023 15:29:51 +0800
Subject: [PATCH] 更新代码

---
 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java |   82 +++++++++++++++++++++++++++++++++++-----
 1 files changed, 71 insertions(+), 11 deletions(-)

diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
index a37c301..2fffb83 100644
--- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
+++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
@@ -3,16 +3,18 @@
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.stylefeng.guns.core.util.ToolUtil;
 import com.stylefeng.guns.modular.smallLogistics.server.IOrderLogisticsService;
+import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService;
 import com.stylefeng.guns.modular.system.model.OrderPosition;
 import com.stylefeng.guns.modular.system.model.Reassign;
 import com.stylefeng.guns.modular.system.service.IDriverService;
 import com.stylefeng.guns.modular.system.service.IOrderService;
 import com.stylefeng.guns.modular.system.service.IReassignService;
-import com.stylefeng.guns.modular.system.util.ChinaMobileUtil;
-import com.stylefeng.guns.modular.system.util.PushUtil;
-import com.stylefeng.guns.modular.system.util.ResultUtil;
-import com.stylefeng.guns.modular.system.util.SystemException;
+import com.stylefeng.guns.modular.system.util.*;
+import com.stylefeng.guns.modular.system.util.Tingg.model.CallbackRequest;
+import com.stylefeng.guns.modular.system.util.Tingg.model.CallbackResponse;
+import com.stylefeng.guns.modular.system.util.Tingg.model.Payments;
 import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
 import com.stylefeng.guns.modular.system.warpper.MoneyInfoWarpper;
 import com.stylefeng.guns.modular.system.warpper.OrderInfoWarpper;
@@ -22,10 +24,7 @@
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.ResponseBody;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
 import java.io.BufferedReader;
@@ -60,6 +59,9 @@
 
     @Autowired
     private IOrderLogisticsService orderLogisticsService;
+
+    @Autowired
+    private IOrderPrivateCarService orderPrivateCarService;
 
     @Value("${filePath}")
     private String filePath;
@@ -724,19 +726,77 @@
     @ApiImplicitParams({
             @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
             @ApiImplicitParam(value = "订单类型", name = "orderType", required = true, dataType = "int"),
-            @ApiImplicitParam(value = "支付方式(1=线上,2=余额)", name = "payType", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "支付方式(1=手机支付,2=银行卡支付,3=余额)", name = "payType", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "银行卡id", name = "bankCardId", required = false, dataType = "int"),
             @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
     })
-    public ResultUtil payOrder(Integer orderId, Integer orderType, Integer payType, Integer language, HttpServletRequest request){
+    public ResultUtil payOrder(Integer orderId, Integer orderType, Integer payType, Integer bankCardId, Integer language, HttpServletRequest request){
         try {
             Integer uid = driverService.getUserIdFormRedis(request);
             if(null == uid){
                 return ResultUtil.tokenErr();
             }
-            return orderService.payOrder(uid, orderId, orderType, payType, language);
+            return orderService.payOrder(uid, orderId, orderType, payType, bankCardId, language);
         }catch (Exception e){
             e.printStackTrace();
             return ResultUtil.runErr();
         }
     }
+
+
+
+    /**
+     * 完成订单微信支付回调
+     * @param
+     */
+    @ResponseBody
+    @PostMapping("/base/wxPayOrderTaxi")
+    public CallbackResponse wxPayOrderTaxi(@RequestBody CallbackRequest callbackRequest){
+        CallbackResponse callbackResponse = new CallbackResponse();
+        try {
+            /**
+             * 指示服务是否成功或付费的总体请求代码。。
+             * 177-部分付费请求
+             * 178-表明请求已全额支付
+             * 179-表示请求已部分支付但已过期。
+             * 129-请求已过期,未付款。
+             * 180.商户拒绝请求
+             * 183-商户接受请求,我们可以结算资金
+             * 188-商户收到请求。
+             */
+            String request_status_code = callbackRequest.getRequest_status_code();
+            String out_trade_no = callbackRequest.getMerchant_transaction_id();
+            if("177".equals(request_status_code) || "178".equals(request_status_code)){
+                Payments payments = callbackRequest.getPayments().get(0);
+                String order_id = payments.getPayer_transaction_id();
+                if(ToolUtil.isNotEmpty(out_trade_no)){
+                    Integer orderType = Integer.valueOf(out_trade_no.substring(17, 18));
+                    Integer language = Integer.valueOf(out_trade_no.substring(18, 19));
+                    Integer id = Integer.valueOf(out_trade_no.substring(19));
+                    switch (orderType){
+                        case 1:
+                            orderPrivateCarService.payOrderPrivateCarCallback(id, order_id, language);
+                            break;
+                        case 4:
+                            orderLogisticsService.payOrderLogisticsCallback(id, order_id, language);
+                            break;
+                    }
+                    callbackResponse.setCheckout_request_id(order_id);
+                    callbackResponse.setMerchant_transaction_id(out_trade_no);
+                    callbackResponse.setStatus_code("183");
+                    callbackResponse.setStatus_description("Payment processed successfully");
+                    callbackResponse.setReceipt_number(UUIDUtil.getRandomCode(16));
+                }
+            }else{
+                callbackResponse.setCheckout_request_id(UUIDUtil.getRandomCode(16));
+                callbackResponse.setMerchant_transaction_id(out_trade_no);
+                callbackResponse.setStatus_code("180");
+                callbackResponse.setStatus_description("means payment rejected.");
+                callbackResponse.setReceipt_number(UUIDUtil.getRandomCode(16));
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        return callbackResponse;
+    }
 }

--
Gitblit v1.7.1