From 7c48261114a964c5cc3a964bcf00772152d2b531 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期五, 01 八月 2025 13:47:05 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/QianYunTong

---
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTPaymentInfoCallback.java        |   35 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradePayOff1Data.java              |   58 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/DriverPosition.java                                 |    4 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradePayOffData.java               |   63 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradeOrderCreateData.java          |   95 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java                                        |    2 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java                        |   51 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PaymentInfo.java                   |   31 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/IOrderPrivateCarService.java                   |    2 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ModifyTravelItineraryRequest.java  |   39 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TravelItinerary.java               |   64 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateOrderRequest.java            |   53 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/IOrderTaxiService.java                                |    2 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java                          |   12 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java                           |  595 +++
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetPaymentInfo.java                |   45 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/model/OrderTaxi.java                                        |   13 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/UserUtil.java                              |    4 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java                        |  186 +
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java                                        |   11 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/zhenglian/ZhengLianConfig.java                       |    4 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradeRequest.java                  |   31 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongProperties.java               |   84 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/SMSUtil.java                               |    8 
 MessagePushTravel/src/main/java/com/sinata/push/util/echo/DiscardServerHandler.java                                                  |    6 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java                     |   31 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetPaymentInfoDataRequest.java     |   19 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PayInfoData.java                   |   42 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java                       |   14 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetTravelItineraryListRequest.java |   47 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PaymentInfoRequest.java            |   15 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/pdf/TripSheetGenerator.java                                 |    7 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/OrderInfo.java                     |   19 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongConfig.java                   |    7 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java                 |    3 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PaymentOrderRequest.java           |   57 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java                                          |  213 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Driver.java                                           |   41 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java                                         |   41 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java                                          |   19 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTPaymentCallback.java            |   27 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PayInfo.java                       |   31 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java           |  177 
 DriverQYTTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java                                                 |   47 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Company.java                                          |   15 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateTravelItineraryRequest.java  |   43 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserInfo.java                                       |   15 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/EmailUtil.java                                         |   12 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserInfo.java                                         |   15 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java         |   88 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTPaymentCallbackData.java        |   41 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/DriverPosition.java                               |    4 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongProperties.java                 |    1 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradeOrderCreate.java              |   19 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetPaymentInfoRequest.java         |   23 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java                            | 2678 ++++++++-------
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/ServerCarModelWarpper.java                          |   11 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/model/OrderTaxi.java                                          |   77 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java                             |  126 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GoodsInfoRequest.java              |   39 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ListPage.java                      |   27 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java                      |   80 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/zhenglian/TokenUtil.java                             |    1 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java                                           | 4298 ++++++++++++------------
 64 files changed, 6,260 insertions(+), 3,708 deletions(-)

diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
index f459621..8eead38 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
@@ -746,6 +746,7 @@
             if(null == position){
                 position = new DriverPosition();
             }
+            position.setDriverId(orderPosition.getDriverId());
             position.setPoint(point);
             mongoTemplate.save(position);
             //处理业务上的功能
@@ -1831,8 +1832,15 @@
             @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
             @ApiImplicitParam(value = "当前设备IP地址", name = "ip", required = true, dataType = "String"),
             @ApiImplicitParam(value = "当前设备mac地址", name = "mac", required = true, dataType = "String"),
+            @ApiImplicitParam(value = "01 证联收银台支付\n" +
+                    "\t 04 HOME 页\n" +
+                    "\t 06 申请免密签约\n" +
+                    "\t 07 商户收银台支付\n" +
+                    "\t 08 开户(绑卡)\n" +
+                    "\t 09 开通支付账户\n" +
+                    "\t 10 打开付款码", name = "type", required = true, dataType = "String"),
     })
-    public ResultUtil<String> getZLToken(String ip, String mac, HttpServletRequest request){
+    public ResultUtil<String> getZLToken(String ip, String mac, String type, HttpServletRequest request){
         try {
             Integer driverId = driverService.getUserIdFormRedis(request);
             if (null == driverId) {
@@ -1849,6 +1857,7 @@
             tradeTerminalInfo.setTerminal("1");
             tradeTerminalInfo.setMac(mac);
             tokenRequest.setTradeTerminalInfo(tradeTerminalInfo);
+            tokenRequest.setType(type);
             String token = TokenUtil.getToken(tokenRequest);
             return ResultUtil.success(token);
         }catch (Exception e){
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
index 77c0693..57f5b56 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
@@ -4,7 +4,6 @@
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.stylefeng.guns.core.util.DateUtil;
 import com.stylefeng.guns.core.util.ToolUtil;
-import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService;
 import com.stylefeng.guns.modular.crossCity.warpper.OrderCrossCityInfoWrapper;
 import com.stylefeng.guns.modular.crossCity.warpper.OrderWarpper;
 import com.stylefeng.guns.modular.smallLogistics.model.OrderLogistics;
@@ -332,6 +331,9 @@
             return ResultUtil.runErr();
         }
     }
+    
+    
+    
 
     @ResponseBody
     @PostMapping("/api/order/queryOrderInfo1")
@@ -555,6 +557,10 @@
             return ResultUtil.runErr();
         }
     }
+    
+    
+    
+    
 
     @ResponseBody
     @PostMapping("/api/order/cancleOrder")
@@ -572,6 +578,9 @@
             return ResultUtil.runErr();
         }
     }
+    
+    
+    
     @ResponseBody
     @PostMapping("/api/order/updatePeopleNum")
     @ApiOperation(value = "修改人数", tags = {"司机端-服务中"}, notes = "")
@@ -589,6 +598,8 @@
             return ResultUtil.runErr();
         }
     }
+    
+    
 
     @ResponseBody
     @PostMapping("/api/order/confirmFees1")
@@ -724,30 +735,7 @@
     }
 
 
-    @ResponseBody
-    @PostMapping("/base/order/test")
-    public String test(String phoneA, String phoneB){
-        try {
-            Map<String, String> map = chinaMobileUtil.midAxbBindSend(phoneA, phoneB, (System.currentTimeMillis() + 86400000));
-            System.err.println(JSON.toJSONString(map));
-        }catch (Exception e){
-            e.printStackTrace();
-            return "";
-        }
-        return null;
-    }
 
-    @ResponseBody
-    @PostMapping("/base/order/test_")
-    public String test(String bindId){
-        try {
-            Map<String, String> map = chinaMobileUtil.midAxbUnBindSend(bindId, null, null);
-        }catch (Exception e){
-            e.printStackTrace();
-            return "";
-        }
-        return null;
-    }
 
 
     /**
@@ -780,6 +768,9 @@
     }
 
 
+    
+    
+    
     @ResponseBody
     @PostMapping("/api/order/queryVoiceBroadcast")
     @ApiOperation(value = "接单后获取语音播报内容", tags = {"司机端-首页"}, notes = "")
@@ -826,6 +817,8 @@
         }
     }
 
+    
+    
 
 
     @ResponseBody
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java
index 183ac46..c99a141 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java
@@ -443,6 +443,8 @@
     private String promotionUser;
 
     private String promotionPhone;
+    
+    private String travelId;
 
 
     public String getPromotionUser() {
@@ -1196,7 +1198,15 @@
     public void setSplitAllocation(String splitAllocation) {
         this.splitAllocation = splitAllocation;
     }
-
+    
+    public String getTravelId() {
+        return travelId;
+    }
+    
+    public void setTravelId(String travelId) {
+        this.travelId = travelId;
+    }
+    
     @Override
     public String toString() {
         return "OrderPrivateCar{" +
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
index 2599463..90700fe 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -16,6 +16,9 @@
 import com.stylefeng.guns.modular.system.model.*;
 import com.stylefeng.guns.modular.system.service.*;
 import com.stylefeng.guns.modular.system.util.*;
+import com.stylefeng.guns.modular.system.util.qianyuntong.OrderUtil;
+import com.stylefeng.guns.modular.system.util.qianyuntong.model.CreateTravelItineraryRequest;
+import com.stylefeng.guns.modular.system.util.qianyuntong.model.ModifyTravelItineraryRequest;
 import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
 import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -245,7 +248,41 @@
             orderPrivateCar.setPromotionPhone(driver1.getPhone());
             orderPrivateCar.setPromotionDriverId(promotion);
         }
-
+    
+        orderPrivateCar.setPromotion(promotion);
+        
+        if(null == oldDriverId){
+            UserInfo userInfo = userInfoMapper.selectById(orderPrivateCar.getUserId());
+            Company company = companyService.selectById(driver.getCompanyId());
+            //调三方订单中心创建行程单
+            CreateTravelItineraryRequest request = new CreateTravelItineraryRequest();
+            request.setOrderNo("PR" + orderPrivateCar.getId());
+            request.setCustomerId(userInfo.getOnconUUID());
+            request.setDriverId(driver.getEmpId().toString());
+            request.setSupplierShopId(company.getEnterCode());
+            if(2 == orderPrivateCar.getPromotion()){
+                Driver driver1 = driverService.selectById(orderPrivateCar.getPromotionDriverId());
+                request.setPromoterId(driver1.getEmpId().toString());
+            }
+            request.setServiceType(2);
+            String travelItinerary = OrderUtil.createTravelItinerary(request);
+            orderPrivateCar.setTravelId(travelItinerary);
+        }else{
+            //改派抢单
+            Company company1 = companyService.selectById(driver.getCompanyId());
+            //中台修改订单状态
+            ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest();
+            request1.setOrderId(orderPrivateCar.getTravelId());
+            request1.setStatus(orderPrivateCar.getState());
+            request1.setDriverId(driver.getEmpId().toString());
+            if(2 == orderPrivateCar.getPromotion()){
+                Driver driver1 = driverService.selectById(orderPrivateCar.getPromotionDriverId());
+                request1.setPromoterId(driver1.getEmpId().toString());
+            }
+            request1.setSupplierShopId(company1.getEnterCode());
+            OrderUtil.modifyTravelItinerary(request1);
+        }
+        
         this.updateById(orderPrivateCar);
 
         //处理摆渡车的情况
@@ -325,7 +362,7 @@
             }).start();
         }
         
-
+    
         return ResultUtil.success(orderPrivateCar.getId());
     }
 
@@ -522,6 +559,20 @@
                 break;
         }
         this.updateById(orderPrivateCar);
+    
+        Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
+        Company company = companyService.selectById(driver.getCompanyId());
+        //中台修改订单状态
+        ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
+        request.setOrderId(orderPrivateCar.getTravelId());
+        request.setStatus(orderPrivateCar.getState());
+        request.setDriverId(driver.getEmpId().toString());
+        if(2 == orderPrivateCar.getPromotion()){
+            Driver driver1 = driverService.selectById(orderPrivateCar.getPromotionDriverId());
+            request.setPromoterId(driver1.getEmpId().toString());
+        }
+        request.setSupplierShopId(company.getEnterCode());
+        OrderUtil.modifyTravelItinerary(request);
 
         // TODO: 2020/6/5 推送状态
         OrderPrivateCar finalOrderPrivateCar = orderPrivateCar;
@@ -589,20 +640,33 @@
         orderPrivateCar.setOrderMoney(orderPrivateCar.getOrderMoney() + orderPrivateCar.getParkMoney() + orderPrivateCar.getRoadTollMoney());
         orderPrivateCar.setState(7);
         this.updateById(orderPrivateCar);
+        
+        Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
+        Company company = companyService.selectById(driver.getCompanyId());
+        //中台修改订单状态
+        ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
+        request.setOrderId(orderPrivateCar.getTravelId());
+        request.setStatus(7);
+        request.setDriverId(driver.getEmpId().toString());
+        if(2 == orderPrivateCar.getPromotion()){
+            Driver driver1 = driverService.selectById(orderPrivateCar.getPromotionDriverId());
+            request.setPromoterId(driver1.getEmpId().toString());
+        }
+        request.setSupplierShopId(company.getEnterCode());
+        OrderUtil.modifyTravelItinerary(request);
+        
 
         pushUtil.removeTask(orderId, 1);//删除定时任务,结束推送数据
         systemNoticeService.addSystemNotice(1, "司机已结束本次行程,谢谢使用", orderPrivateCar.getUserId(), 1);
 
         //回滚司机状态为空闲
         if(orderPrivateCar.getSpellSuccess()==0){
-            Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
             driver.setState(2);
             driverService.updateById(driver);
         }else{
             if(orderPrivateCar.getPid()==null){
                 Integer number = this.selectCount(new EntityWrapper<OrderPrivateCar>().eq("pid",orderPrivateCar.getPid()==null?orderPrivateCar.getId():orderPrivateCar.getPid()).lt("state",6));
                 if(number<=0){
-                    Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
                     driver.setState(2);
                     driverService.updateById(driver);
                 }
@@ -610,7 +674,6 @@
                 Integer number = this.selectCount(new EntityWrapper<OrderPrivateCar>().eq("pid",orderPrivateCar.getPid()==null?orderPrivateCar.getId():orderPrivateCar.getPid()).lt("state",6));
                 Integer number1 = this.selectCount(new EntityWrapper<OrderPrivateCar>().eq("id",orderPrivateCar.getPid()).lt("state",6));
                 if(number<=0 && number1<=0){
-                    Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
                     driver.setState(2);
                     driverService.updateById(driver);
                 }
@@ -771,12 +834,25 @@
         orderPrivateCar.setOrderMoney(orderPrivateCar.getOrderMoney() + orderPrivateCar.getParkMoney() + orderPrivateCar.getRoadTollMoney() + orderPrivateCar.getHolidayFee() + t);
         orderPrivateCar.setState(7);
         this.updateById(orderPrivateCar);
+    
+        Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
+        Company company1 = companyService.selectById(driver.getCompanyId());
+        //中台修改订单状态
+        ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest();
+        request1.setOrderId(orderPrivateCar.getTravelId());
+        request1.setStatus(orderPrivateCar.getState());
+        request1.setDriverId(driver.getEmpId().toString());
+        if(2 == orderPrivateCar.getPromotion()){
+            Driver driver1 = driverService.selectById(orderPrivateCar.getPromotionDriverId());
+            request1.setPromoterId(driver1.getEmpId().toString());
+        }
+        request1.setSupplierShopId(company1.getEnterCode());
+        OrderUtil.modifyTravelItinerary(request1);
 
         pushUtil.removeTask(orderId, 1);//删除定时任务,结束推送数据
         systemNoticeService.addSystemNotice(1, "司机已结束本次行程,谢谢使用", orderPrivateCar.getUserId(), 1);
 
         //回滚司机状态为空闲
-        Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
         driver.setState(2);
         driverService.updateById(driver);
 
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserInfo.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserInfo.java
index 556a81e..8554b90 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserInfo.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserInfo.java
@@ -146,6 +146,11 @@
      */
 
     private Date bindExpireDate;
+    /**
+     * 中台用户ID
+     */
+    @TableField("onconUUID")
+    private String onconUUID;
 
     public Integer getBindDriverId() {
         return bindDriverId;
@@ -354,7 +359,15 @@
     public void setAppletsOpenId(String appletsOpenId) {
         this.appletsOpenId = appletsOpenId;
     }
-
+    
+    public String getOnconUUID() {
+        return onconUUID;
+    }
+    
+    public void setOnconUUID(String onconUUID) {
+        this.onconUUID = onconUUID;
+    }
+    
     @Override
     public String toString() {
         return "UserInfo{" +
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java
index 72db972..83b5f5e 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java
@@ -16,13 +16,13 @@
 import com.stylefeng.guns.modular.system.dao.RegionMapper;
 import com.stylefeng.guns.modular.system.dao.SysReformistMapper;
 import com.stylefeng.guns.modular.system.model.AdditionalFee;
+import com.stylefeng.guns.modular.system.model.Company;
 import com.stylefeng.guns.modular.system.model.Driver;
 import com.stylefeng.guns.modular.system.model.OrderPosition;
-import com.stylefeng.guns.modular.system.service.IAdditionalFeeService;
-import com.stylefeng.guns.modular.system.service.IDriverService;
-import com.stylefeng.guns.modular.system.service.IOpenCityService;
-import com.stylefeng.guns.modular.system.service.IOrderService;
+import com.stylefeng.guns.modular.system.service.*;
 import com.stylefeng.guns.modular.system.util.*;
+import com.stylefeng.guns.modular.system.util.qianyuntong.OrderUtil;
+import com.stylefeng.guns.modular.system.util.qianyuntong.model.ModifyTravelItineraryRequest;
 import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
 import com.stylefeng.guns.modular.system.warpper.OrderListWarpper;
 import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
@@ -99,6 +99,9 @@
 //    private RedissonClient redissonClient;
     @Autowired
     private IOpenCityService openCityService;
+    
+    @Autowired
+    private ICompanyService companyService;
 
 
 
@@ -509,10 +512,10 @@
     public ResultUtil grabOrder(Integer orderId, Integer orderType, Integer uid) throws Exception {
         //专车和出租是批量下单,所以这里需要将两种类型的抢单操作通过一个锁来一起控制
         if(1 == orderType || 2 == orderType){
-//            RLock lock = redissonClient.getLock("grabOrder:" + orderId);
-//            if(!lock.tryLock()){
-//                return ResultUtil.error("抢单失败,请稍后重试");
-//            }
+            Boolean lock = redisTemplate.opsForValue().setIfAbsent("grabOrder:" + orderId, "1");
+            if(!lock){
+                return ResultUtil.error("抢单失败,请稍后重试");
+            }
             try {
                 if(1 == orderType){
                     return orderPrivateCarService.grabOrder(orderId, uid);
@@ -523,7 +526,7 @@
             }catch (Exception e){
                 e.printStackTrace();
             }finally {
-//                lock.unlock();
+                redisTemplate.delete("grabOrder:" + orderId);
             }
         }
         switch (orderType){
@@ -1181,6 +1184,21 @@
                 orderPrivateCar.setPayMoney(orderPrivateCar.getOrderMoney());
                 orderPrivateCar.setState(8);
                 orderPrivateCarService.updateById(orderPrivateCar);
+    
+                Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
+                Company company1 = companyService.selectById(driver.getCompanyId());
+                //中台修改订单状态
+                ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest();
+                request1.setOrderId(orderPrivateCar.getTravelId());
+                request1.setStatus(orderPrivateCar.getState());
+                request1.setDriverId(driver.getEmpId().toString());
+                if(2 == orderPrivateCar.getPromotion()){
+                    Driver driver1 = driverService.selectById(orderPrivateCar.getPromotionDriverId());
+                    request1.setPromoterId(driver1.getEmpId().toString());
+                }
+                request1.setSupplierShopId(company1.getEnterCode());
+                OrderUtil.modifyTravelItinerary(request1);
+                
                 userId = orderPrivateCar.getUserId();
                 driverId = orderPrivateCar.getDriverId();
                 state = orderPrivateCar.getState();
@@ -1210,6 +1228,21 @@
                 orderTaxi.setPayMoney(orderTaxi.getOrderMoney());
                 orderTaxi.setState(8);
                 orderTaxiService.updateById(orderTaxi);
+    
+                Driver driver1 = driverService.selectById(orderTaxi.getDriverId());
+                Company company = companyService.selectById(driver1.getCompanyId());
+                //中台修改订单状态
+                ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
+                request.setOrderId(orderTaxi.getTravelId());
+                request.setStatus(orderTaxi.getState());
+                request.setDriverId(driver1.getEmpId().toString());
+                if(2 == orderTaxi.getPromotion()){
+                    Driver driver2 = driverService.selectById(orderTaxi.getPromotionDriverId());
+                    request.setPromoterId(driver2.getEmpId().toString());
+                }
+                request.setSupplierShopId(company.getEnterCode());
+                OrderUtil.modifyTravelItinerary(request);
+                
                 userId = orderTaxi.getUserId();
                 driverId = orderTaxi.getDriverId();
                 state = orderTaxi.getState();
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java
index 7fbad66..cd3f3ad 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java
@@ -21,6 +21,8 @@
 import com.stylefeng.guns.modular.system.model.*;
 import com.stylefeng.guns.modular.system.service.*;
 import com.stylefeng.guns.modular.system.util.*;
+import com.stylefeng.guns.modular.system.util.qianyuntong.OrderUtil;
+import com.stylefeng.guns.modular.system.util.qianyuntong.model.ModifyTravelItineraryRequest;
 import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
 import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
 import org.apache.commons.lang.time.DateFormatUtils;
@@ -188,6 +190,20 @@
                         orderPrivateCar.setState(11);
                         orderPrivateCar.setReassignNotice(2);
                         orderPrivateCarService.updateById(orderPrivateCar);
+    
+                        Company company = companyService.selectById(driver.getCompanyId());
+                        //中台修改订单状态
+                        ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
+                        request.setOrderId(orderPrivateCar.getTravelId());
+                        request.setStatus(orderPrivateCar.getState());
+                        request.setDriverId(driver.getEmpId().toString());
+                        if(2 == orderPrivateCar.getPromotion()){
+                            Driver driver1 = driverService.selectById(orderPrivateCar.getPromotionDriverId());
+                            request.setPromoterId(driver1.getEmpId().toString());
+                        }
+                        request.setSupplierShopId(company.getEnterCode());
+                        OrderUtil.modifyTravelItinerary(request);
+                        
 
                         //添加已收入明细
 //                        incomeService.saveData(1, orderPrivateCar.getCompanyId(), 4, orderPrivateCar.getId(), 1, reassign.getMoney());
@@ -200,7 +216,20 @@
                         orderTaxi.setState(11);
                         orderTaxi.setReassignNotice(2);
                         orderTaxiService.updateById(orderTaxi);
-
+    
+                        Company company1 = companyService.selectById(driver.getCompanyId());
+                        //中台修改订单状态
+                        ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest();
+                        request1.setOrderId(orderTaxi.getTravelId());
+                        request1.setStatus(orderTaxi.getState());
+                        request1.setDriverId(driver.getEmpId().toString());
+                        if(2 == orderTaxi.getPromotion()){
+                            Driver driver1 = driverService.selectById(orderTaxi.getPromotionDriverId());
+                            request1.setPromoterId(driver1.getEmpId().toString());
+                        }
+                        request1.setSupplierShopId(company1.getEnterCode());
+                        OrderUtil.modifyTravelItinerary(request1);
+                        
                         //添加已收入明细
 //                        incomeService.saveData(1, orderTaxi.getCompanyId(), 4, orderTaxi.getId(), 2, reassign.getMoney());
 
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java
index 6b0eeaf..e893605 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java
@@ -57,7 +57,7 @@
     
     private Map<String, Timer> taskMap = new HashMap<>();//存储定时推送的定时器
     
-    private final String socket_uri = "http://172.21.35.142:6000";
+    private final String socket_uri = "http://127.0.0.1:6000";
 
 
     // qyt 改派重新推单
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java
new file mode 100644
index 0000000..b0314db
--- /dev/null
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java
@@ -0,0 +1,595 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.google.gson.Gson;
+import com.open.common.util.OpenApiClient;
+import com.open.common.util.SystemParameterNames;
+import com.stylefeng.guns.modular.system.util.UUIDUtil;
+import com.stylefeng.guns.modular.system.util.qianyuntong.model.*;
+import lombok.extern.slf4j.Slf4j;
+
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 9:34
+ */
+@Slf4j
+public class OrderUtil {
+	
+	
+	public static void main(String[] args) {
+		//创建行程
+//		CreateTravelItineraryRequest request = new CreateTravelItineraryRequest();
+//		request.setScene("TRAFFIC");
+//		request.setPartnerId("522700");
+//		request.setOrderNo("01234567890");
+//		request.setCustomerId("11448156");
+//		request.setDriverId("11448158");
+//		request.setSupplierShopId("981100006005951");
+//		request.setServiceType(1);
+//		String travelItinerary = createTravelItinerary(request);
+//		System.err.println(travelItinerary);//1950363840206753792
+		
+		//修改行程状态
+//		ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
+//		request.setScene("TRAFFIC");
+//		request.setPartnerId("522700");
+//		request.setOrderId("1950363840206753792");
+//		request.setStatus(7);
+//		request.setDriverId("11448158");
+//		request.setSupplierShopId("981100006005951");
+//		Boolean aBoolean = modifyTravelItinerary(request);
+		
+		//订单创建及拉起支付
+//		TradeOrderCreateData tradeOrderCreateData = new TradeOrderCreateData();
+//		tradeOrderCreateData.setScene("TRAFFIC");
+//		tradeOrderCreateData.setPartnerId("522700");
+//		tradeOrderCreateData.setTreatShopId("11448158");
+//		tradeOrderCreateData.setOrderAppId("52270015");
+//		tradeOrderCreateData.setField1("{\"profitSharing\":\"1\",\"isPromote\":\"0\"}");
+//		tradeOrderCreateData.setCharge(new BigDecimal("0.01"));
+//		tradeOrderCreateData.setChannelSource("GRJYCXWXXCX");
+//		tradeOrderCreateData.setOrderId("1950363840206753792");
+//		tradeOrderCreateData.setOrderNo("01234567890");
+//		tradeOrderCreateData.setCustomerId("11448156");
+//		tradeOrderCreateData.setPayPartnerId("5400004");
+//		tradeOrderCreateData.setPartnerPayId("1950363840206753792");
+//		tradeOrderCreateData.setCurrency("RMB");
+//		tradeOrderCreateData.setTotalFee("1");
+//		tradeOrderCreateData.setRetUrl("pages/advoad-city-search/advoad-message/electronic-wait-pay/electronic-wait-pay");
+//		tradeOrderCreateData.setClientIp("127.0.0.1");
+//		tradeOrderCreateData.setNeedLoginFlag("N");
+//		tradeOrderCreateData.setOrderDesc("出行订单支付");
+//		tradeOrderCreateData.setAccessMode("APP");
+//
+//		List<GoodsInfoRequest> goodsInfo = new ArrayList<>();
+//		GoodsInfoRequest goodsInfoRequest = new GoodsInfoRequest();
+//		goodsInfoRequest.setId("981100006005901");
+//		goodsInfoRequest.setSubAppId("wxcbad113185a243e1");
+//		goodsInfoRequest.setSubOpenId("oVLur6yFtED8ruXBWUFKXjzXJ_BQ");
+//		goodsInfoRequest.setProfitSharing("1");
+//		goodsInfoRequest.setAreaInfo("520100");
+//		goodsInfoRequest.setPayType("0");
+//		goodsInfoRequest.setBusinessType("10408");
+//		goodsInfo.add(goodsInfoRequest);
+//		tradeOrderCreateData.setGoodsInfo(goodsInfo);
+//		TradeOrderCreate tradeOrderCreate = tradeOrderCreate1(tradeOrderCreateData);
+//		System.err.println(tradeOrderCreate);
+		//TradeOrderCreate(orderInfo=OrderInfo(orderId=1950072223939842048, status=null), payInfo=PayInfo(retCode=000000, retMsg=success, success=true, data=PayInfoData(redirectUrl=https://qhsctest.qytzt.cn/gray/mobile/index.html?f=allCashDesk&accessToken=It5FPM1DUjzwIAin7zwiHvUANWKC6I5USCLE8EKoRkg%3D, payId=540000420250729000135600, status=null, payTime=null, payFee=null, paymentInfos=null), sign=525cb843b1eeb5a0451eeb5fbbe02f0f))
+		
+		//查询支付单信息
+//		GetPaymentInfoDataRequest getPaymentInfoDataRequest = new GetPaymentInfoDataRequest();
+//		getPaymentInfoDataRequest.setPartnerId("5400004");
+//		getPaymentInfoDataRequest.setPartnerPayId("1948685426689200128");
+//		GetPaymentInfo getPaymentInfo = paymentInfo(getPaymentInfoDataRequest);
+//		System.err.println(getPaymentInfo);
+		
+		//拉起支付
+//		TradePayOff1Data tradePayOff1Data = new TradePayOff1Data();
+//		tradePayOff1Data.setPartnerId("5400004");
+//		tradePayOff1Data.setScene("TRAFFIC");
+//		tradePayOff1Data.setPartnerPayId("1948685426689200128");
+//		tradePayOff1Data.setCurrency("RMB");
+//		tradePayOff1Data.setTotalFee("1");
+//		tradePayOff1Data.setRetUrl("/home/");
+//		tradePayOff1Data.setClientIp("127.0.0.1");
+//		tradePayOff1Data.setNeedLoginFlag("N");
+//		tradePayOff1Data.setOrderDesc("出行订单支付");
+//		tradePayOff1Data.setAccessMode("APP");
+//		List<GoodsInfoRequest> goodsInfo = new ArrayList<>();
+//		GoodsInfoRequest goodsInfoRequest = new GoodsInfoRequest();
+//		goodsInfoRequest.setId("981100006005901");
+//		goodsInfoRequest.setSubAppId("wxcbad113185a243e1");
+//		goodsInfoRequest.setSubOpenId("oVLur6yFtED8ruXBWUFKXjzXJ_BQ");
+//		goodsInfoRequest.setProfitSharing("1");
+//		goodsInfoRequest.setAreaInfo("520100");
+//		goodsInfoRequest.setPayType("0");
+//		goodsInfoRequest.setBusinessType("10408");
+//		goodsInfo.add(goodsInfoRequest);
+//		tradePayOff1Data.setGoodsInfo(goodsInfo);
+//		PayInfo payInfo = tradePayOff1(tradePayOff1Data);
+//		System.err.println(payInfo);
+		//PayInfo(retCode=000000, retMsg=success, success=true, data=PayInfoData(redirectUrl=https://qhsctest.qytzt.cn/gray/mobile/index.html?f=allCashDesk&accessToken=5nUBXayFpfZz%2FXUZiMu9LzeRXmqmlqaCS%2BHfu5udIt4%3D, payId=540000420250725000135549, status=null, payTime=null, payFee=null, paymentInfos=null), sign=8154ba2728280900b122c56352c1c7fe)
+		
+		
+		// (补偿单)拉起支付
+//		TradePayOffData tradePayOffData = new TradePayOffData();
+//		tradePayOffData.setPartnerId("5400004");
+//		tradePayOffData.setScene("TRAFFIC");
+//		tradePayOffData.setPartnerPayId("1948685426689200128");
+//		tradePayOffData.setCurrency("RMB");
+//		tradePayOffData.setTotalFee("1");
+//		tradePayOffData.setRetUrl("/home/");
+//		tradePayOffData.setClientIp("127.0.0.1");
+//		tradePayOffData.setNeedLoginFlag("N");
+//		tradePayOffData.setOrderDesc("出行订单支付");
+//		tradePayOffData.setAccessMode("APP");
+//		List<PaymentInfoRequest> paymentInfoRequests = new ArrayList<>();
+//		PaymentInfoRequest paymentInfoRequest = new PaymentInfoRequest();
+//		paymentInfoRequest.setPayModeId("501212");
+//		paymentInfoRequests.add(paymentInfoRequest);
+//		tradePayOffData.setPaymentInfos(paymentInfoRequests);
+//		List<GoodsInfo> goodsInfo = new ArrayList<>();
+//		GoodsInfo goodsInfo1 = new GoodsInfo();
+//		goodsInfo1.setMerchantCode("");
+//		goodsInfo1.setCustId("");
+//		goodsInfo1.setCustName("");
+//		goodsInfo1.setProfitSharing("1");
+//		goodsInfo.add(goodsInfo1);
+//		tradePayOffData.setGoodsInfo(goodsInfo);
+//		PayInfo payInfo1 = tradePayOff(tradePayOffData);
+//		System.err.println(payInfo1);
+		
+		//订单创建
+//		CreateOrderRequest createOrderRequest = new CreateOrderRequest();
+//		createOrderRequest.setTreatShopId("11448158");
+//		createOrderRequest.setOrderAppId("52270015");
+//		createOrderRequest.setScene("TRAFFIC");
+//		createOrderRequest.setPartnerId("522700");
+//		createOrderRequest.setField1("{\"profitSharing\":\"1\",\"isPromote\":\"0\"}");
+//		createOrderRequest.setCharge(new BigDecimal("0.01"));
+//		createOrderRequest.setChannelSource("GRJYCXWXXCX");
+//		createOrderRequest.setOrderId("1948685426689200128");
+//		createOrderRequest.setOrderNo("0123456");
+//		createOrderRequest.setCustomerId("11448156");
+//		OrderInfo orderInfo = tradeOrderCreate(createOrderRequest);
+//		System.err.println(orderInfo);
+		
+		//行程单列表查询
+//		GetTravelItineraryListRequest request = new GetTravelItineraryListRequest();
+//		request.setScene("TRAFFIC");
+//		request.setPartnerId("522700");
+//		request.setCustomerId("11448156");
+//		request.setOrderNo("0123456");
+//		request.setDriverId("11448158");
+//		ListPage<TravelItinerary> travelItineraryList = getTravelItineraryList(request);
+//		System.err.println(travelItineraryList);
+	
+	}
+	
+	/**
+	 * 拉起支付
+	 *
+	 * @param tradePayOff1Data
+	 * @return
+	 */
+	public static PayInfo tradePayOff1(TradePayOff1Data tradePayOff1Data) {
+		TradeRequest request = new TradeRequest<TradePayOff1Data>();
+		request.setSceneId("1911676727023968256");
+		request.setAppId(QianYunTongProperties.appkey);
+		request.setConfigVersion(1);
+		request.setRequestId(UUIDUtil.getRandomCode());
+		request.setData(tradePayOff1Data);
+		//请求路径
+		String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/tradePayOff";
+		//私钥文件
+		String skprivateKeyFile = QianYunTongProperties.privateKeyPath;
+		//注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密
+		String appKey = QianYunTongProperties.appkey;//appkey
+		Map<String, String> headers = new HashMap<>();
+		headers.put("Content-Type", "application/json");
+		Map<String, Object> contentMap = new HashMap<String, Object>();
+		Date nowdate = new Date();
+		SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss");
+		
+		String timeStamp = date.format(nowdate);
+		String messageId = UUIDUtil.getRandomCode();
+		contentMap.put(SystemParameterNames.getAppKey(), appKey);
+		contentMap.put(SystemParameterNames.getMessage_id(), messageId);
+		contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName);
+		contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status);
+		contentMap.put("content", new Gson().toJson(request));
+		log.info("【拉起支付】请求地址:" + url);
+		log.info("【拉起支付】请求参数:" + JSON.toJSONString(contentMap));
+		String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, contentMap);
+		log.info("【拉起支付】请求结果:" + result);
+		JSONObject jsonObject = JSON.parseObject(result);
+		String resCode = jsonObject.getString("resCode");
+		if (!"000000".equals(resCode)) {
+			log.error("【拉起支付】失败:" + jsonObject.getString("resMsg"));
+			throw new RuntimeException("【拉起支付】失败:" + jsonObject.getString("resMsg"));
+		}
+		JSONObject busiResp = jsonObject.getJSONObject("busiResp");
+		PayInfo payInfo = busiResp.getObject("payInfo", PayInfo.class);
+		return payInfo;
+	}
+	
+	/**
+	 * 创建行程单
+	 * @param request
+	 * @return 行程单ID
+	 */
+	public static String createTravelItinerary(CreateTravelItineraryRequest request){
+		request.setScene("TRAFFIC");
+		request.setPartnerId("522700");
+		//请求路径
+		String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/createTravelItinerary";
+		//私钥文件
+		String skprivateKeyFile = QianYunTongProperties.privateKeyPath;
+		//注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密
+		String appKey = QianYunTongProperties.appkey;//appkey
+		Map<String, String> headers = new HashMap<>();
+		headers.put("Content-Type", "application/json");
+		Map<String, Object> contentMap = new HashMap<String, Object>();
+		Date nowdate = new Date();
+		SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss");
+		
+		String timeStamp = date.format(nowdate);
+		String messageId = UUIDUtil.getRandomCode();
+		contentMap.put(SystemParameterNames.getAppKey(), appKey);
+		contentMap.put(SystemParameterNames.getMessage_id(), messageId);
+		contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName);
+		contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status);
+		contentMap.put("content", new Gson().toJson(request));
+		log.info("【创建行程单】请求地址:" + url);
+		log.info("【创建行程单】请求参数:" + JSON.toJSONString(contentMap));
+		String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, contentMap);
+		log.info("【创建行程单】请求结果:" + result);
+		JSONObject jsonObject = JSON.parseObject(result);
+		String resCode = jsonObject.getString("resCode");
+		if(!"000000".equals(resCode)){
+			log.error("【创建行程单】失败:" + jsonObject.getString("resMsg"));
+			throw new RuntimeException("【创建行程单】失败:" + jsonObject.getString("resMsg"));
+		}
+		return jsonObject.getString("busiResp");
+	}
+	
+	
+	
+	/**
+	 * 修改行程单
+	 * @param request
+	 */
+	public static Boolean modifyTravelItinerary(ModifyTravelItineraryRequest request){
+		request.setScene("TRAFFIC");
+		request.setPartnerId("522700");
+		//请求路径
+		String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/modifyTravelItinerary";
+		//私钥文件
+		String skprivateKeyFile = QianYunTongProperties.privateKeyPath;
+		//注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密
+		String appKey = QianYunTongProperties.appkey;//appkey
+		Map<String, String> headers = new HashMap<>();
+		headers.put("Content-Type", "application/json");
+		Map<String, Object> contentMap = new HashMap<String, Object>();
+		Date nowdate = new Date();
+		SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss");
+		
+		String timeStamp = date.format(nowdate);
+		String messageId = UUIDUtil.getRandomCode();
+		contentMap.put(SystemParameterNames.getAppKey(), appKey);
+		contentMap.put(SystemParameterNames.getMessage_id(), messageId);
+		contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName);
+		contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status);
+		contentMap.put("content", new Gson().toJson(request));
+		log.info("【修改行程单】请求地址:" + url);
+		log.info("【修改行程单】请求参数:" + JSON.toJSONString(contentMap));
+		String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, contentMap);
+		log.info("【修改行程单】请求结果:" + result);
+		JSONObject jsonObject = JSON.parseObject(result);
+		String resCode = jsonObject.getString("resCode");
+		if(!"000000".equals(resCode)){
+			log.error("【修改行程单】失败:" + jsonObject.getString("resMsg"));
+			throw new RuntimeException("【修改行程单】失败:" + jsonObject.getString("resMsg"));
+		}
+		return true;
+	}
+	
+	
+	/**
+	 * 行程单列表查询
+	 * @param request
+	 * @return
+	 */
+	public static ListPage<TravelItinerary> getTravelItineraryList(GetTravelItineraryListRequest request){
+		//请求路径
+		String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/getTravelItineraryList";
+		//私钥文件
+		String skprivateKeyFile = QianYunTongProperties.privateKeyPath;
+		//注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密
+		String appKey = QianYunTongProperties.appkey;//appkey
+		Map<String, String> headers = new HashMap<>();
+		headers.put("Content-Type", "application/json");
+		Map<String, Object> contentMap = new HashMap<String, Object>();
+		Date nowdate = new Date();
+		SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss");
+		
+		String timeStamp = date.format(nowdate);
+		String messageId = UUIDUtil.getRandomCode();
+		contentMap.put(SystemParameterNames.getAppKey(), appKey);
+		contentMap.put(SystemParameterNames.getMessage_id(), messageId);
+		contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName);
+		contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status);
+		contentMap.put("content", new Gson().toJson(request));
+		log.info("【行程单列表查询】请求地址:" + url);
+		log.info("【行程单列表查询】请求参数:" + JSON.toJSONString(contentMap));
+		String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, contentMap);
+		log.info("【行程单列表查询】请求结果:" + result);
+		JSONObject jsonObject = JSON.parseObject(result);
+		String resCode = jsonObject.getString("resCode");
+		if(!"000000".equals(resCode)){
+			log.error("【行程单列表查询】失败:" + jsonObject.getString("resMsg"));
+			throw new RuntimeException("【行程单列表查询】失败:" + jsonObject.getString("resMsg"));
+		}
+		JSONObject busiResp = jsonObject.getJSONObject("busiResp");
+		Integer total = busiResp.getInteger("total");
+		Integer pageNum = busiResp.getInteger("pageNum");
+		Integer pageSize = busiResp.getInteger("pageSize");
+		JSONArray list = busiResp.getJSONArray("list");
+		List<TravelItinerary> travelItineraryList = new ArrayList<>();
+		for (int i = 0; i < list.size(); i++) {
+			TravelItinerary object = list.getObject(i, TravelItinerary.class);
+			travelItineraryList.add(object);
+		}
+		ListPage listPage = new ListPage<TravelItinerary>();
+		listPage.setTotal(total);
+		listPage.setPageNum(pageNum);
+		listPage.setPageSize(pageSize);
+		listPage.setList(travelItineraryList);
+		return listPage;
+	}
+	
+	/**
+	 * 订单创建及拉起支付
+	 *
+	 * @param tradeOrderCreateData
+	 * @return
+	 */
+	public static TradeOrderCreate tradeOrderCreate1(TradeOrderCreateData tradeOrderCreateData) {
+		TradeRequest request = new TradeRequest<TradeOrderCreateData>();
+		request.setSceneId("1945688132719169536");
+		request.setAppId(QianYunTongProperties.appkey);
+		request.setConfigVersion(1);
+		request.setRequestId(UUIDUtil.getRandomCode());
+		request.setData(tradeOrderCreateData);
+		
+		//请求路径
+		String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/tradeOrderCreate";
+		//私钥文件
+		String skprivateKeyFile = QianYunTongProperties.privateKeyPath;
+		//注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密
+		String appKey = QianYunTongProperties.appkey;//appkey
+		Map<String, String> headers = new HashMap<>();
+		headers.put("Content-Type", "application/json");
+		Map<String, Object> contentMap = new HashMap<String, Object>();
+		Date nowdate = new Date();
+		SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss");
+		
+		String timeStamp = date.format(nowdate);
+		String messageId = UUIDUtil.getRandomCode();
+		contentMap.put(SystemParameterNames.getAppKey(), appKey);
+		contentMap.put(SystemParameterNames.getMessage_id(), messageId);
+		contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName);
+		contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status);
+		contentMap.put("content", new Gson().toJson(request));
+		log.info("【订单创建及拉起支付】请求地址:" + url);
+		log.info("【订单创建及拉起支付】请求参数:" + JSON.toJSONString(contentMap));
+		String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, contentMap);
+		log.info("【订单创建及拉起支付】请求结果:" + result);
+		JSONObject jsonObject = JSON.parseObject(result);
+		String resCode = jsonObject.getString("resCode");
+		if (!"000000".equals(resCode)) {
+			log.error("【订单创建及拉起支付】失败:" + jsonObject.getString("resMsg"));
+			throw new RuntimeException("【订单创建及拉起支付】失败:" + jsonObject.getString("resMsg"));
+		}
+		TradeOrderCreate busiResp = jsonObject.getObject("busiResp", TradeOrderCreate.class);
+		return busiResp;
+	}
+	
+	/**
+	 * 订单创建
+	 *
+	 * @param createOrderRequest
+	 * @return
+	 */
+	public static OrderInfo tradeOrderCreate(CreateOrderRequest createOrderRequest) {
+		TradeRequest request = new TradeRequest<CreateOrderRequest>();
+		request.setSceneId(QianYunTongProperties.sceneId);
+		request.setAppId(QianYunTongProperties.appkey);
+		request.setConfigVersion(1);
+		request.setRequestId(UUIDUtil.getRandomCode());
+		request.setData(createOrderRequest);
+		//请求路径
+		String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/tradeOrderCreate";
+		//私钥文件
+		String skprivateKeyFile = QianYunTongProperties.privateKeyPath;
+		//注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密
+		String appKey = QianYunTongProperties.appkey;//appkey
+		Map<String, String> headers = new HashMap<>();
+		headers.put("Content-Type", "application/json");
+		Map<String, Object> contentMap = new HashMap<String, Object>();
+		Date nowdate = new Date();
+		SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss");
+		
+		String timeStamp = date.format(nowdate);
+		String messageId = UUIDUtil.getRandomCode();
+		contentMap.put(SystemParameterNames.getAppKey(), appKey);
+		contentMap.put(SystemParameterNames.getMessage_id(), messageId);
+		contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName);
+		contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status);
+		contentMap.put("content", new Gson().toJson(request));
+		log.info("【订单创建】请求地址:" + url);
+		log.info("【订单创建】请求参数:" + JSON.toJSONString(contentMap));
+		String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, contentMap);
+		log.info("【订单创建】请求结果:" + result);
+		JSONObject jsonObject = JSON.parseObject(result);
+		String resCode = jsonObject.getString("resCode");
+		if (!"000000".equals(resCode)) {
+			log.error("【订单创建】失败:" + jsonObject.getString("resMsg"));
+			throw new RuntimeException("【订单创建】失败:" + jsonObject.getString("resMsg"));
+		}
+		JSONObject busiResp = jsonObject.getJSONObject("busiResp");
+		OrderInfo orderInfo = busiResp.getObject("orderInfo", OrderInfo.class);
+		return orderInfo;
+	}
+	
+	/**
+	 * (补偿单)拉起支付
+	 *
+	 * @param tradePayOffData
+	 * @return
+	 */
+	public static PayInfo tradePayOff(TradePayOffData tradePayOffData) {
+		TradeRequest request = new TradeRequest<TradePayOffData>();
+		request.setSceneId("1774717104844095488");
+		request.setAppId(QianYunTongProperties.appkey);
+		request.setConfigVersion(1);
+		request.setRequestId(UUIDUtil.getRandomCode());
+		request.setData(tradePayOffData);
+		//请求路径
+		String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/tradePayOff";
+		//私钥文件
+		String skprivateKeyFile = QianYunTongProperties.privateKeyPath;
+		//注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密
+		String appKey = QianYunTongProperties.appkey;//appkey
+		Map<String, String> headers = new HashMap<>();
+		headers.put("Content-Type", "application/json");
+		Map<String, Object> contentMap = new HashMap<String, Object>();
+		Date nowdate = new Date();
+		SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss");
+		
+		String timeStamp = date.format(nowdate);
+		String messageId = UUIDUtil.getRandomCode();
+		contentMap.put(SystemParameterNames.getAppKey(), appKey);
+		contentMap.put(SystemParameterNames.getMessage_id(), messageId);
+		contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName);
+		contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status);
+		contentMap.put("content", new Gson().toJson(request));
+		log.info("【(补偿单)拉起支付】请求地址:" + url);
+		log.info("【(补偿单)拉起支付】请求参数:" + JSON.toJSONString(contentMap));
+		String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, contentMap);
+		log.info("【(补偿单)拉起支付】请求结果:" + result);
+		JSONObject jsonObject = JSON.parseObject(result);
+		String resCode = jsonObject.getString("resCode");
+		if (!"000000".equals(resCode)) {
+			log.error("【(补偿单)拉起支付】失败:" + jsonObject.getString("resMsg"));
+			throw new RuntimeException("【(补偿单)拉起支付】失败:" + jsonObject.getString("resMsg"));
+		}
+		JSONObject busiResp = jsonObject.getJSONObject("busiResp");
+		PayInfo payInfo = busiResp.getObject("payInfo", PayInfo.class);
+		return payInfo;
+	}
+	
+	
+	/**
+	 * 查询支付单信息
+	 * @param getPaymentInfoDataRequest
+	 * @return
+	 */
+	public static GetPaymentInfo paymentInfo(GetPaymentInfoDataRequest getPaymentInfoDataRequest){
+		GetPaymentInfoRequest request = new GetPaymentInfoRequest();
+		request.setRequstType("POST");
+		request.setBusType(1);
+		request.setData(getPaymentInfoDataRequest);
+		
+		//请求路径
+		String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/paymentInfo";
+		//私钥文件
+		String skprivateKeyFile = QianYunTongProperties.privateKeyPath;
+		//注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密
+		String appKey = QianYunTongProperties.appkey;//appkey
+		Map<String, String> headers = new HashMap<>();
+		headers.put("Content-Type", "application/json");
+		Map<String, Object> contentMap = new HashMap<String, Object>();
+		Date nowdate = new Date();
+		SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss");
+		
+		String timeStamp = date.format(nowdate);
+		String messageId = UUIDUtil.getRandomCode();
+		contentMap.put(SystemParameterNames.getAppKey(), appKey);
+		contentMap.put(SystemParameterNames.getMessage_id(), messageId);
+		contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName);
+		contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status);
+		contentMap.put("content", new Gson().toJson(request));
+		log.info("【查询支付单信息】请求地址:" + url);
+		log.info("【查询支付单信息】请求参数:" + JSON.toJSONString(contentMap));
+		String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, contentMap);
+		log.info("【查询支付单信息】请求结果:" + result);
+		JSONObject jsonObject = JSON.parseObject(result);
+		String resCode = jsonObject.getString("retCode");
+		if(!"0".equals(resCode)){
+			log.error("【查询支付单信息】失败:" + jsonObject.getString("retMsg"));
+			throw new RuntimeException("【查询支付单信息】失败:" + jsonObject.getString("retMsg"));
+		}
+		JSONObject object = jsonObject.getJSONObject("object");
+		String retCode = object.getString("retCode");
+		if(!"000000".equals(retCode)){
+			log.error("【查询支付单信息】失败:" + jsonObject.getString("retMsg"));
+			throw new RuntimeException("【查询支付单信息】失败:" + jsonObject.getString("retMsg"));
+		}
+		GetPaymentInfo payInfo = object.getObject("data", GetPaymentInfo.class);
+		return payInfo;
+	}
+	
+	
+	/**
+	 * (补偿单)支付成功通知
+	 * @param request
+	 * @return
+	 */
+	public static OrderInfo paymentOrder(PaymentOrderRequest request){
+		//请求路径
+		String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/paymentOrder";
+		//私钥文件
+		String skprivateKeyFile = QianYunTongProperties.privateKeyPath;
+		//注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密
+		String appKey = QianYunTongProperties.appkey;//appkey
+		Map<String, String> headers = new HashMap<>();
+		headers.put("Content-Type", "application/json");
+		Map<String, Object> contentMap = new HashMap<String, Object>();
+		Date nowdate = new Date();
+		SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss");
+		
+		String timeStamp = date.format(nowdate);
+		String messageId = UUIDUtil.getRandomCode();
+		contentMap.put(SystemParameterNames.getAppKey(), appKey);
+		contentMap.put(SystemParameterNames.getMessage_id(), messageId);
+		contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName);
+		contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status);
+		contentMap.put("content", new Gson().toJson(request));
+		log.info("【(补偿单)支付成功通知】请求地址:" + url);
+		log.info("【(补偿单)支付成功通知】请求参数:" + JSON.toJSONString(contentMap));
+		String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, contentMap);
+		log.info("【(补偿单)支付成功通知】请求结果:" + result);
+		JSONObject jsonObject = JSON.parseObject(result);
+		String resCode = jsonObject.getString("resCode");
+		if(!"0".equals(resCode)){
+			log.error("【(补偿单)支付成功通知】失败:" + jsonObject.getString("resMsg"));
+			throw new RuntimeException("【(补偿单)支付成功通知】失败:" + jsonObject.getString("resMsg"));
+		}
+		OrderInfo orderInfo = jsonObject.getObject("busiResp", OrderInfo.class);
+		return orderInfo;
+	}
+	
+	
+	
+	
+	
+	
+	
+	
+}
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongConfig.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongConfig.java
index 99a7c02..84d54b2 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongConfig.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongConfig.java
@@ -62,6 +62,10 @@
 	 * 向UAAS服务请求到的secret_key
 	 */
 	private String secretKey;
+	/**
+	 * 场景编号
+	 */
+	String sceneId;
 	
 	
 	public QianYunTongConfig getQianYunTongConfig() {
@@ -77,6 +81,7 @@
 			this.setAccount("d8bef0a04db511f0b79d01a3e2b7587e");
 			this.setAccessKey("TYMFTFD5SIIT15DCCUD7");
 			this.setSecretKey("AoI1dkH3yoAvXoaQlREO3ed9mwQJFluLTliS9T1z");
+			this.sceneId = "1948289607125864448";
 		}
 		if("test".equals(activeProfile)){
 			this.setAppkey("10001104");
@@ -90,6 +95,7 @@
 			this.setAccount("d8bef0a04db511f0b79d01a3e2b7587e");
 			this.setAccessKey("TYMFTFD5SIIT15DCCUD7");
 			this.setSecretKey("AoI1dkH3yoAvXoaQlREO3ed9mwQJFluLTliS9T1z");
+			this.sceneId = "1948289607125864448";
 		}
 		if("prod".equals(activeProfile)){
 			this.setAppkey("10001104");
@@ -103,6 +109,7 @@
 			this.setAccount("d8bef0a04db511f0b79d01a3e2b7587e");
 			this.setAccessKey("TYMFTFD5SIIT15DCCUD7");
 			this.setSecretKey("AoI1dkH3yoAvXoaQlREO3ed9mwQJFluLTliS9T1z");
+			this.sceneId = "";
 		}
 		return this;
 	}
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongProperties.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongProperties.java
index d06297f..0cf0368 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongProperties.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongProperties.java
@@ -9,41 +9,6 @@
 public interface QianYunTongProperties {
 	/************************************开发/测试start***********************************/
 
-//	/**
-//	 * appkey
-//	 */
-//	String appkey = "10001104";
-//	/**
-//	 * 私钥地址
-//	 */
-//	String privateKeyPath = "C:\\Users\\39373\\Desktop\\黔云通\\private_key_test.pem";
-//	/**
-//	 * 私钥地址
-//	 */
-//	String privateKeyPath = "/root/server/app/key/private_key_test.pem";
-//	/**
-//	 * 消费者账号
-//	 */
-//	String userName = "xiaofei";
-//	/**
-//	 * 状态
-//	 * 1:生产环境
-//	 * 2:测试环境
-//	 */
-//	String status = "1";
-//	/**
-//	 * API地址
-//	 */
-//	String apiUrl = "https://test-zhongtai.stqcloud.com:10070";
-//	/**
-//	 * 桶名
-//	 */
-//	String bucketName = "bucuTest0625";
-	
-	/************************************开发/测试end***********************************/
-	
-	/************************************生产start***********************************/
-	
 	/**
 	 * appkey
 	 */
@@ -51,15 +16,15 @@
 	/**
 	 * 私钥地址
 	 */
-//	String privateKeyPath = "C:\\Users\\39373\\Desktop\\黔云通\\private_key.pem";
+	String privateKeyPath = "C:\\Users\\39373\\Desktop\\黔云通\\private_key_test.pem";
 	/**
 	 * 私钥地址
 	 */
-	String privateKeyPath = "/root/server/app/key/private_key.pem";
+//	String privateKeyPath = "/root/server/app/key/private_key_test.pem";
 	/**
 	 * 消费者账号
 	 */
-	String userName = "xiwang";
+	String userName = "xiaofei";
 	/**
 	 * 状态
 	 * 1:生产环境
@@ -69,11 +34,50 @@
 	/**
 	 * API地址
 	 */
-	String apiUrl = "http://jjzhongtai.stqcloud.com:10010";
+	String apiUrl = "https://test-zhongtai.stqcloud.com:10070";
 	/**
 	 * 桶名
 	 */
-	String bucketName = "qyt20250702";
+	String bucketName = "bucuTest0625";
+	/**
+	 * 场景编号
+	 */
+	String sceneId = "1948289607125864448";
+	
+	/************************************开发/测试end***********************************/
+	
+	/************************************生产start***********************************/
+	
+//	/**
+//	 * appkey
+//	 */
+//	String appkey = "10001104";
+//	/**
+//	 * 私钥地址
+//	 */
+////	String privateKeyPath = "C:\\Users\\39373\\Desktop\\黔云通\\private_key.pem";
+//	/**
+//	 * 私钥地址
+//	 */
+//	String privateKeyPath = "/root/server/app/key/private_key.pem";
+//	/**
+//	 * 消费者账号
+//	 */
+//	String userName = "xiwang";
+//	/**
+//	 * 状态
+//	 * 1:生产环境
+//	 * 2:测试环境
+//	 */
+//	String status = "1";
+//	/**
+//	 * API地址
+//	 */
+//	String apiUrl = "http://jjzhongtai.stqcloud.com:10010";
+//	/**
+//	 * 桶名
+//	 */
+//	String bucketName = "qyt20250702";
 	
 	/************************************生产end***********************************/
 	
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateOrderRequest.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateOrderRequest.java
new file mode 100644
index 0000000..2201301
--- /dev/null
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateOrderRequest.java
@@ -0,0 +1,53 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 9:35
+ */
+@Data
+public class CreateOrderRequest {
+	/**
+	 * 司机id
+	 */
+	private String treatShopId;
+	/**
+	 * 应用场景标识
+	 */
+	private String orderAppId;
+	/**
+	 * 场景标识
+	 */
+	private String scene;
+	/**
+	 * 租户ID。地区行政编码。黔南州传522700
+	 */
+	private String partnerId;
+	/**
+	 * 结算信息json串。其中结算分账标识(profitSharing:0:不分账,1:分账)、是否推广单标识(isPromote:1、是、0、否)必传。例:{"profitSharing":"0",”isPromote”:”0”}
+	 */
+	private String field1;
+	/**
+	 * 订单总金额,单位元
+	 */
+	private BigDecimal charge;
+	/**
+	 * 订单渠道。小程序传GRJYCXWXXCX,贵人家园传GRJY
+	 */
+	private String channelSource;
+	/**
+	 * 行程单ID
+	 */
+	private String orderId;
+	/**
+	 * 业务侧订单号
+	 */
+	private String orderNo;
+	/**
+	 * 下单人ID
+	 */
+	private String customerId;
+}
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateTravelItineraryRequest.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateTravelItineraryRequest.java
new file mode 100644
index 0000000..8ce9043
--- /dev/null
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateTravelItineraryRequest.java
@@ -0,0 +1,43 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 16:31
+ */
+@Data
+public class CreateTravelItineraryRequest {
+	/**
+	 * 场景标识。交通场景传”TRAFFIC”
+	 */
+	private String scene;
+	/**
+	 * 租户ID。地区行政编码。黔南州传522700
+	 */
+	private String partnerId;
+	/**
+	 * 业务侧订单号
+	 */
+	private String orderNo;
+	/**
+	 * 乘客ID
+	 */
+	private String customerId;
+	/**
+	 * 司机ID
+	 */
+	private String driverId;
+	/**
+	 * 推广员ID
+	 */
+	private String promoterId;
+	/**
+	 * 服务商商户ID
+	 */
+	private String supplierShopId;
+	/**
+	 * 场景服务类型。1、出租;2、网约车;3、城际;4、顺风车
+	 */
+	private Integer serviceType;
+}
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetPaymentInfo.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetPaymentInfo.java
new file mode 100644
index 0000000..4718623
--- /dev/null
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetPaymentInfo.java
@@ -0,0 +1,45 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 18:24
+ */
+@Data
+public class GetPaymentInfo {
+	/**
+	 * 支付流水号
+	 */
+	private String payId;
+	/**
+	 * 订单中心行程单ID
+	 */
+	private String partnerPayId;
+	/**
+	 * 接入模式:PC H5 APP
+	 */
+	private String accessMode;
+	/**
+	 * 用户标识
+	 */
+	private String customerId;
+	/**
+	 * 商户标识
+	 */
+	private String partnerId;
+	/**
+	 * 币种
+	 */
+	private String currency;
+	/**
+	 * 支付总金额
+	 */
+	private String totalFee;
+	/**
+	 * 商品信息
+	 */
+	private List<GoodsInfoRequest> goodsInfo;
+}
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetPaymentInfoDataRequest.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetPaymentInfoDataRequest.java
new file mode 100644
index 0000000..c7828b8
--- /dev/null
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetPaymentInfoDataRequest.java
@@ -0,0 +1,19 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 17:08
+ */
+@Data
+public class GetPaymentInfoDataRequest {
+	/**
+	 * 支付单标识。传行程单ID
+	 */
+	private String partnerPayId;
+	/**
+	 * 商户号,由支付中心分配
+	 */
+	private String partnerId;
+}
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetPaymentInfoRequest.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetPaymentInfoRequest.java
new file mode 100644
index 0000000..dfd62c0
--- /dev/null
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetPaymentInfoRequest.java
@@ -0,0 +1,23 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 17:03
+ */
+@Data
+public class GetPaymentInfoRequest {
+	/**
+	 * 默认传POST
+	 */
+	private String requstType;
+	/**
+	 * 默认传1
+	 */
+	private Integer busType;
+	/**
+	 * 业务参数
+	 */
+	private GetPaymentInfoDataRequest data;
+}
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetTravelItineraryListRequest.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetTravelItineraryListRequest.java
new file mode 100644
index 0000000..fa978a7
--- /dev/null
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetTravelItineraryListRequest.java
@@ -0,0 +1,47 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 16:31
+ */
+@Data
+public class GetTravelItineraryListRequest {
+	/**
+	 * 场景标识。交通场景传”TRAFFIC”
+	 */
+	private String scene;
+	/**
+	 * 租户ID。地区行政编码。黔南州传522700
+	 */
+	private String partnerId;
+	/**
+	 * 业务侧订单号
+	 */
+	private String orderNo;
+	/**
+	 * 乘客ID
+	 */
+	private String customerId;
+	/**
+	 * 司机ID
+	 */
+	private String driverId;
+	/**
+	 * 推广员ID
+	 */
+	private String promoterId;
+	/**
+	 * 服务商商户ID
+	 */
+	private String supplierShopId;
+	/**
+	 * 每页条数
+	 */
+	private Integer pageSize;
+	/**
+	 * 当前页码
+	 */
+	private Integer pageNum;
+}
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GoodsInfoRequest.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GoodsInfoRequest.java
new file mode 100644
index 0000000..b3d7f21
--- /dev/null
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GoodsInfoRequest.java
@@ -0,0 +1,39 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 10:13
+ */
+@Data
+public class GoodsInfoRequest {
+	/**
+	 * 企业ID(补偿场景新创建的订单支付传备用金企业ID)
+	 */
+	private String id;
+	/**
+	 * 子商户微信appId(证联预下单支付必填)
+	 */
+	private String subAppId;
+	/**
+	 * 付款人的openId(证联预下单支付必填)
+	 */
+	private String subOpenId;
+	/**
+	 * 分账标识。0:不分账,1:分账
+	 */
+	private String profitSharing;
+	/**
+	 * 地区标识,默认传520100
+	 */
+	private String areaInfo;
+	/**
+	 * 是否匿名。默认传0
+	 */
+	private String payType;
+	/**
+	 * 业务类型,默认传10408
+	 */
+	private String businessType;
+}
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ListPage.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ListPage.java
new file mode 100644
index 0000000..eda232f
--- /dev/null
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ListPage.java
@@ -0,0 +1,27 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 16:45
+ */
+@Data
+public class ListPage<T> {
+	/**
+	 * 总条数
+	 */
+	private Integer total;
+	/**
+	 * 当前页码
+	 */
+	private Integer pageNum;
+	/**
+	 * 每页条数
+	 */
+	private Integer pageSize;
+	/**
+	 * 数据列表
+	 */
+	private T list;
+}
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ModifyTravelItineraryRequest.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ModifyTravelItineraryRequest.java
new file mode 100644
index 0000000..f7ff87c
--- /dev/null
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ModifyTravelItineraryRequest.java
@@ -0,0 +1,39 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 16:31
+ */
+@Data
+public class ModifyTravelItineraryRequest {
+	/**
+	 * 场景标识。交通场景传”TRAFFIC”
+	 */
+	private String scene;
+	/**
+	 * 租户ID。地区行政编码。黔南州传522700
+	 */
+	private String partnerId;
+	/**
+	 * 行程单ID
+	 */
+	private String orderId;
+	/**
+	 * 行程单状态。2=待出发,3=待到达预约地点,4=待乘客上车,5=服务中,6=完成服务,7=待支付,9=已完成,10=已取消,11=改派中
+	 */
+	private Integer status;
+	/**
+	 * 司机ID
+	 */
+	private String driverId;
+	/**
+	 * 推广员ID
+	 */
+	private String promoterId;
+	/**
+	 * 服务商商户ID
+	 */
+	private String supplierShopId;
+}
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/OrderInfo.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/OrderInfo.java
new file mode 100644
index 0000000..ef627a3
--- /dev/null
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/OrderInfo.java
@@ -0,0 +1,19 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 9:44
+ */
+@Data
+public class OrderInfo {
+	/**
+	 * 订单id
+	 */
+	private String orderId;
+	/**
+	 * 订单状态
+	 */
+	private String status;
+}
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PayInfo.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PayInfo.java
new file mode 100644
index 0000000..c990caa
--- /dev/null
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PayInfo.java
@@ -0,0 +1,31 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 10:18
+ */
+@Data
+public class PayInfo {
+	/**
+	 * 证联返回码000000:请求成功
+	 */
+	private String retCode;
+	/**
+	 * 证联返回信息
+	 */
+	private String retMsg;
+	/**
+	 * true、false
+	 */
+	private String success;
+	/**
+	 * 证联返回数据
+	 */
+	private PayInfoData data;
+	/**
+	 * 签名
+	 */
+	private String sign;
+}
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PayInfoData.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PayInfoData.java
new file mode 100644
index 0000000..24cf5e5
--- /dev/null
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PayInfoData.java
@@ -0,0 +1,42 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 10:18
+ */
+@Data
+public class PayInfoData {
+	/**
+	 * 收银台链接
+	 */
+	private String redirectUrl;
+	/**
+	 * 支付流水号
+	 */
+	private String payId;
+	/**
+	 * 支付工单状态
+	 * 0	待支付
+	 * 1	部分支付成功
+	 * 2	支付成功
+	 * 3	支付失败
+	 */
+	private String status;
+	/**
+	 * 支付时间,格式:yyyy-MM-dd HH:mm:ss
+	 */
+	private String payTime;
+	/**
+	 * 扣款金额 单位分
+	 */
+	private String payFee;
+	/**
+	 * 支付信息
+	 */
+	private List<PaymentInfo> paymentInfos;
+	
+}
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PaymentInfo.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PaymentInfo.java
new file mode 100644
index 0000000..7db70c7
--- /dev/null
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PaymentInfo.java
@@ -0,0 +1,31 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 10:32
+ */
+@Data
+public class PaymentInfo {
+	/**
+	 * 支付模式。此场景下默认传501212(测试和生产一致)
+	 */
+	private String payModeId;
+	/**
+	 * 支付交易明细标识
+	 */
+	private String payItemId;
+	/**
+	 * 支付金额
+	 */
+	private String payFee;
+	/**
+	 * 支付状态
+	 */
+	private String status;
+	/**
+	 * 支付时间
+	 */
+	private String payTime;
+}
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PaymentInfoRequest.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PaymentInfoRequest.java
new file mode 100644
index 0000000..dbd52bc
--- /dev/null
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PaymentInfoRequest.java
@@ -0,0 +1,15 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 10:32
+ */
+@Data
+public class PaymentInfoRequest {
+	/**
+	 * 支付模式。此场景下默认传501212(测试和生产一致)
+	 */
+	private String payModeId;
+}
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PaymentOrderRequest.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PaymentOrderRequest.java
new file mode 100644
index 0000000..4fbf0ce
--- /dev/null
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PaymentOrderRequest.java
@@ -0,0 +1,57 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 18:29
+ */
+@Data
+public class PaymentOrderRequest {
+	/**
+	 * 场景标识。交通场景传”TRAFFIC”
+	 */
+	private String scene;
+	/**
+	 * 场景应用标识。默认52270015
+	 */
+	private String mhltiCenterAppId;
+	/**
+	 * 支付流水明细
+	 */
+	private String payItemId;
+	/**
+	 * 支付明细json串
+	 */
+	private String paymentInfo;
+	/**
+	 * 订单ID
+	 */
+	private String orderId;
+	/**
+	 * 支付金额,单位元
+	 */
+	private BigDecimal charge;
+	/**
+	 * 支付时间
+	 */
+	private String payTime;
+	/**
+	 * 支付流水号
+	 */
+	private String paymentSerialNumber;
+	/**
+	 * 付款类型,4、线上支付
+	 */
+	private Integer payType;
+	/**
+	 * 付款方式,6:微信  7:支付宝  8:银行卡 9:银联二维码 10银联购物车收银台
+	 */
+	private Integer payChannel;
+	/**
+	 * 是否补偿单。1、是,0、否
+	 */
+	private Integer isCompensate;
+}
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTPaymentCallback.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTPaymentCallback.java
new file mode 100644
index 0000000..801e14d
--- /dev/null
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTPaymentCallback.java
@@ -0,0 +1,27 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 19:31
+ */
+@Data
+public class QYTPaymentCallback {
+	/**
+	 * 加密字符串
+	 */
+	private String sign;
+	/**
+	 * 时间戳
+	 */
+	private String timeStamp;
+	/**
+	 * 请求调用唯一标识
+	 */
+	private String messageId;
+	/**
+	 * 支付结果信息
+	 */
+	private QYTPaymentCallbackData data;
+}
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTPaymentCallbackData.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTPaymentCallbackData.java
new file mode 100644
index 0000000..4bf8523
--- /dev/null
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTPaymentCallbackData.java
@@ -0,0 +1,41 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 19:34
+ */
+@Data
+public class QYTPaymentCallbackData {
+	/**
+	 * 商户单标识。行程单ID
+	 */
+	private String partnerPayId;
+	/**
+	 * 支付中心商户号
+	 */
+	private String partnerId;
+	/**
+	 * 支付工单标识
+	 */
+	private String payId;
+	/**
+	 * 支付状态。1.未支付 2已支付
+	 */
+	private String status;
+	/**
+	 * 支付时间,格式:YYYY-MM-DD HH:mm:ss
+	 */
+	private String payTime;
+	/**
+	 * 扣款总金额 单位分
+	 */
+	private String payFee;
+	/**
+	 * 支付详细信息
+	 */
+	private List<QYTPaymentInfoCallback> paymentInfos;
+}
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTPaymentInfoCallback.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTPaymentInfoCallback.java
new file mode 100644
index 0000000..19c03d3
--- /dev/null
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTPaymentInfoCallback.java
@@ -0,0 +1,35 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 19:37
+ */
+@Data
+public class QYTPaymentInfoCallback {
+	/**
+	 * 支付交易明细标识
+	 */
+	private String payItemId;
+	/**
+	 * 支付模式
+	 */
+	private String payModeId;
+	/**
+	 * 支付金额,单位分
+	 */
+	private String payFee;
+	/**
+	 * 实付金额,单位分
+	 */
+	private String realFee;
+	/**
+	 * 支付状态。1.未支付 2已支付
+	 */
+	private String status;
+	/**
+	 * 支付时间,格式:YYYY-MM-DD HH:mm:ss
+	 */
+	private String payTime;
+}
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradeOrderCreate.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradeOrderCreate.java
new file mode 100644
index 0000000..2afc392
--- /dev/null
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradeOrderCreate.java
@@ -0,0 +1,19 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 10:17
+ */
+@Data
+public class TradeOrderCreate {
+	/**
+	 * 订单信息
+	 */
+	private OrderInfo orderInfo;
+	/**
+	 * 支付接口调用信息
+	 */
+	private PayInfo payInfo;
+}
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradeOrderCreateData.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradeOrderCreateData.java
new file mode 100644
index 0000000..fa53305
--- /dev/null
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradeOrderCreateData.java
@@ -0,0 +1,95 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 10:03
+ */
+@Data
+public class TradeOrderCreateData {
+	/**
+	 * 司机id
+	 */
+	private String treatShopId;
+	/**
+	 * 应用场景标识
+	 */
+	private String orderAppId;
+	/**
+	 * 场景标识
+	 */
+	private String scene;
+	/**
+	 * 租户ID。地区行政编码。黔南州传522700
+	 */
+	private String partnerId;
+	/**
+	 * 结算信息json串。其中结算分账标识(profitSharing:0:不分账,1:分账)、是否推广单标识(isPromote:1、是、0、否)必传。例:{"profitSharing":"0",”isPromote”:”0”}
+	 */
+	private String field1;
+	/**
+	 * 订单总金额,单位元
+	 */
+	private BigDecimal charge;
+	/**
+	 * 订单渠道。小程序传GRJYCXWXXCX,贵人家园传GRJY
+	 */
+	private String channelSource;
+	/**
+	 * 行程单ID
+	 */
+	private String orderId;
+	/**
+	 * 业务侧订单号
+	 */
+	private String orderNo;
+	/**
+	 * 下单人ID
+	 */
+	private String customerId;
+	/**
+	 * 商户号,由支付中心分配。测试环境5400004
+	 */
+	private String payPartnerId;
+	/**
+	 * 商户单标识。订单中心行程单号,每次请求请保持唯一性。
+	 */
+	private String partnerPayId;
+	/**
+	 * 币种。RMB(人民币);USD(美元)
+	 */
+	private String currency;
+	/**
+	 * 交易总金额,单位分。
+	 */
+	private String totalFee;
+	/**
+	 * 前台通知URL地址。
+	 */
+	private String retUrl;
+	/**
+	 * 用户IP
+	 */
+	private String clientIp;
+	/**
+	 * Y代表要登录,跳到标准收银台
+	 * N代表不需要登录,跳到无支付帐号收银台
+	 */
+	private String needLoginFlag;
+	/**
+	 * 支付单描述
+	 */
+	private String orderDesc;
+	/**
+	 * 接入模式:PC、H5、APP
+	 */
+	private String accessMode;
+	/**
+	 * 支付信息
+	 */
+	private List<GoodsInfoRequest> goodsInfo;
+}
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradePayOff1Data.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradePayOff1Data.java
new file mode 100644
index 0000000..554c2d9
--- /dev/null
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradePayOff1Data.java
@@ -0,0 +1,58 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 10:23
+ */
+@Data
+public class TradePayOff1Data {
+	/**
+	 * 商户号,由支付中心分配。测试环境5400004
+	 */
+	private String partnerId;
+	/**
+	 * 场景标识。交通场景传”TRAFFIC”
+	 */
+	private String scene;
+	/**
+	 * 商户单标识。订单中心订单号,每次请求请保持唯一性。
+	 */
+	private String partnerPayId;
+	/**
+	 * 币种。RMB(人民币);USD(美元)
+	 */
+	private String currency;
+	/**
+	 * 交易总金额,单位分。
+	 */
+	private String totalFee;
+	/**
+	 * 前台通知URL地址。
+	 */
+	private String retUrl;
+	/**
+	 * 用户IP
+	 */
+	private String clientIp;
+	/**
+	 * Y代表要登录,跳到标准收银台
+	 * N代表不需要登录,跳到无支付帐号收银台
+	 */
+	private String needLoginFlag;
+	/**
+	 * 支付单描述
+	 */
+	private String orderDesc;
+	/**
+	 * 接入模式:PC、H5、APP
+	 */
+	private String accessMode;
+	/**
+	 * 商品描述信息。Json数组
+	 */
+	private List<GoodsInfoRequest> goodsInfo;
+}
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradePayOffData.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradePayOffData.java
new file mode 100644
index 0000000..b09b115
--- /dev/null
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradePayOffData.java
@@ -0,0 +1,63 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import com.alipay.api.domain.GoodsInfo;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 10:23
+ */
+@Data
+public class TradePayOffData {
+	/**
+	 * 商户号,由支付中心分配。测试环境5400004
+	 */
+	private String partnerId;
+	/**
+	 * 场景标识。交通场景传”TRAFFIC”
+	 */
+	private String scene;
+	/**
+	 * 商户单标识。订单中心订单号,每次请求请保持唯一性。
+	 */
+	private String partnerPayId;
+	/**
+	 * 币种。RMB(人民币);USD(美元)
+	 */
+	private String currency;
+	/**
+	 * 交易总金额,单位分。
+	 */
+	private String totalFee;
+	/**
+	 * 前台通知URL地址。
+	 */
+	private String retUrl;
+	/**
+	 * 用户IP
+	 */
+	private String clientIp;
+	/**
+	 * Y代表要登录,跳到标准收银台
+	 * N代表不需要登录,跳到无支付帐号收银台
+	 */
+	private String needLoginFlag;
+	/**
+	 * 支付单描述
+	 */
+	private String orderDesc;
+	/**
+	 * 接入模式:PC、H5、APP
+	 */
+	private String accessMode;
+	/**
+	 * 支付信息
+	 */
+	private List<PaymentInfoRequest> paymentInfos;
+	/**
+	 * 商品描述信息。Json数组
+	 */
+	private List<GoodsInfo> goodsInfo;
+}
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradeRequest.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradeRequest.java
new file mode 100644
index 0000000..b2ce9bb
--- /dev/null
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradeRequest.java
@@ -0,0 +1,31 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 10:22
+ */
+@Data
+public class TradeRequest<T> {
+	/**
+	 * 场景编号.交易中心提供。测试环境:1948289607125864448
+	 */
+	private String sceneId;
+	/**
+	 * 应用编号。中台应用appKey
+	 */
+	private String appId;
+	/**
+	 * 场景版本。交易中心提供。测试环境1
+	 */
+	private Integer configVersion;
+	/**
+	 * 请求ID。每次调用唯一标识
+	 */
+	private String requestId;
+	/**
+	 * 业务数据
+	 */
+	private T data;
+}
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TravelItinerary.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TravelItinerary.java
new file mode 100644
index 0000000..27ffc26
--- /dev/null
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TravelItinerary.java
@@ -0,0 +1,64 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 16:48
+ */
+@Data
+public class TravelItinerary {
+	/**
+	 * 场景标识。交通场景传”TRAFFIC”
+	 */
+	private String scene;
+	/**
+	 * 租户ID。地区行政编码。黔南州传522700
+	 */
+	private String partnerId;
+	/**
+	 * 业务侧订单号
+	 */
+	private String orderNo;
+	/**
+	 * 乘客ID
+	 */
+	private String customerId;
+	/**
+	 * 司机ID
+	 */
+	private String driverId;
+	/**
+	 * 订单号
+	 */
+	private String orderId;
+	/**
+	 * 推广员ID
+	 */
+	private String promoterId;
+	/**
+	 * 服务商商户ID
+	 */
+	private String supplierShopId;
+	/**
+	 * 场景服务类型。1、出租;2、网约车;3、城际;4、顺风车
+	 */
+	private Integer serviceType;
+	/**
+	 * 订单状态。1、待支付,11、已完结(可结算)
+	 */
+	private Integer orderStatus;
+	/**
+	 * 行程单状态。2=待出发,3=待到达预约地点,4=待乘客上车,5=服务中,6=完成服务,7=待支付,9=已完成,10=已取消,11=改派中
+	 */
+	private Integer status;
+	/**
+	 * 创建时间
+	 */
+	private String createTime;
+	/**
+	 * 更新时间
+	 */
+	private String updateTime;
+	
+}
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/zhenglian/TokenUtil.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/zhenglian/TokenUtil.java
index bbe6942..fda6a88 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/zhenglian/TokenUtil.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/zhenglian/TokenUtil.java
@@ -41,7 +41,6 @@
 		
 		
 		tokenRequest.setAppId(zhengLianConfig.getAppid());
-		tokenRequest.setType("04");
 		String reqBO = JSON.toJSONString(tokenRequest);
 		// 生成对称加密秘钥
 		String key = ZhengLianUtil.generateKey(16);
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/zhenglian/ZhengLianConfig.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/zhenglian/ZhengLianConfig.java
index e78876c..002db53 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/zhenglian/ZhengLianConfig.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/zhenglian/ZhengLianConfig.java
@@ -58,8 +58,8 @@
 			this.merchNo = "B00000871";
 			this.encrpNo = "1055490595";
 			this.signNo = "1066348524";
-			this.cer = "C:\\Users\\39373\\Desktop\\UAT-demo-公用\\1055490595.cer";
-			this.sm2 = "C:\\Users\\39373\\Desktop\\UAT-demo-公用\\871_111111.sm2";
+			this.cer = "C:\\Users\\Administrator\\Desktop\\1055490595.cer";
+			this.sm2 = "C:\\Users\\Administrator\\Desktop\\871_111111.sm2";
 			this.password = "111111";
 		}
 		if("test".equals(activeProfile)){
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/DriverPosition.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/DriverPosition.java
index 7c1d683..b89c824 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/DriverPosition.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/DriverPosition.java
@@ -13,6 +13,10 @@
 @Document(collection = "driver_position")
 public class DriverPosition {
 	@Id
+	private String id;
+	/**
+	 * 司机id
+	 */
 	private Integer driverId;
 	/**
 	 * 点位
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/model/OrderTaxi.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/model/OrderTaxi.java
index 53706e5..021936b 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/model/OrderTaxi.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/model/OrderTaxi.java
@@ -4,7 +4,6 @@
 import com.baomidou.mybatisplus.annotations.TableId;
 import com.baomidou.mybatisplus.annotations.TableName;
 import com.baomidou.mybatisplus.enums.IdType;
-import com.stylefeng.guns.modular.system.model.BaseBean;
 
 import java.math.BigDecimal;
 import java.util.Date;
@@ -360,6 +359,8 @@
     private String promotionUser;
 
     private String promotionPhone;
+    
+    private String travelId;
 
 
     public String getPromotionUser() {
@@ -945,7 +946,15 @@
     public void setSplitAllocation(String splitAllocation) {
         this.splitAllocation = splitAllocation;
     }
-
+    
+    public String getTravelId() {
+        return travelId;
+    }
+    
+    public void setTravelId(String travelId) {
+        this.travelId = travelId;
+    }
+    
     @Override
     public String toString() {
         return "OrderTaxi{" +
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java
index 3531b3c..7bcf42c 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java
@@ -12,6 +12,9 @@
 import com.stylefeng.guns.modular.system.model.*;
 import com.stylefeng.guns.modular.system.service.*;
 import com.stylefeng.guns.modular.system.util.*;
+import com.stylefeng.guns.modular.system.util.qianyuntong.OrderUtil;
+import com.stylefeng.guns.modular.system.util.qianyuntong.model.CreateTravelItineraryRequest;
+import com.stylefeng.guns.modular.system.util.qianyuntong.model.ModifyTravelItineraryRequest;
 import com.stylefeng.guns.modular.taxi.dao.OrderTaxiMapper;
 import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
 import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
@@ -220,7 +223,38 @@
             orderTaxi.setPromotionPhone(driver1.getPhone());
             orderTaxi.setPromotionDriverId(promotion);
         }
-
+        
+        if(null == oldDriverId){
+            UserInfo userInfo = userInfoMapper.selectById(orderTaxi.getUserId());
+            Company company = companyService.selectById(driver.getCompanyId());
+            //调三方订单中心创建行程单
+            CreateTravelItineraryRequest request = new CreateTravelItineraryRequest();
+            request.setOrderNo("TA" + orderTaxi.getId());
+            request.setCustomerId(userInfo.getOnconUUID());
+            request.setDriverId(driver.getEmpId().toString());
+            request.setSupplierShopId(company.getEnterCode());
+            if(2 == orderTaxi.getPromotion()){
+                Driver driver1 = driverService.selectById(orderTaxi.getPromotionDriverId());
+                request.setPromoterId(driver1.getEmpId().toString());
+            }
+            request.setServiceType(1);
+            String travelItinerary = OrderUtil.createTravelItinerary(request);
+            orderTaxi.setTravelId(travelItinerary);
+        }else{
+            //改派抢单
+            Company company1 = companyService.selectById(driver.getCompanyId());
+            //中台修改订单状态
+            ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest();
+            request1.setOrderId(orderTaxi.getTravelId());
+            request1.setStatus(orderTaxi.getState());
+            request1.setDriverId(driver.getEmpId().toString());
+            if(2 == orderTaxi.getPromotion()){
+                Driver driver1 = driverService.selectById(orderTaxi.getPromotionDriverId());
+                request1.setPromoterId(driver1.getEmpId().toString());
+            }
+            request1.setSupplierShopId(company1.getEnterCode());
+            OrderUtil.modifyTravelItinerary(request1);
+        }
         this.updateById(orderTaxi);
 
         if(orderTaxi.getType() == 2){
@@ -485,6 +519,20 @@
                 break;
         }
         this.updateById(orderTaxi);
+    
+        Driver driver = driverService.selectById(orderTaxi.getDriverId());
+        Company company = companyService.selectById(driver.getCompanyId());
+        //中台修改订单状态
+        ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
+        request.setOrderId(orderTaxi.getTravelId());
+        request.setStatus(orderTaxi.getState());
+        request.setDriverId(driver.getEmpId().toString());
+        if(2 == orderTaxi.getPromotion()){
+            Driver driver1 = driverService.selectById(orderTaxi.getPromotionDriverId());
+            request.setPromoterId(driver1.getEmpId().toString());
+        }
+        request.setSupplierShopId(company.getEnterCode());
+        OrderUtil.modifyTravelItinerary(request);
 
         // TODO: 2020/6/5 推送状态
         new Thread(new Runnable() {
@@ -528,9 +576,22 @@
             orderTaxi.setState(7);
         }
         this.updateById(orderTaxi);
+    
+        Driver driver = driverService.selectById(orderTaxi.getDriverId());
+        Company company = companyService.selectById(driver.getCompanyId());
+        //中台修改订单状态
+        ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
+        request.setOrderId(orderTaxi.getTravelId());
+        request.setStatus(orderTaxi.getState());
+        request.setDriverId(driver.getEmpId().toString());
+        if(2 == orderTaxi.getPromotion()){
+            Driver driver1 = driverService.selectById(orderTaxi.getPromotionDriverId());
+            request.setPromoterId(driver1.getEmpId().toString());
+        }
+        request.setSupplierShopId(company.getEnterCode());
+        OrderUtil.modifyTravelItinerary(request);
 
         //回滚司机状态为空闲
-        Driver driver = driverService.selectById(orderTaxi.getDriverId());
         driver.setState(2);
         driverService.updateById(driver);
 
@@ -568,9 +629,22 @@
             orderTaxi.setState(7);
         }
         this.updateById(orderTaxi);
+    
+        Driver driver = driverService.selectById(orderTaxi.getDriverId());
+        Company company1 = companyService.selectById(driver.getCompanyId());
+        //中台修改订单状态
+        ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest();
+        request1.setOrderId(orderTaxi.getTravelId());
+        request1.setStatus(orderTaxi.getState());
+        request1.setDriverId(driver.getEmpId().toString());
+        if(2 == orderTaxi.getPromotion()){
+            Driver driver1 = driverService.selectById(orderTaxi.getPromotionDriverId());
+            request1.setPromoterId(driver1.getEmpId().toString());
+        }
+        request1.setSupplierShopId(company1.getEnterCode());
+        OrderUtil.modifyTravelItinerary(request1);
 
         //回滚司机状态为空闲
-        Driver driver = driverService.selectById(orderTaxi.getDriverId());
         driver.setState(2);
         driverService.updateById(driver);
 
diff --git a/DriverQYTTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java b/DriverQYTTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java
index 543c653..49643d3 100644
--- a/DriverQYTTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java
+++ b/DriverQYTTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java
@@ -1,11 +1,36 @@
-//package com.stylefeng.guns;
-//
-//import org.junit.runner.RunWith;
-//import org.springframework.boot.test.context.SpringBootTest;
-//import org.springframework.test.context.junit4.SpringRunner;
-//
-//@RunWith(SpringRunner.class)
-//@SpringBootTest
-//public class GunsApplicationTest {
-//
-//}
+package com.stylefeng.guns;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.data.mongodb.core.MongoTemplate;
+import org.springframework.test.context.junit4.SpringRunner;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest
+public class GunsApplicationTest {
+	
+	@Autowired
+	private MongoTemplate mongoTemplate;
+
+
+	@Test
+	public void test(){
+//		GeoJsonPoint point = new GeoJsonPoint(new Point(Double.parseDouble("104.043149"),
+//				Double.parseDouble("30.642483")));
+//		DriverPosition position = mongoTemplate.findOne(Query.query(Criteria.where("driverId")
+//				.is(14)), DriverPosition.class);
+//		if(null == position){
+//			position = new DriverPosition();
+//		}
+//		position.setDriverId(14);
+//		position.setPoint(point);
+//		mongoTemplate.save(position);
+		
+		
+//		Query query = Query.query(Criteria.where("point").nearSphere(new Point(Double.parseDouble("104.043149"), Double.parseDouble("30.642483"))).maxDistance(5000));
+//		List<DriverPosition> driverPositions = mongoTemplate.find(query, DriverPosition.class);
+//		System.err.println(driverPositions);
+	}
+}
diff --git a/MessagePushTravel/src/main/java/com/sinata/push/util/echo/DiscardServerHandler.java b/MessagePushTravel/src/main/java/com/sinata/push/util/echo/DiscardServerHandler.java
index 595c397..c2a291d 100644
--- a/MessagePushTravel/src/main/java/com/sinata/push/util/echo/DiscardServerHandler.java
+++ b/MessagePushTravel/src/main/java/com/sinata/push/util/echo/DiscardServerHandler.java
@@ -23,7 +23,7 @@
 	public void channelRead(ChannelHandlerContext ctx, Object msg) {
 		InetSocketAddress insocket = (InetSocketAddress) ctx.channel().remoteAddress();
 		if(isdebug) {
-//			System.err.println(insocket.getAddress() + ": 收到客户端数据.......");
+			System.err.println(insocket.getAddress() + ": 收到客户端数据.......");
 		}
 		try {
 			// 调用service
@@ -39,7 +39,7 @@
 	protected void channelRead0(ChannelHandlerContext ctx, String msg) throws Exception {
 		InetSocketAddress insocket = (InetSocketAddress) ctx.channel().remoteAddress();
 		if(isdebug) {
-//			System.err.println(insocket.getAddress() + ": 收到客户端数据.......");
+			System.err.println(insocket.getAddress() + ": 收到客户端数据.......");
 		}
 		try {
 			// 调用service
@@ -70,7 +70,7 @@
 	public void channelActive(final ChannelHandlerContext ctx) throws Exception {
 		InetSocketAddress insocket = (InetSocketAddress) ctx.channel().remoteAddress();
 		if(isdebug) {
-//			System.err.println(insocket.getAddress() + ": Connect successful......");
+			System.err.println(insocket.getAddress() + ": Connect successful......");
 		}
 	}
 
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
index 9c730f0..87893c0 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
@@ -14,12 +14,9 @@
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.geo.GeoResult;
-import org.springframework.data.geo.GeoResults;
 import org.springframework.data.geo.Point;
 import org.springframework.data.mongodb.core.MongoTemplate;
 import org.springframework.data.mongodb.core.query.Criteria;
-import org.springframework.data.mongodb.core.query.NearQuery;
 import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -140,19 +137,15 @@
     })
     public ResultUtil<List<Map<String, Object>>> queryNearbyCar(String lon, String lat){
         //mongodb查询附近5公里范围内的坐标
-        NearQuery query = NearQuery.near(new Point(Double.parseDouble(lon), Double.parseDouble(lat)));
-        query.query(Query.query(Criteria.where("point")));
-        query.maxDistance(5000);
-        GeoResults<DriverPosition> results = mongoTemplate.geoNear(query, DriverPosition.class);
+        Query query = Query.query(Criteria.where("point").nearSphere(new Point(Double.parseDouble(lon), Double.parseDouble(lat))).maxDistance(5000));
+        List<DriverPosition> driverPositions = mongoTemplate.find(query, DriverPosition.class);
         List<Map<String, Object>> collect = new ArrayList<>();
-        if(collect.size() > 0){
-            List<GeoResult<DriverPosition>> content1 = results.getContent();
-            List<DriverPosition> positionList = content1.stream().map(GeoResult::getContent).collect(Collectors.toList());
-            List<Integer> driverIds = positionList.stream().map(DriverPosition::getDriverId).collect(Collectors.toList());
-            List<Driver> drivers = driverService.selectList(new EntityWrapper<Driver>().in("driverId", driverIds)
+        if(driverPositions.size() > 0){
+            List<Integer> driverIds = driverPositions.stream().map(DriverPosition::getDriverId).collect(Collectors.toList());
+            List<Driver> drivers = driverService.selectList(new EntityWrapper<Driver>().in("id", driverIds)
                     .eq("authState", 2).eq("state", 2));
             collect = drivers.stream().map(driver -> {
-                Optional<DriverPosition> driverPosition = positionList.stream().filter(position -> position.getDriverId().equals(driver.getId())).findFirst();
+                Optional<DriverPosition> driverPosition = driverPositions.stream().filter(position -> position.getDriverId().equals(driver.getId())).findFirst();
                 Map<String, Object> map = new HashMap<>();
                 map.put("driverId", driver.getId());
                 map.put("name", driver.getName());
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
index 4b70b28..748b610 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
@@ -22,6 +22,8 @@
 import com.stylefeng.guns.modular.system.pdf.TripSheetGenerator;
 import com.stylefeng.guns.modular.system.service.*;
 import com.stylefeng.guns.modular.system.util.*;
+import com.stylefeng.guns.modular.system.util.qianyuntong.OrderUtil;
+import com.stylefeng.guns.modular.system.util.qianyuntong.model.ModifyTravelItineraryRequest;
 import com.stylefeng.guns.modular.system.util.qianyuntong.model.QYTPaymentCallback;
 import com.stylefeng.guns.modular.system.warpper.*;
 import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
@@ -51,6 +53,8 @@
 import java.io.Serializable;
 import java.lang.reflect.InvocationTargetException;
 import java.text.SimpleDateFormat;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 
 /**
@@ -61,86 +65,94 @@
 @RestController
 @RequestMapping("")
 public class OrderController {
-
-    @Autowired
-    private IOrderTaxiService orderTaxiService;
-
-    @Autowired
-    private IUserInfoService userInfoService;
-
-    @Autowired
-    private IOrderPositionService orderPositionService;
-
-    @Autowired
-    private PushUtil pushUtil;
-
-    @Autowired
-    private IOrderService orderService;
+	
+	@Autowired
+	private IOrderTaxiService orderTaxiService;
+	
+	@Autowired
+	private IUserInfoService userInfoService;
+	
+	@Autowired
+	private IOrderPositionService orderPositionService;
+	
+	@Autowired
+	private PushUtil pushUtil;
+	
+	@Autowired
+	private IOrderService orderService;
+	
+	@Autowired
+	private IDriverService driverService;
+	
+	@Autowired
+	private WeChatUtil weChatUtil;
+	
+	@Autowired
+	private IOrderPrivateCarService orderPrivateCarService;
+	
+	@Autowired
+	private GDMapGeocodingUtil gdMapGeocodingUtil;
+	
+	@Autowired
+	private IComplaintService complaintService;
+	
+	@Autowired
+	private IOrderEvaluateService orderEvaluateService;
+	
+	@Autowired
+	private IOrderCrossCityService orderCrossCityService;
+	
+	@Autowired
+	private IOrderLogisticsService orderLogisticsService;
+	
+	@Autowired
+	private IOrderCharteredCarService orderCharteredCarService;
+	
+	@Autowired
+	private PushMinistryOfTransportUtil pushMinistryOfTransportUtil;
+	
+	@Autowired
+	private ITransactionDetailsService transactionDetailsService;
+	
+	@Autowired
+	private IOrderCancelService orderCancelService;
+	
+	@Autowired
+	private PayMoneyUtil payMoneyUtil;
+	
+	@Autowired
+	private IPaymentRecordService paymentRecordService;
+	
+	@Autowired
+	private ITaxiCardService taxiCardService;
+	
+	@Autowired
+	private IOrderCallService orderCallService;
+	
+	@Autowired
+	private IOrderAdditionalFeeService orderAdditionalFeeService;
+	
+	@Autowired
+	private IAdditionalFeeService additionalFeeService;
+	
+	@Autowired
+	private ITEnterpriseWithdrawalService enterpriseWithdrawalService;
+	@Autowired
+	private ICompanyService companyService;
+	@Autowired
+	private IUserCouponRecordService userCouponRecordService;
+	@Value("${pushMinistryOfTransport}")
+	private boolean pushMinistryOfTransport;
+	
+	@Resource
+	private SystemPriceMapper systemPriceMapper;
+	
+	@Resource
+	private RedisTemplate<String, Object> redisTemplate;
+	
+	@Resource
+	private ISystemPriceCityService systemPriceCityService;
     
-    @Autowired
-    private IDriverService driverService;
-    
-    @Autowired
-    private WeChatUtil weChatUtil;
-    
-    @Autowired
-    private IOrderPrivateCarService orderPrivateCarService;
-    
-    @Autowired
-    private GDMapGeocodingUtil gdMapGeocodingUtil;
-    
-    @Autowired
-    private IComplaintService complaintService;
-    
-    @Autowired
-    private IOrderEvaluateService orderEvaluateService;
-    
-    @Autowired
-    private IOrderCrossCityService orderCrossCityService;
-    
-    @Autowired
-    private IOrderLogisticsService orderLogisticsService;
-
-    @Autowired
-    private IOrderCharteredCarService orderCharteredCarService;
-
-    @Autowired
-    private PushMinistryOfTransportUtil pushMinistryOfTransportUtil;
-
-    @Autowired
-    private ITransactionDetailsService transactionDetailsService;
-
-    @Autowired
-    private IOrderCancelService orderCancelService;
-
-    @Autowired
-    private PayMoneyUtil payMoneyUtil;
-
-    @Autowired
-    private IPaymentRecordService paymentRecordService;
-
-    @Autowired
-    private ITaxiCardService taxiCardService;
-
-    @Autowired
-    private IOrderCallService orderCallService;
-
-    @Autowired
-    private IOrderAdditionalFeeService orderAdditionalFeeService;
-
-    @Autowired
-    private IAdditionalFeeService additionalFeeService;
-    
-    @Autowired
-    private ITEnterpriseWithdrawalService enterpriseWithdrawalService;
-    @Autowired
-    private ICompanyService companyService;
-    @Autowired
-    private IUserCouponRecordService userCouponRecordService;
-    @Value("${pushMinistryOfTransport}")
-    private boolean pushMinistryOfTransport;
-
-
     @Value("${trip.sheet.filePath}")
     private  String filePath;
     @Autowired
@@ -149,2051 +161,2074 @@
     private  TripSheetGenerator tripSheetGenerator;
     @Autowired
     private IServerCarModelService serverCarModelService;
-
-
     
-    @Resource
-    private SystemPriceMapper systemPriceMapper;
     
-    @Resource
-    private RedisTemplate<String, Object> redisTemplate;
     
-    @Resource
-    private ISystemPriceCityService systemPriceCityService;
-
-
     
-    /**
-     * 获取正在进行中的订单
-     *
-     * @param request
-     * @return
-     */
-    @ResponseBody
-    @PostMapping("/api/order/queryServingOrder")
-    @ApiOperation(value = "获取正在进行中的订单", tags = {"用户端-首页"}, notes = "")
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
-    })
-    public ResultUtil<List<OrderStatusWarpper>> queryServingOrder(HttpServletRequest request){
-        try {
-            Integer uid = userInfoService.getUserIdFormRedis(request);
-            if(null == uid){
-                return ResultUtil.tokenErr();
-            }
-            List<OrderStatusWarpper> data = new ArrayList<>();
-            List<OrderPrivateCar> orderPrivateCars = orderPrivateCarService.queryOrder(uid, 1, 2, 3, 4, 5, 6, 7, 11, 12);
-            for(OrderPrivateCar orderPrivateCar : orderPrivateCars){
-                if(orderPrivateCar.getState() == 11){
-                    orderPrivateCar.setState(orderPrivateCar.getOldState());
-                }
-                OrderStatusWarpper orderStatusWarpper = new OrderStatusWarpper();
-                orderStatusWarpper.setOrderId(orderPrivateCar.getId());
-                orderStatusWarpper.setOrderType(1);
-                orderStatusWarpper.setState(orderPrivateCar.getState());
-                orderStatusWarpper.setRideType(orderPrivateCar.getRideType());
-                data.add(orderStatusWarpper);
-            }
-            List<OrderTaxi> list = orderTaxiService.queryOrder(uid, 1, 2, 3, 4, 5, 6, 7, 11, 12);
-            for(OrderTaxi orderTaxi : list){
-                if(orderTaxi.getState() == 11){
-                    orderTaxi.setState(orderTaxi.getOldState());
-                }
-                OrderStatusWarpper orderStatusWarpper = new OrderStatusWarpper();
-                orderStatusWarpper.setOrderId(orderTaxi.getId());
-                orderStatusWarpper.setOrderType(2);
-                orderStatusWarpper.setState(orderTaxi.getState());
-                orderStatusWarpper.setRideType(1);
-                data.add(orderStatusWarpper);
-            }
-            List<OrderCrossCity> orderCrossCities = orderCrossCityService.queryOrder(uid, 1, 2, 3, 4, 5, 6, 7, 11, 12);
-            for(OrderCrossCity orderCrossCity : orderCrossCities){
-                if(orderCrossCity.getState() == 11){
-                    orderCrossCity.setState(orderCrossCity.getOldState());
-                }
-                OrderStatusWarpper orderStatusWarpper = new OrderStatusWarpper();
-                orderStatusWarpper.setOrderId(orderCrossCity.getId());
-                orderStatusWarpper.setOrderType(3);
-                orderStatusWarpper.setState(orderCrossCity.getState());
-                orderStatusWarpper.setRideType(3);
-                data.add(orderStatusWarpper);
-            }
-            return ResultUtil.success(data);
-        }catch (Exception e){
-            e.printStackTrace();
-            return ResultUtil.runErr();
-        }
-    }
-
-
-
-
-    /**
-     * 获取个人中心订单列表
-     * @param type
-     * @param pageNum
-     * @param size
-     * @param request
-     * @return
-     */
-    @ResponseBody
-    @PostMapping("/api/order/queryMyOrderList")
-    @ApiOperation(value = "获取个人中心订单列表", tags = {"用户端-个人中心"}, notes = "")
-    @ApiImplicitParams({
-        @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城出行,4=同城小件物流, 5=跨城小件物流,6=包车,7=助老模式)", name = "type", required = true, dataType = "int"),
-        @ApiImplicitParam(value = "页码(首页1)", name = "pageNum", required = true, dataType = "int"),
-        @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"),
-        @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
-    })
-    public ResultUtil<List<OrderWarpper>> queryMyOrderList(Integer type, Integer pageNum, Integer size, HttpServletRequest request){
-        try {
-            Integer uid = userInfoService.getUserIdFormRedis(request);
-            if(null == uid){
-                return ResultUtil.tokenErr();
-            }
-            List<Map<String, Object>> list = null;
-            switch (type){
-                case 1:
-                    list = orderPrivateCarService.queryMyOrderList(uid, pageNum, size);
-                    break;
-                case 2:
-                    list = orderTaxiService.queryMyOrderList(uid, pageNum, size);
-                    break;
-                case 3:
-                    list = orderCrossCityService.queryMyOrderList(uid, pageNum, size);
-                    break;
-                case 4:
-                    list = orderLogisticsService.queryMyOrderList(uid, type, pageNum, size);
-                    break;
-                case 5:
-                    list = orderLogisticsService.queryMyOrderList(uid, type, pageNum, size);
-                    break;
-                case 6:
-                    list = orderCharteredCarService.queryMyOrderList(uid, pageNum, size);
-                    break;
-                case 7:
+    
+	
+	/**
+	 * 获取正在进行中的订单
+	 *
+	 * @param request
+	 * @return
+	 */
+	@ResponseBody
+	@PostMapping("/api/order/queryServingOrder")
+	@ApiOperation(value = "获取正在进行中的订单", tags = {"用户端-首页"}, notes = "")
+	@ApiImplicitParams({
+			@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+	})
+	public ResultUtil<List<OrderStatusWarpper>> queryServingOrder(HttpServletRequest request) {
+		try {
+			Integer uid = userInfoService.getUserIdFormRedis(request);
+			if (null == uid) {
+				return ResultUtil.tokenErr();
+			}
+			List<OrderStatusWarpper> data = new ArrayList<>();
+			List<OrderPrivateCar> orderPrivateCars = orderPrivateCarService.queryOrder(uid, 1, 2, 3, 4, 5, 6, 7, 11, 12);
+			for (OrderPrivateCar orderPrivateCar : orderPrivateCars) {
+				if (orderPrivateCar.getState() == 11) {
+					orderPrivateCar.setState(orderPrivateCar.getOldState());
+				}
+				OrderStatusWarpper orderStatusWarpper = new OrderStatusWarpper();
+				orderStatusWarpper.setOrderId(orderPrivateCar.getId());
+				orderStatusWarpper.setOrderType(1);
+				orderStatusWarpper.setState(orderPrivateCar.getState());
+				orderStatusWarpper.setRideType(orderPrivateCar.getRideType());
+				data.add(orderStatusWarpper);
+			}
+			List<OrderTaxi> list = orderTaxiService.queryOrder(uid, 1, 2, 3, 4, 5, 6, 7, 11, 12);
+			for (OrderTaxi orderTaxi : list) {
+				if (orderTaxi.getState() == 11) {
+					orderTaxi.setState(orderTaxi.getOldState());
+				}
+				OrderStatusWarpper orderStatusWarpper = new OrderStatusWarpper();
+				orderStatusWarpper.setOrderId(orderTaxi.getId());
+				orderStatusWarpper.setOrderType(2);
+				orderStatusWarpper.setState(orderTaxi.getState());
+				orderStatusWarpper.setRideType(1);
+				data.add(orderStatusWarpper);
+			}
+			List<OrderCrossCity> orderCrossCities = orderCrossCityService.queryOrder(uid, 1, 2, 3, 4, 5, 6, 7, 11, 12);
+			for (OrderCrossCity orderCrossCity : orderCrossCities) {
+				if (orderCrossCity.getState() == 11) {
+					orderCrossCity.setState(orderCrossCity.getOldState());
+				}
+				OrderStatusWarpper orderStatusWarpper = new OrderStatusWarpper();
+				orderStatusWarpper.setOrderId(orderCrossCity.getId());
+				orderStatusWarpper.setOrderType(3);
+				orderStatusWarpper.setState(orderCrossCity.getState());
+				orderStatusWarpper.setRideType(3);
+				data.add(orderStatusWarpper);
+			}
+			return ResultUtil.success(data);
+		} catch (Exception e) {
+			e.printStackTrace();
+			return ResultUtil.runErr();
+		}
+	}
+	
+	
+	/**
+	 * 获取个人中心订单列表
+	 *
+	 * @param type
+	 * @param pageNum
+	 * @param size
+	 * @param request
+	 * @return
+	 */
+	@ResponseBody
+	@PostMapping("/api/order/queryMyOrderList")
+	@ApiOperation(value = "获取个人中心订单列表", tags = {"用户端-个人中心"}, notes = "")
+	@ApiImplicitParams({
+			@ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城出行,4=同城小件物流, 5=跨城小件物流,6=包车,7=助老模式)", name = "type", required = true, dataType = "int"),
+			@ApiImplicitParam(value = "页码(首页1)", name = "pageNum", required = true, dataType = "int"),
+			@ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"),
+			@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+	})
+	public ResultUtil<List<OrderWarpper>> queryMyOrderList(Integer type, Integer pageNum, Integer size, HttpServletRequest request) {
+		try {
+			Integer uid = userInfoService.getUserIdFormRedis(request);
+			if (null == uid) {
+				return ResultUtil.tokenErr();
+			}
+			List<Map<String, Object>> list = null;
+			switch (type) {
+				case 1:
+					list = orderPrivateCarService.queryMyOrderList(uid, pageNum, size);
+					break;
+				case 2:
+					list = orderTaxiService.queryMyOrderList(uid, pageNum, size);
+					break;
+				case 3:
+					list = orderCrossCityService.queryMyOrderList(uid, pageNum, size);
+					break;
+				case 4:
+					list = orderLogisticsService.queryMyOrderList(uid, type, pageNum, size);
+					break;
+				case 5:
+					list = orderLogisticsService.queryMyOrderList(uid, type, pageNum, size);
+					break;
+				case 6:
+					list = orderCharteredCarService.queryMyOrderList(uid, pageNum, size);
+					break;
+				case 7:
 //                    list = orderCallService.queryMyOrderList(uid, pageNum, size);
-                    break;
-            }
-            return ResultUtil.success(OrderWarpper.getOrderWarpper(list));
-        }catch (Exception e){
-            e.printStackTrace();
-            return ResultUtil.runErr();
-        }
-    }
-
-    /**
-     * 获取消费记录
-     * @param pageNum
-     * @param size
-     * @param request
-     * @return
-     */
-    @ResponseBody
-    @PostMapping("/api/order/queryMyTravelRecord")
-    @ApiOperation(value = "获取消费记录", tags = {"用户端-个人中心"}, notes = "")
-    @ApiImplicitParams({
-            @ApiImplicitParam(value = "页码(首页1)", name = "pageNum", required = true, dataType = "int"),
-            @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"),
-            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
-    })
-    public ResultUtil<List<TravelRecordWarpper>> queryMyTravelRecord(Integer pageNum, Integer size, HttpServletRequest request){
-        try {
-            Integer uid = userInfoService.getUserIdFormRedis(request);
-            if(null == uid){
-                return ResultUtil.tokenErr();
-            }
-            Integer page = pageNum;
-            pageNum = (pageNum - 1) * size;
-            List<TransactionDetails> transactionDetails = transactionDetailsService.selectList(new EntityWrapper<TransactionDetails>()
-                    .eq("type", 1).eq("userType", 1).eq("userId", uid).orderBy("insertTime desc limit " + pageNum + ", " + size));
-            List<Map<String, Object>> list = new ArrayList<>();
-            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
-            for(TransactionDetails t : transactionDetails){
-                Map<String, Object> map = new HashMap<>();
-                map.put("money", t.getState() == 1 ? t.getMoney() : -1 * t.getMoney());
-                map.put("time", sdf.format(t.getInsertTime()));
-                map.put("name", t.getRemark());
-                map.put("insertTime", Double.valueOf(t.getInsertTime().getTime() / 1000).intValue());
-                list.add(map);
-            }
-
-            List<TravelRecordWarpper> orderWarpper = TravelRecordWarpper.getTravelRecordWarpper(list);
-            return ResultUtil.success(orderWarpper);
-        }catch (Exception e){
-            e.printStackTrace();
-            return ResultUtil.runErr();
-        }
-    }
-
-
-    /**
-     * 发票页获取订单列表
-     * @param type
-     * @param orderType
-     * @param startTime
-     * @param endTime
-     * @param startMoney
-     * @param endMoney
-     * @param pageNum
-     * @param size
-     * @param request
-     * @return
-     */
-    @ResponseBody
-    @PostMapping("/api/order/queryInvoiceOrder")
-    @ApiOperation(value = "发票页获取订单列表", tags = {"用户端-个人中心"}, notes = "")
-    @ApiImplicitParams({
-            @ApiImplicitParam(value = "订单开票状态(1=未开票,2=其他)", name = "type", required = true, dataType = "int"),
-            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城出行,4=同城小件物流,5=跨城小件物流)", name = "orderType", required = false, dataType = "int"),
-            @ApiImplicitParam(value = "开始日期", name = "startTime", required = false, dataType = "string"),
-            @ApiImplicitParam(value = "结束日期", name = "endTime", required = false, dataType = "string"),
-            @ApiImplicitParam(value = "开始金额", name = "startMoney", required = false, dataType = "double"),
-            @ApiImplicitParam(value = "结束金额", name = "endMoney", required = false, dataType = "double"),
-            @ApiImplicitParam(value = "页码(首页1)", name = "pageNum", required = true, dataType = "int"),
-            @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"),
-            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
-    })
-    public ResultUtil<List<OrderWarpper>> queryInvoiceOrder(Integer type, Integer orderType, Date startTime,
-                                                            Date endTime, Double startMoney, Double endMoney,
-                                                            Integer pageNum, Integer size, HttpServletRequest request){
-        Integer page = pageNum;
-        pageNum = (pageNum - 1) * size;
-        try {
-            Integer uid = userInfoService.getUserIdFormRedis(request);
-            if(null == uid){
-                return ResultUtil.tokenErr();
-            }
-            List<Map<String, Object>> list = new ArrayList<>();
-            if(null != orderType){
-                switch (orderType){
-                    case 1://专车
-                        list = orderPrivateCarService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid);
-                        break;
-                    case 2://出租车
-                        list = orderTaxiService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid);
-                        break;
-                    case 3://跨城
-                        list = orderCrossCityService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid);
-                        break;
-                    case 4://同城小件物流
-                        list = orderLogisticsService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid, orderType);
-                        break;
-                    case 5://跨城小件物流
-                        list = orderLogisticsService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid, orderType);
-                        break;
-                }
-            }else{
-                //专车
-                List<Map<String, Object>> maps = orderPrivateCarService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid);
-                list.addAll(maps);
-                //出租车
-                List<Map<String, Object>> list1 = orderTaxiService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid);
-                list.addAll(list1);
-                //跨城
-                List<Map<String, Object>> list2 = orderCrossCityService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid);
-                list.addAll(list2);
-                //同城小件物流
-                List<Map<String, Object>> list3 = orderLogisticsService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid, orderType);
-                list.addAll(list3);
-                //跨城小件物流
-                List<Map<String, Object>> list4 = orderLogisticsService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid, orderType);
-                list.addAll(list4);
-            }
-
-            //分页
-            if(list.size() >= page * size){
-                list = list.subList(pageNum, pageNum + size);
-            }else if(pageNum < list.size() && list.size() < page * size){
-                list = list.subList(pageNum, list.size());
-            }else{
-                list = new ArrayList<>();
-            }
-
-            return ResultUtil.success(OrderWarpper.getOrderWarpper(list));
-        }catch (Exception e){
-            e.printStackTrace();
-            return ResultUtil.runErr();
-        }
-    }
-
-
-
-    /**
-     * 继续等待推单操作
-     * @param id
-     * @return
-     */
-    @ResponseBody
-    @PostMapping("/api/taxi/pushOrderTaxi")
-    @ApiOperation(value = "继续等待推单操作", tags = {"用户端-出租车", "用户端-专车"}, notes = "")
-    @ApiImplicitParams({
-            @ApiImplicitParam(value = "订单id", name = "id", required = true, dataType = "int"),
-            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车)", name = "orderType", required = true, dataType = "int"),
-            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
-    })
-    public ResultUtil pushOrderTaxi(Integer id, Integer orderType){
-        try {
-            switch (orderType){
-                case 1:
-                    return orderPrivateCarService.pushOrderPrivateCar(id);
-                case 2:
-                    return orderTaxiService.pushOrderTaxi(id);
-            }
-            return ResultUtil.success();
-        }catch (Exception e){
-            e.printStackTrace();
-            return ResultUtil.runErr();
-        }
-    }
-    
-    
-    /**
-     * 获取服务中的详情数据
-     * @param orderId
-     * @param orderType
-     * @return
-     */
-    @ResponseBody
-    @PostMapping("/api/order/queryOrderInfo")
-    @ApiOperation(value = "获取服务中的详情数据", tags = {"用户端-服务中"}, notes = "",response = OrderInfoWarpper.class)
-    @ApiImplicitParams({
-            @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
-            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际)", name = "orderType", required = true, dataType = "int"),
-            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
-    })
-    public ResultUtil<OrderInfoWarpper> queryOrderInfo(Integer orderId, Integer orderType, HttpServletRequest request){
-        try {
-            Integer uid = userInfoService.getUserIdFormRedis(request);
-            if(null == uid){
-                return ResultUtil.tokenErr();
-            }
-            Map<String, Object> map = null;
-            List<OrderAdditionalFeeWarpper> list = new ArrayList<>();
-            switch (orderType){
-                case 1://专车
-                    map = orderPrivateCarService.queryOrderInfo(uid, orderId);
-                    break;
-                case 2://出租车
-                    map = orderTaxiService.queryOrderInfo(orderId);
-                    break;
-                case 3://跨城
-                    map = orderCrossCityService.queryOrderInfo(orderId);
-                    break;
-            }
-
-            if(map.get("companyId") != null){
-                Company companyId = companyService.selectById(map.get("companyId").toString());
-                map.put("companyName", companyId.getName());
-            }else {
-                String string = map.get("driverId").toString();
-                Driver driver = driverService.selectById(string);
-                Company company = companyService.selectById(driver.getCompanyId());
-                map.put("companyName", company.getName());
-            }
-            if(map.get("telX") != null){
-                map.put("driverPhone", map.get("telX"));
-            }
-            List<OrderAdditionalFee> orderAdditionalFees = orderAdditionalFeeService.selectList(new EntityWrapper<OrderAdditionalFee>().eq("orderType", orderType).eq("orderId", orderId));
-            orderAdditionalFees.forEach(orderAdditionalFee -> {
-                AdditionalFee additionalFee = additionalFeeService.selectById(orderAdditionalFee.getAdditionalFeeId());
-                OrderAdditionalFeeWarpper orderAdditionalFeeWarpper = new OrderAdditionalFeeWarpper();
-                orderAdditionalFeeWarpper.setName(additionalFee.getName());
-                orderAdditionalFeeWarpper.setAdditionalFee(orderAdditionalFee.getAmount());
-                list.add(orderAdditionalFeeWarpper);
-            });
-            OrderInfoWarpper orderInfoWarpper = OrderInfoWarpper.getOrderInfoWarpper(map, list);
-            orderType = orderInfoWarpper.getOrderType();
-            if(orderType==1){
-
-                if(orderInfoWarpper.getPid()!=0){
-                    orderId=orderInfoWarpper.getPid();
-                }
-                List<Map<String, Object>> orderList= orderPrivateCarService.queryOrderInfo2(orderId,4,null,null);
-                if(!orderList.isEmpty()){
-                    orderInfoWarpper.setMeetOrderList(JSON.parseArray(JSON.toJSONString(orderList), OrderCrossCityInfoWrapper.class));
-                }else{
-                    orderInfoWarpper.setMeetOrderList(new ArrayList<>());
-                }
-                orderList= orderPrivateCarService.queryOrderInfo2(orderId,6,null,null);
-                if(orderInfoWarpper.getState()>1 && orderInfoWarpper.getDriverId()!=0){
-                    String value = (String) redisTemplate.opsForValue().get("DRIVER" + String.valueOf(orderInfoWarpper.getDriverId()));
-                    if(value==null || value.equals("")){
-                        if(orderList.isEmpty()){
-                            orderList= orderPrivateCarService.queryOrderInfo2(orderId,5,"0","0");
-                        }else{
-                            List<Map<String, Object>> orderList1 = orderPrivateCarService.queryOrderInfo2(orderId,5,"0","0");
-                            if(!orderList1.isEmpty()){
-                                orderList.addAll(orderList1);
-                            }
-                        }
-                    }else{
-                        if(orderList.isEmpty()){
-                            orderList= orderPrivateCarService.queryOrderInfo2(orderId,5,value.split(",")[0],value.split(",")[1]);
-                        }else{
-                            List<Map<String, Object>> orderList1 = orderPrivateCarService.queryOrderInfo2(orderId,5,value.split(",")[0],value.split(",")[1]);
-                            if(!orderList1.isEmpty()){
-                                orderList.addAll(orderList1);
-                            }
-                        }
-                    }
-                }
-
-
-
-                if(!orderList.isEmpty()){
-                    orderInfoWarpper.setGiveOrderList(JSON.parseArray(JSON.toJSONString(orderList), OrderCrossCityInfoWrapper.class));
-                }else{
-                    orderInfoWarpper.setGiveOrderList(new ArrayList<>());
-                }
-
-                OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId);
-                if(orderPrivateCar.getState()>1) {
-                    Map<String, String> geocode = gdMapGeocodingUtil.geocode(orderPrivateCar.getStartLon().toString(), orderPrivateCar.getStartLat().toString());
-                    String provinceCode = geocode.get("provinceCode");
-                    String cityCode = geocode.get("cityCode");
-                    String districtCode = geocode.get("districtCode");
-                    //获取匹配的城市价格配置
-                    SystemPriceCity systemPriceCity = systemPriceCityService.queryOne(provinceCode, cityCode, districtCode);
-                    if (null == systemPriceCity) {
-                        return ResultUtil.error("请先配置价格规则");
-                    }
-                    Map<String, Object> query1 = systemPriceMapper.query(orderPrivateCar.getCompanyId(), 1, orderPrivateCar.getServerCarModelId(), systemPriceCity.getId());
-                    System.out.println("参数:" + orderPrivateCar.getCompanyId() + "|" + orderPrivateCar.getServerCarModelId());
-                    System.out.println("query1:" + query1);
-                    //开始根据不同的方式计算金额
-                    if (query1 != null) {
-                        JSONObject jsonObject = JSON.parseObject(query1.get("content").toString());//等待费
-                        JSONObject contentPutOne = JSON.parseObject(query1.get("contentPutOne").toString());//一人拼成
-                        JSONObject contentNotOne = JSON.parseObject(query1.get("contentNotOne").toString());//一人未拼成
-                        JSONObject contentPutTwo = JSON.parseObject(query1.get("contentPutTwo").toString());//2人拼成
-                        JSONObject contentNotTwo = JSON.parseObject(query1.get("contentNotTwo").toString());//2人未拼成
-                        JSONObject contentPutThree = JSON.parseObject(query1.get("contentPutThree").toString());//3人拼成
-                    JSONObject contentNotThree = JSON.parseObject(query1.get("contentNotThree").toString());//3人未拼成
-                    JSONObject contentExclusive = JSON.parseObject(query1.get("contentExclusive").toString());//独享
-                    JSONObject contentPrice = JSON.parseObject(query1.get("contentPrice").toString());//一口价
-                    //一口价
-                    orderInfoWarpper.setFareTypeNote1(query1.get("fareTypeNote1").toString());
-                    orderInfoWarpper.setFareTypeNote2(query1.get("fareTypeNote2").toString());
-                    orderInfoWarpper.setFareTypeNote3(query1.get("fareTypeNote3").toString());
-                    orderInfoWarpper.setContentPutOne(contentPutOne);
-                    orderInfoWarpper.setContentNotOne(contentNotOne);
-
-                    orderInfoWarpper.setContentPutTwo(contentPutTwo);
-                    orderInfoWarpper.setContentNotTwo(contentNotTwo);
-
-                    orderInfoWarpper.setContentPutThree(contentPutThree);
-                    orderInfoWarpper.setContentNotThree(contentNotThree);
-
-
-                    orderInfoWarpper.setContentExclusive(contentExclusive);
-                    orderInfoWarpper.setContentPrice(contentPrice);
-                    }
-                }else{
-                    orderInfoWarpper.setContentPutOne(new JSONObject());
-                    orderInfoWarpper.setContentNotOne(new JSONObject());
-
-                    orderInfoWarpper.setContentPutTwo(new JSONObject());
-                    orderInfoWarpper.setContentNotTwo(new JSONObject());
-
-                    orderInfoWarpper.setContentPutThree(new JSONObject());
-                    orderInfoWarpper.setContentNotThree(new JSONObject());
-
-
-                    orderInfoWarpper.setContentExclusive(new JSONObject());
-                    orderInfoWarpper.setContentPrice(new JSONObject());
-                }
-
-            }else{
-                orderInfoWarpper.setContentPutOne(new JSONObject());
-                orderInfoWarpper.setContentNotOne(new JSONObject());
-
-                orderInfoWarpper.setContentPutTwo(new JSONObject());
-                orderInfoWarpper.setContentNotTwo(new JSONObject());
-
-                orderInfoWarpper.setContentPutThree(new JSONObject());
-                orderInfoWarpper.setContentNotThree(new JSONObject());
-
-
-                orderInfoWarpper.setContentExclusive(new JSONObject());
-                orderInfoWarpper.setContentPrice(new JSONObject());
-            }
-            String arriveTime = orderInfoWarpper.getArriveTime();
-            if(ToolUtil.isNotEmpty(arriveTime)){
-                orderInfoWarpper.setTime(arriveTime.substring(11,arriveTime.length()-3));
-            }
-            return ResultUtil.success(orderInfoWarpper);
-        }catch (Exception e){
-            e.printStackTrace();
-            return ResultUtil.runErr();
-        }
-    }
-
-
-    @ResponseBody
-    @PostMapping("/api/order/addAppeal")
-    @ApiOperation(value = "发起申诉", tags = {"用户端-服务中"}, notes = "",response = OrderInfoWarpper.class)
-    @ApiImplicitParams({
-            @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
-            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际)", name = "orderType", required = true, dataType = "int"),
-            @ApiImplicitParam(value = "申诉描述", name = "abnormalIntro", required = true, dataType = "String"),
-            @ApiImplicitParam(value = "申诉图片", name = "abnormalImg", required = true, dataType = "String"),
-            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
-    })
-    public ResultUtil<OrderInfoWarpper> addAppeal(Integer orderId, Integer orderType,String abnormalIntro, String abnormalImg, HttpServletRequest request){
-        try {
-            Integer uid = userInfoService.getUserIdFormRedis(request);
-            if(null == uid){
-                return ResultUtil.tokenErr();
-            }
-            switch (orderType){
-                case 1://专车
-                     orderPrivateCarService.addAppeal(uid, orderId,abnormalIntro,abnormalImg);
-                    break;
-                case 2://出租车
-                    orderTaxiService.addAppeal(uid,orderId,abnormalIntro,abnormalImg);
-                    break;
-                case 3://跨城
-                     orderCrossCityService.addAppeal(uid,orderId,abnormalIntro,abnormalImg);
-                    break;
-            }
-            return ResultUtil.success();
-        }catch (Exception e){
-            e.printStackTrace();
-            return ResultUtil.runErr();
-        }
-    }
-
-
-
-    /**
-     * 获取服务中的详情数据
-     * @param orderId
-     * @param orderType
-     * @return
-     */
-    @ResponseBody
-    @PostMapping("/base/order/queryOrderInfo_")
-    @ApiOperation(value = "获取服务中的详情数据", tags = {"分享专用"}, notes = "")
-    @ApiImplicitParams({
-            @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
-            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际)", name = "orderType", required = true, dataType = "int"),
-    })
-    public ResultUtil<OrderInfoWarpper> queryOrderInfo_(Integer orderId, Integer orderType){
-        try {
-            Map<String, Object> map = null;
-            List<OrderAdditionalFeeWarpper> list = new ArrayList<>();
-            switch (orderType){
-                case 1://专车
-                    map = orderPrivateCarService.queryOrderInfo(null, orderId);
-                    break;
-                case 2://出租车
-                    map = orderTaxiService.queryOrderInfo(orderId);
-                    break;
-                case 3://跨城
-                    map = orderCrossCityService.queryOrderInfo(orderId);
-                    break;
-            }
-            if(null != map.get("telX")){
-                map.put("driverPhone", map.get("telX"));
-            }
-            List<OrderAdditionalFee> orderAdditionalFees = orderAdditionalFeeService.selectList(new EntityWrapper<OrderAdditionalFee>().eq("orderType", orderType).eq("orderId", orderId));
-            orderAdditionalFees.forEach(orderAdditionalFee -> {
-                AdditionalFee additionalFee = additionalFeeService.selectById(orderAdditionalFee.getAdditionalFeeId());
-                OrderAdditionalFeeWarpper orderAdditionalFeeWarpper = new OrderAdditionalFeeWarpper();
-                orderAdditionalFeeWarpper.setName(additionalFee.getName());
-                orderAdditionalFeeWarpper.setAdditionalFee(orderAdditionalFee.getAmount());
-                list.add(orderAdditionalFeeWarpper);
-            });
-            return ResultUtil.success(OrderInfoWarpper.getOrderInfoWarpper(map, list));
-        }catch (Exception e){
-            e.printStackTrace();
-            return ResultUtil.runErr();
-        }
-    }
-
-
-
-
-    /**
-     * 获取订单取消支付页面详情
-     * @param orderId
-     * @param orderType
-     * @return
-     */
-    @ResponseBody
-    @PostMapping("/api/order/queryCancelPage")
-    @ApiOperation(value = "获取订单取消支付页面详情", tags = {"用户端-服务中"}, notes = "")
-    @ApiImplicitParams({
-            @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
-            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际)", name = "orderType", required = true, dataType = "int"),
-            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
-    })
-    public ResultUtil<OrderInfoWarpper> queryCancelPage(Integer orderId, Integer orderType, HttpServletRequest request){
-        try {
-            Integer uid = userInfoService.getUserIdFormRedis(request);
-            if(null == uid){
-                return ResultUtil.tokenErr();
-            }
-            Map<String, Object> map = null;
-            List<OrderAdditionalFeeWarpper> list = new ArrayList<>();
-            switch (orderType) {
-                case 1://专车
-                    map = orderPrivateCarService.queryOrderInfo(uid, orderId);
-                    ResultUtil<BaseWarpper> res = orderPrivateCarService.queryCancleAmount(orderId);
-                    map.put("cancelPayMoney", res.getData().getAmount());
-                    break;
-                case 2://出租车
-                    map = orderTaxiService.queryOrderInfo(orderId);
-                    ResultUtil<BaseWarpper> re = orderTaxiService.queryCancleAmount(orderId);
-                    map.put("cancelPayMoney", re.getData().getAmount());
-                    break;
-                case 3://跨城
-                    map = orderCrossCityService.queryOrderInfo(orderId);
-                    ResultUtil<BaseWarpper> r = orderCrossCityService.queryCancleAmount(orderId);
-                    map.put("cancelPayMoney", r.getData().getAmount());
-                    break;
-            }
-            if(null != map.get("telX")){
-                map.put("driverPhone", map.get("telX"));
-            }
-            List<OrderAdditionalFee> orderAdditionalFees = orderAdditionalFeeService.selectList(new EntityWrapper<OrderAdditionalFee>().eq("orderType", orderType).eq("orderId", orderId));
-            orderAdditionalFees.forEach(orderAdditionalFee -> {
-                AdditionalFee additionalFee = additionalFeeService.selectById(orderAdditionalFee.getAdditionalFeeId());
-                OrderAdditionalFeeWarpper orderAdditionalFeeWarpper = new OrderAdditionalFeeWarpper();
-                orderAdditionalFeeWarpper.setName(additionalFee.getName());
-                orderAdditionalFeeWarpper.setAdditionalFee(orderAdditionalFee.getAmount());
-                list.add(orderAdditionalFeeWarpper);
-            });
-            return ResultUtil.success(OrderInfoWarpper.getOrderInfoWarpper(map, list));
-        }catch (Exception e){
-            e.printStackTrace();
-            return ResultUtil.runErr();
-        }
-    }
-
-
-    /**
-     * 获取订单轨迹坐标
-     * @param orderId
-     * @param orderType
-     * @return
-     */
-    @ResponseBody
-    @PostMapping("/api/order/queryTrack")
-    @ApiOperation(value = "获取订单轨迹坐标", tags = {"用户端-个人中心"}, notes = "")
-    @ApiImplicitParams({
-            @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
-            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际)", name = "orderType", required = true, dataType = "int"),
-            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
-    })
-    public ResultUtil queryTrack(Integer orderId, Integer orderType){
-        try {
-            List<Map<String, Object>> list = orderPositionService.queryTrack(orderId, orderType);
-            return ResultUtil.success(list);
-        }catch (Exception e){
-            e.printStackTrace();
-            return ResultUtil.runErr();
-        }
-    }
-
-
-
-    /**
-     * 获取订单轨迹坐标
-     * @param orderId
-     * @param orderType
-     * @return
-     */
-    @ResponseBody
-    @PostMapping("/base/order/queryTrack_")
-    @ApiOperation(value = "获取订单轨迹坐标", tags = {"分享专用"}, notes = "")
-    @ApiImplicitParams({
-            @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
-            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际)", name = "orderType", required = true, dataType = "int"),
-    })
-    public ResultUtil queryTrack_(Integer orderId, Integer orderType){
-        try {
-            List<Map<String, Object>> list = orderPositionService.queryTrack(orderId, orderType);
-            return ResultUtil.success(list);
-        }catch (Exception e){
-            e.printStackTrace();
-            return ResultUtil.runErr();
-        }
-    }
-
-
-    /**
-     * 发送订单状态
-     * @param id
-     * @param orderType
-     * @return
-     */
-    @ResponseBody
-    @PostMapping("/base/order/sendOrderState")
-    public ResultUtil cancelOrder(Integer id, Integer orderType){
-        try {
-            Integer driverId = null;
-            Integer userId = null;
-            Integer state = 0;
-            switch (orderType){
-                case 1:
-                    OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(id);
-                    driverId = orderPrivateCar.getDriverId();
-                    userId = orderPrivateCar.getUserId();
-                    state = orderPrivateCar.getState();
-                    if(null != driverId){
-                        pushUtil.pushOrderState(2, driverId, id, orderType, state, 0);
-                    }
-                    break;
-                case 2:
-                    OrderTaxi orderTaxi = orderTaxiService.selectById(id);
-                    driverId = orderTaxi.getDriverId();
-                    userId = orderTaxi.getUserId();
-                    state = orderTaxi.getState();
-                    if(null != driverId){
-                        pushUtil.pushOrderState(2, driverId, id, orderType, state, 0);
-                    }
-                    break;
-                case 3:
-                    OrderCrossCity orderCrossCity = orderCrossCityService.selectById(id);
-                    driverId = orderCrossCity.getDriverId();
-                    userId = orderCrossCity.getUserId();
-                    state = orderCrossCity.getState();
-                    if(orderCrossCity.getPayMoney() == null && state == 10){//支付的情况才推送取消
-                        break;
-                    }else{
-                        pushUtil.pushOrderState(2, driverId, id, orderType, state, 0);
-                    }
-                    break;
-                case 4:
-                    OrderLogistics orderLogistics = orderLogisticsService.selectById(id);
-                    driverId = orderLogistics.getDriverId();
-                    userId = orderLogistics.getUserId();
-                    state = orderLogistics.getState();
-                    if(orderLogistics.getPayMoney() == null && state == 10){//支付的情况才推送取消
-                        break;
-                    }else{
-                        pushUtil.pushOrderState(2, driverId, id, orderType, state, 0);
-                    }
-                    break;
-                case 5:
-                    OrderLogistics orderLogistics1 = orderLogisticsService.selectById(id);
-                    driverId = orderLogistics1.getDriverId();
-                    userId = orderLogistics1.getUserId();
-                    state = orderLogistics1.getState();
-                    if(orderLogistics1.getPayMoney() == null && state == 10){//支付的情况才推送取消
-                        break;
-                    }else{
-                        pushUtil.pushOrderState(2, driverId, id, orderType, state, 0);
-                    }
-                    break;
-            }
-            pushUtil.pushOrderState(1, userId, id, orderType, state, 0);
-            return ResultUtil.success();
-        }catch (Exception e){
-            e.printStackTrace();
-            return ResultUtil.runErr();
-        }
-    }
-
-
-    /**
-     * APP调用微信小程序支付
-     * @param orderId
-     * @param orderType
-     * @param type
-     * @param content
-     * @return
-     */
-    @ResponseBody
-    @PostMapping("/base/order/weChatPay")
-    @ApiOperation(value = "APP调用微信小程序支付", tags = {"用户端-服务中"}, notes = "")
-    @ApiImplicitParams({
-            @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
-            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城)", name = "orderType", required = true, dataType = "int"),
-            @ApiImplicitParam(value = "业务类型(1=订单完成支付,2=订单取消支付,3=司机端改派支付,4=余额充值,5=小件物流差价支付)", name = "type", required = true, dataType = "int"),
-            @ApiImplicitParam(value = "端口类型(1=用户端,2=司机端)", name = "userType", required = true, dataType = "int"),
-            @ApiImplicitParam(value = "用户id", name = "uid", required = true, dataType = "int"),
-            @ApiImplicitParam(value = "附加参数{\"key\":\"value\"}", name = "content", required = true, dataType = "string")
-    })
-    public ResultUtil weChatPay(Integer orderId, Integer orderType, Integer type, Integer userType, Integer uid, String content){
-        try {
-            return orderService.weChatPay(orderId, orderType, type, userType, uid, content);
-        }catch (Exception e){
-            e.printStackTrace();
-            return ResultUtil.runErr();
-        }
-    }
-
-
-    @ResponseBody
-    @PostMapping("/base/order/queryUserOpenId")
-    @ApiOperation(value = "获取用户的微信openid", tags = {"用户端-服务中"}, notes = "")
-    @ApiImplicitParams({
-            @ApiImplicitParam(value = "端口类型(1=用户端,2=司机端)", name = "userType", required = true, dataType = "int"),
-            @ApiImplicitParam(value = "用户id", name = "uid", required = true, dataType = "int")
-    })
-    public ResultUtil queryUserOpenId(Integer uid, Integer userType){
-        if(userType == 2){
-            Driver driver = driverService.selectById(uid);
-            return ResultUtil.success(driver.getAppletsOpenId());
-        }
-        if(userType == 1){
-            UserInfo userInfo = userInfoService.selectById(uid);
-            return ResultUtil.success(userInfo.getAppletsOpenId());
-        }
-        return ResultUtil.success();
-    }
-
-
-    @ResponseBody
-    @PostMapping("/base/order/getWeChatOpenId")
-    @ApiOperation(value = "用户授权获取小程序openid", tags = {"用户端-服务中"}, notes = "")
-    @ApiImplicitParams({
-            @ApiImplicitParam(value = "端口类型(1=用户端,2=司机端)", name = "userType", required = true, dataType = "int"),
-            @ApiImplicitParam(value = "用户id", name = "uid", required = true, dataType = "int"),
-            @ApiImplicitParam(value = "小程序授权临时凭证", name = "jscode", required = true, dataType = "string"),
-    })
-    public ResultUtil getWeChatOpenId(Integer uid, Integer userType, String jscode){
-        Map<String, String> map = weChatUtil.code2Session(jscode);
-        if(userType == 2){
-            Driver driver = driverService.selectById(uid);
-            driver.setAppletsOpenId(map.get("openid"));
-            driverService.updateById(driver);
-        }
-        if(userType == 1){
-            UserInfo userInfo = userInfoService.selectById(uid);
-            userInfo.setAppletsOpenId(map.get("openid"));
-            userInfoService.updateById(userInfo);
-        }
-        return ResultUtil.success();
-    }
-
-
-
-    /**
-     * 获取预计行驶时间
-     * @param slon
-     * @param slat
-     * @param elon
-     * @param elat
-     * @return
-     */
-    @ResponseBody
-    @PostMapping("/base/taxi/queryExpectedTime")
-    @ApiOperation(value = "选择地点和终点后获取预计行驶时长", tags = {"用户端-出租车", "用户端-专车"}, notes = "")
-    @ApiImplicitParams({
-            @ApiImplicitParam(value = "起点经度", name = "slon", required = true, dataType = "double"),
-            @ApiImplicitParam(value = "起点纬度", name = "slat", required = true, dataType = "double"),
-            @ApiImplicitParam(value = "终点经度", name = "elon", required = true, dataType = "double"),
-            @ApiImplicitParam(value = "终点纬度", name = "elat", required = true, dataType = "double")
-    })
-    public ResultUtil<BaseWarpper> queryExpectedTime(Double slon, Double slat, Double elon, Double elat){
-        try {
-            return orderService.queryExpectedTime(slon, slat, elon, elat);
-        }catch (Exception e){
-            e.printStackTrace();
-            return ResultUtil.runErr();
-        }
-    }
-
-
-
-
-    /**
-     * 获取取消订单需要支付的费用金额
-     * @param id
-     * @return
-     */
-    @ResponseBody
-    @PostMapping("/api/taxi/queryCancleAmount")
-    @ApiOperation(value = "获取取消订单需要支付的费用金额", tags = {"用户端-出租车", "用户端-专车"}, notes = "返回金额为0则不需要支付")
-    @ApiImplicitParams({
-            @ApiImplicitParam(value = "订单id", name = "id", required = true, dataType = "int"),
-            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城)", name = "orderType", required = true, dataType = "int"),
-            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
-    })
-    public ResultUtil<BaseWarpper> queryCancleAmount(Integer id, Integer orderType){
-        try {
-            switch (orderType){
-                case 1:
-                    return orderPrivateCarService.queryCancleAmount(id);
-                case 2:
-                    return orderTaxiService.queryCancleAmount(id);
-                case 3:
-                    return orderCrossCityService.queryCancleAmount(id);
-            }
-            return ResultUtil.success();
-        }catch (Exception e){
-            e.printStackTrace();
-            return ResultUtil.runErr();
-        }
-    }
-
-
-
-
-    /**
-     * 添加取消记录
-     * @param id
-     * @param reason
-     * @param remark
-     * @param request
-     * @return
-     */
-    @ResponseBody
-    @PostMapping("/api/taxi/addCancle")
-    @ApiOperation(value = "添加取消记录", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城"}, notes = "")
-    @ApiImplicitParams({
-            @ApiImplicitParam(value = "订单id", name = "id", required = true, dataType = "int"),
-            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城)", name = "orderType", required = true, dataType = "int"),
-            @ApiImplicitParam(value = "取消原因", name = "reason", required = true, dataType = "string"),
-            @ApiImplicitParam(value = "备注", name = "remark", required = false, dataType = "string"),
-            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
-    })
-    public ResultUtil addCancle(Integer id, Integer orderType, String reason, String remark, HttpServletRequest request){
-        try {
-            Integer uid = userInfoService.getUserIdFormRedis(request);
-            if(null == uid){
-                return ResultUtil.tokenErr();
-            }
-            switch (orderType){
-                case 1:
-                    return orderPrivateCarService.addCancle(id, reason, remark, uid);
-                case 2:
-                    return orderTaxiService.addCancle(id, reason, remark, uid);
-                case 3:
-                    return orderCrossCityService.addCancle(id, reason, remark, uid);
-                case 4:
-                    return orderLogisticsService.addCancle(id, reason, remark, uid);
-                case 5:
-                    return orderLogisticsService.addCancle(id, reason, remark, uid);
-                case 6:
-                    return orderCharteredCarService.addCancle(id, reason, remark, uid);
-            }
-            return ResultUtil.success();
-        }catch (Exception e){
-            e.printStackTrace();
-            return ResultUtil.runErr();
-        }
-    }
-
-
-
-    /**
-     * 取消操作支付
-     * @param id
-     * @param payType
-     * @return
-     */
-    @ResponseBody
-    @PostMapping("/api/taxi/cancleOrderTaxi")
-    @ApiOperation(value = "取消操作支付", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城"}, notes = "")
-    @ApiImplicitParams({
-            @ApiImplicitParam(value = "订单id", name = "id", required = true, dataType = "int"),
-            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城)", name = "orderType", required = true, dataType = "int"),
-            @ApiImplicitParam(value = "支付方式(1=微信,2=支付宝,3=余额)", name = "payType", required = true, dataType = "int"),
-            @ApiImplicitParam(value = "取消单id(取消操作返回)", name = "cancleId", required = false, dataType = "int"),
-            @ApiImplicitParam(value = "支付端(1=用户APP端,2=司机APP端,3=用户小程序端)", name = "type", required = true, dataType = "int"),
-            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
-    })
-    public ResultUtil cancleOrderTaxi(Integer id, Integer orderType, Integer payType, Integer cancleId, Integer type, HttpServletRequest request){
-        try {
-            Integer uid = userInfoService.getUserIdFormRedis(request);
-            if(null == uid){
-                return ResultUtil.tokenErr();
-            }
-            switch (orderType){
-                case 1:
-                    return orderPrivateCarService.cancleOrderPrivateCar(id, payType, cancleId, type);
-                case 2:
-                    return orderTaxiService.cancleOrderTaxi(id, payType, cancleId, type);
-                case 3:
-                    return orderCrossCityService.cancleOrderCrossCity(id, payType, cancleId, type);
-            }
-            return ResultUtil.success();
-        }catch (Exception e){
-            e.printStackTrace();
-            return ResultUtil.runErr();
-        }
-    }
-
-
-
-    /**
-     * 投诉操作
-     * @param driverId
-     * @param reason
-     * @param description
-     * @param request
-     * @return
-     */
-    @ResponseBody
-    @PostMapping("/api/taxi/complaintService")
-    @ApiOperation(value = "添加投诉操作", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城"}, notes = "")
-    @ApiImplicitParams({
-            @ApiImplicitParam(value = "司机id", name = "driverId", required = true, dataType = "int"),
-            @ApiImplicitParam(value = "投诉原因", name = "reason", required = true, dataType = "String"),
-            @ApiImplicitParam(value = "投诉描述", name = "description", required = true, dataType = "String"),
-            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
-    })
-    public ResultUtil complaintService(Integer driverId, String reason, String description, HttpServletRequest request){
-        try {
-            Integer uid = userInfoService.getUserIdFormRedis(request);
-            if(null == uid){
-                return ResultUtil.tokenErr();
-            }
-            complaintService.saveData(driverId, reason, description, uid);
-            return ResultUtil.success();
-        }catch (Exception e){
-            e.printStackTrace();
-            return ResultUtil.runErr();
-        }
-    }
-
-
-
-    /**
-     * 支付页面获取可用优惠券数量和余额
-     * @param orderId
-     * @param request
-     * @return
-     */
-    @ResponseBody
-    @PostMapping("/api/taxi/queryBalance")
-    @ApiOperation(value = "支付页面获取可用优惠券数量和余额", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城"}, notes = "balance=余额,coupon=优惠券")
-    @ApiImplicitParams({
-            @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
-            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城)", name = "orderType", required = true, dataType = "int"),
-            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
-    })
-    public ResultUtil queryBalance(Integer orderId, Integer orderType, HttpServletRequest request){
-        try {
-            Integer uid = userInfoService.getUserIdFormRedis(request);
-            if(null == uid){
-                return ResultUtil.tokenErr();
-            }
-            Map<String, Object> map = new HashMap<>();
-            switch (orderType){
-                case 1:
-                    map = orderPrivateCarService.queryBalance(orderId, uid);
-                    break;
-                case 2:
-                    map = orderTaxiService.queryBalance(orderId, uid);
-                    break;
-                case 3:
-                    map = orderCrossCityService.queryBalance(orderId, uid);
-                    break;
-                case 4:
-                    map = orderLogisticsService.queryBalance(orderId, uid);
-                    break;
-                case 5:
-                    map = orderLogisticsService.queryBalance(orderId, uid);
-                    break;
-            }
-            return ResultUtil.success(map);
-        }catch (Exception e){
-            e.printStackTrace();
-            return ResultUtil.runErr();
-        }
-    }
-
-
-
-    /**
-     * 支付页面获取余额和优惠数据
-     * @param orderId
-     * @param request
-     * @return
-     */
-    @ResponseBody
-    @PostMapping("/api/taxi/queryBalance1")
-    @ApiOperation(value = "1.0-支付页面获取余额和优惠数据", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城","用户端-小件物流"})
-    @ApiImplicitParams({
-            @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
-            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城,4=同城小件物流,5=跨城小件物流)", name = "orderType", required = true, dataType = "int"),
-            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
-    })
-    public ResultUtil<PreferentialDataVo> queryBalance1(Integer orderId, Integer orderType, HttpServletRequest request){
-        try {
-            Integer uid = userInfoService.getUserIdFormRedis(request);
-            if(null == uid){
-                return ResultUtil.tokenErr();
-            }
-            PreferentialDataVo map = new PreferentialDataVo();
-            switch (orderType){
-                case 1:
-                    map = orderPrivateCarService.queryBalance1(orderId, uid);
-                    break;
-                case 2:
-                    map = orderTaxiService.queryBalance1(orderId, uid);
-                    break;
-                case 3:
-                    map = orderCrossCityService.queryBalance1(orderId, uid);
-                    break;
-                case 4:
-                    map = orderLogisticsService.queryBalance1(orderId, uid);
-                    break;
-                case 5:
-                    map = orderLogisticsService.queryBalance1(orderId, uid);
-                    break;
-                case 6:
-                    map = orderCharteredCarService.queryBalance1(orderId, uid);
-                    break;
-                case 7:
+					break;
+			}
+			return ResultUtil.success(OrderWarpper.getOrderWarpper(list));
+		} catch (Exception e) {
+			e.printStackTrace();
+			return ResultUtil.runErr();
+		}
+	}
+	
+	/**
+	 * 获取消费记录
+	 *
+	 * @param pageNum
+	 * @param size
+	 * @param request
+	 * @return
+	 */
+	@ResponseBody
+	@PostMapping("/api/order/queryMyTravelRecord")
+	@ApiOperation(value = "获取消费记录", tags = {"用户端-个人中心"}, notes = "")
+	@ApiImplicitParams({
+			@ApiImplicitParam(value = "页码(首页1)", name = "pageNum", required = true, dataType = "int"),
+			@ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"),
+			@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+	})
+	public ResultUtil<List<TravelRecordWarpper>> queryMyTravelRecord(Integer pageNum, Integer size, HttpServletRequest request) {
+		try {
+			Integer uid = userInfoService.getUserIdFormRedis(request);
+			if (null == uid) {
+				return ResultUtil.tokenErr();
+			}
+			Integer page = pageNum;
+			pageNum = (pageNum - 1) * size;
+			List<TransactionDetails> transactionDetails = transactionDetailsService.selectList(new EntityWrapper<TransactionDetails>()
+					.eq("type", 1).eq("userType", 1).eq("userId", uid).orderBy("insertTime desc limit " + pageNum + ", " + size));
+			List<Map<String, Object>> list = new ArrayList<>();
+			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+			for (TransactionDetails t : transactionDetails) {
+				Map<String, Object> map = new HashMap<>();
+				map.put("money", t.getState() == 1 ? t.getMoney() : -1 * t.getMoney());
+				map.put("time", sdf.format(t.getInsertTime()));
+				map.put("name", t.getRemark());
+				map.put("insertTime", Double.valueOf(t.getInsertTime().getTime() / 1000).intValue());
+				list.add(map);
+			}
+			
+			List<TravelRecordWarpper> orderWarpper = TravelRecordWarpper.getTravelRecordWarpper(list);
+			return ResultUtil.success(orderWarpper);
+		} catch (Exception e) {
+			e.printStackTrace();
+			return ResultUtil.runErr();
+		}
+	}
+	
+	
+	/**
+	 * 发票页获取订单列表
+	 *
+	 * @param type
+	 * @param orderType
+	 * @param startTime
+	 * @param endTime
+	 * @param startMoney
+	 * @param endMoney
+	 * @param pageNum
+	 * @param size
+	 * @param request
+	 * @return
+	 */
+	@ResponseBody
+	@PostMapping("/api/order/queryInvoiceOrder")
+	@ApiOperation(value = "发票页获取订单列表", tags = {"用户端-个人中心"}, notes = "")
+	@ApiImplicitParams({
+			@ApiImplicitParam(value = "订单开票状态(1=未开票,2=其他)", name = "type", required = true, dataType = "int"),
+			@ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城出行,4=同城小件物流,5=跨城小件物流)", name = "orderType", required = false, dataType = "int"),
+			@ApiImplicitParam(value = "开始日期", name = "startTime", required = false, dataType = "string"),
+			@ApiImplicitParam(value = "结束日期", name = "endTime", required = false, dataType = "string"),
+			@ApiImplicitParam(value = "开始金额", name = "startMoney", required = false, dataType = "double"),
+			@ApiImplicitParam(value = "结束金额", name = "endMoney", required = false, dataType = "double"),
+			@ApiImplicitParam(value = "页码(首页1)", name = "pageNum", required = true, dataType = "int"),
+			@ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"),
+			@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+	})
+	public ResultUtil<List<OrderWarpper>> queryInvoiceOrder(Integer type, Integer orderType, Date startTime,
+	                                                        Date endTime, Double startMoney, Double endMoney,
+	                                                        Integer pageNum, Integer size, HttpServletRequest request) {
+		Integer page = pageNum;
+		pageNum = (pageNum - 1) * size;
+		try {
+			Integer uid = userInfoService.getUserIdFormRedis(request);
+			if (null == uid) {
+				return ResultUtil.tokenErr();
+			}
+			List<Map<String, Object>> list = new ArrayList<>();
+			if (null != orderType) {
+				switch (orderType) {
+					case 1://专车
+						list = orderPrivateCarService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid);
+						break;
+					case 2://出租车
+						list = orderTaxiService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid);
+						break;
+					case 3://跨城
+						list = orderCrossCityService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid);
+						break;
+					case 4://同城小件物流
+						list = orderLogisticsService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid, orderType);
+						break;
+					case 5://跨城小件物流
+						list = orderLogisticsService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid, orderType);
+						break;
+				}
+			} else {
+				//专车
+				List<Map<String, Object>> maps = orderPrivateCarService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid);
+				list.addAll(maps);
+				//出租车
+				List<Map<String, Object>> list1 = orderTaxiService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid);
+				list.addAll(list1);
+				//跨城
+				List<Map<String, Object>> list2 = orderCrossCityService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid);
+				list.addAll(list2);
+				//同城小件物流
+				List<Map<String, Object>> list3 = orderLogisticsService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid, orderType);
+				list.addAll(list3);
+				//跨城小件物流
+				List<Map<String, Object>> list4 = orderLogisticsService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid, orderType);
+				list.addAll(list4);
+			}
+			
+			//分页
+			if (list.size() >= page * size) {
+				list = list.subList(pageNum, pageNum + size);
+			} else if (pageNum < list.size() && list.size() < page * size) {
+				list = list.subList(pageNum, list.size());
+			} else {
+				list = new ArrayList<>();
+			}
+			
+			return ResultUtil.success(OrderWarpper.getOrderWarpper(list));
+		} catch (Exception e) {
+			e.printStackTrace();
+			return ResultUtil.runErr();
+		}
+	}
+	
+	
+	/**
+	 * 继续等待推单操作
+	 *
+	 * @param id
+	 * @return
+	 */
+	@ResponseBody
+	@PostMapping("/api/taxi/pushOrderTaxi")
+	@ApiOperation(value = "继续等待推单操作", tags = {"用户端-出租车", "用户端-专车"}, notes = "")
+	@ApiImplicitParams({
+			@ApiImplicitParam(value = "订单id", name = "id", required = true, dataType = "int"),
+			@ApiImplicitParam(value = "订单类型(1=专车,2=出租车)", name = "orderType", required = true, dataType = "int"),
+			@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+	})
+	public ResultUtil pushOrderTaxi(Integer id, Integer orderType) {
+		try {
+			switch (orderType) {
+				case 1:
+					return orderPrivateCarService.pushOrderPrivateCar(id);
+				case 2:
+					return orderTaxiService.pushOrderTaxi(id);
+			}
+			return ResultUtil.success();
+		} catch (Exception e) {
+			e.printStackTrace();
+			return ResultUtil.runErr();
+		}
+	}
+	
+	
+	/**
+	 * 获取服务中的详情数据
+	 *
+	 * @param orderId
+	 * @param orderType
+	 * @return
+	 */
+	@ResponseBody
+	@PostMapping("/api/order/queryOrderInfo")
+	@ApiOperation(value = "获取服务中的详情数据", tags = {"用户端-服务中"}, notes = "", response = OrderInfoWarpper.class)
+	@ApiImplicitParams({
+			@ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
+			@ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际)", name = "orderType", required = true, dataType = "int"),
+			@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+	})
+	public ResultUtil<OrderInfoWarpper> queryOrderInfo(Integer orderId, Integer orderType, HttpServletRequest request) {
+		try {
+			Integer uid = userInfoService.getUserIdFormRedis(request);
+			if (null == uid) {
+				return ResultUtil.tokenErr();
+			}
+			Map<String, Object> map = null;
+			List<OrderAdditionalFeeWarpper> list = new ArrayList<>();
+			switch (orderType) {
+				case 1://专车
+					map = orderPrivateCarService.queryOrderInfo(uid, orderId);
+					break;
+				case 2://出租车
+					map = orderTaxiService.queryOrderInfo(orderId);
+					break;
+				case 3://跨城
+					map = orderCrossCityService.queryOrderInfo(orderId);
+					break;
+			}
+			
+			if (map.get("companyId") != null) {
+				Company companyId = companyService.selectById(map.get("companyId").toString());
+				map.put("companyName", companyId.getName());
+			} else {
+				map.put("companyName", "");
+			}
+			if (map.get("telX") != null) {
+				map.put("driverPhone", map.get("telX"));
+			}
+			List<OrderAdditionalFee> orderAdditionalFees = orderAdditionalFeeService.selectList(new EntityWrapper<OrderAdditionalFee>().eq("orderType", orderType).eq("orderId", orderId));
+			orderAdditionalFees.forEach(orderAdditionalFee -> {
+				AdditionalFee additionalFee = additionalFeeService.selectById(orderAdditionalFee.getAdditionalFeeId());
+				OrderAdditionalFeeWarpper orderAdditionalFeeWarpper = new OrderAdditionalFeeWarpper();
+				orderAdditionalFeeWarpper.setName(additionalFee.getName());
+				orderAdditionalFeeWarpper.setAdditionalFee(orderAdditionalFee.getAmount());
+				list.add(orderAdditionalFeeWarpper);
+			});
+			OrderInfoWarpper orderInfoWarpper = OrderInfoWarpper.getOrderInfoWarpper(map, list);
+			orderType = orderInfoWarpper.getOrderType();
+			if (orderType == 1) {
+				
+				if (orderInfoWarpper.getPid() != 0) {
+					orderId = orderInfoWarpper.getPid();
+				}
+				List<Map<String, Object>> orderList = orderPrivateCarService.queryOrderInfo2(orderId, 4, null, null);
+				if (!orderList.isEmpty()) {
+					orderInfoWarpper.setMeetOrderList(JSON.parseArray(JSON.toJSONString(orderList), OrderCrossCityInfoWrapper.class));
+				} else {
+					orderInfoWarpper.setMeetOrderList(new ArrayList<>());
+				}
+				orderList = orderPrivateCarService.queryOrderInfo2(orderId, 6, null, null);
+				if (orderInfoWarpper.getState() > 1 && orderInfoWarpper.getDriverId() != 0) {
+					String value = (String) redisTemplate.opsForValue().get("DRIVER" + String.valueOf(orderInfoWarpper.getDriverId()));
+					if (value == null || value.equals("")) {
+						if (orderList.isEmpty()) {
+							orderList = orderPrivateCarService.queryOrderInfo2(orderId, 5, "0", "0");
+						} else {
+							List<Map<String, Object>> orderList1 = orderPrivateCarService.queryOrderInfo2(orderId, 5, "0", "0");
+							if (!orderList1.isEmpty()) {
+								orderList.addAll(orderList1);
+							}
+						}
+					} else {
+						if (orderList.isEmpty()) {
+							orderList = orderPrivateCarService.queryOrderInfo2(orderId, 5, value.split(",")[0], value.split(",")[1]);
+						} else {
+							List<Map<String, Object>> orderList1 = orderPrivateCarService.queryOrderInfo2(orderId, 5, value.split(",")[0], value.split(",")[1]);
+							if (!orderList1.isEmpty()) {
+								orderList.addAll(orderList1);
+							}
+						}
+					}
+				}
+				
+				
+				if (!orderList.isEmpty()) {
+					orderInfoWarpper.setGiveOrderList(JSON.parseArray(JSON.toJSONString(orderList), OrderCrossCityInfoWrapper.class));
+				} else {
+					orderInfoWarpper.setGiveOrderList(new ArrayList<>());
+				}
+				
+				OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId);
+				if (orderPrivateCar.getState() > 1) {
+					Map<String, String> geocode = gdMapGeocodingUtil.geocode(orderPrivateCar.getStartLon().toString(), orderPrivateCar.getStartLat().toString());
+					String provinceCode = geocode.get("provinceCode");
+					String cityCode = geocode.get("cityCode");
+					String districtCode = geocode.get("districtCode");
+					//获取匹配的城市价格配置
+					SystemPriceCity systemPriceCity = systemPriceCityService.queryOne(provinceCode, cityCode, districtCode);
+					if (null == systemPriceCity) {
+						return ResultUtil.error("请先配置价格规则");
+					}
+					Map<String, Object> query1 = systemPriceMapper.query(orderPrivateCar.getCompanyId(), 1, orderPrivateCar.getServerCarModelId(), systemPriceCity.getId());
+					System.out.println("参数:" + orderPrivateCar.getCompanyId() + "|" + orderPrivateCar.getServerCarModelId());
+					System.out.println("query1:" + query1);
+					//开始根据不同的方式计算金额
+					if (query1 != null) {
+						JSONObject jsonObject = JSON.parseObject(query1.get("content").toString());//等待费
+						JSONObject contentPutOne = JSON.parseObject(query1.get("contentPutOne").toString());//一人拼成
+						JSONObject contentNotOne = JSON.parseObject(query1.get("contentNotOne").toString());//一人未拼成
+						JSONObject contentPutTwo = JSON.parseObject(query1.get("contentPutTwo").toString());//2人拼成
+						JSONObject contentNotTwo = JSON.parseObject(query1.get("contentNotTwo").toString());//2人未拼成
+						JSONObject contentPutThree = JSON.parseObject(query1.get("contentPutThree").toString());//3人拼成
+						JSONObject contentNotThree = JSON.parseObject(query1.get("contentNotThree").toString());//3人未拼成
+						JSONObject contentExclusive = JSON.parseObject(query1.get("contentExclusive").toString());//独享
+						JSONObject contentPrice = JSON.parseObject(query1.get("contentPrice").toString());//一口价
+						//一口价
+						orderInfoWarpper.setFareTypeNote1(query1.get("fareTypeNote1").toString());
+						orderInfoWarpper.setFareTypeNote2(query1.get("fareTypeNote2").toString());
+						orderInfoWarpper.setFareTypeNote3(query1.get("fareTypeNote3").toString());
+						orderInfoWarpper.setContentPutOne(contentPutOne);
+						orderInfoWarpper.setContentNotOne(contentNotOne);
+						
+						orderInfoWarpper.setContentPutTwo(contentPutTwo);
+						orderInfoWarpper.setContentNotTwo(contentNotTwo);
+						
+						orderInfoWarpper.setContentPutThree(contentPutThree);
+						orderInfoWarpper.setContentNotThree(contentNotThree);
+						
+						
+						orderInfoWarpper.setContentExclusive(contentExclusive);
+						orderInfoWarpper.setContentPrice(contentPrice);
+					}
+				} else {
+					orderInfoWarpper.setContentPutOne(new JSONObject());
+					orderInfoWarpper.setContentNotOne(new JSONObject());
+					
+					orderInfoWarpper.setContentPutTwo(new JSONObject());
+					orderInfoWarpper.setContentNotTwo(new JSONObject());
+					
+					orderInfoWarpper.setContentPutThree(new JSONObject());
+					orderInfoWarpper.setContentNotThree(new JSONObject());
+					
+					
+					orderInfoWarpper.setContentExclusive(new JSONObject());
+					orderInfoWarpper.setContentPrice(new JSONObject());
+				}
+				
+			} else {
+				orderInfoWarpper.setContentPutOne(new JSONObject());
+				orderInfoWarpper.setContentNotOne(new JSONObject());
+				
+				orderInfoWarpper.setContentPutTwo(new JSONObject());
+				orderInfoWarpper.setContentNotTwo(new JSONObject());
+				
+				orderInfoWarpper.setContentPutThree(new JSONObject());
+				orderInfoWarpper.setContentNotThree(new JSONObject());
+				
+				
+				orderInfoWarpper.setContentExclusive(new JSONObject());
+				orderInfoWarpper.setContentPrice(new JSONObject());
+			}
+			String arriveTime = orderInfoWarpper.getArriveTime();
+			if (ToolUtil.isNotEmpty(arriveTime)) {
+				orderInfoWarpper.setTime(arriveTime.substring(11, arriveTime.length() - 3));
+			}
+			return ResultUtil.success(orderInfoWarpper);
+		} catch (Exception e) {
+			e.printStackTrace();
+			return ResultUtil.runErr();
+		}
+	}
+	
+	
+	@ResponseBody
+	@PostMapping("/api/order/addAppeal")
+	@ApiOperation(value = "发起申诉", tags = {"用户端-服务中"}, notes = "", response = OrderInfoWarpper.class)
+	@ApiImplicitParams({
+			@ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
+			@ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际)", name = "orderType", required = true, dataType = "int"),
+			@ApiImplicitParam(value = "申诉描述", name = "abnormalIntro", required = true, dataType = "String"),
+			@ApiImplicitParam(value = "申诉图片", name = "abnormalImg", required = true, dataType = "String"),
+			@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+	})
+	public ResultUtil<OrderInfoWarpper> addAppeal(Integer orderId, Integer orderType, String abnormalIntro, String abnormalImg, HttpServletRequest request) {
+		try {
+			Integer uid = userInfoService.getUserIdFormRedis(request);
+			if (null == uid) {
+				return ResultUtil.tokenErr();
+			}
+			switch (orderType) {
+				case 1://专车
+					orderPrivateCarService.addAppeal(uid, orderId, abnormalIntro, abnormalImg);
+					break;
+				case 2://出租车
+					orderTaxiService.addAppeal(uid, orderId, abnormalIntro, abnormalImg);
+					break;
+				case 3://跨城
+					orderCrossCityService.addAppeal(uid, orderId, abnormalIntro, abnormalImg);
+					break;
+			}
+			return ResultUtil.success();
+		} catch (Exception e) {
+			e.printStackTrace();
+			return ResultUtil.runErr();
+		}
+	}
+	
+	
+	/**
+	 * 获取服务中的详情数据
+	 *
+	 * @param orderId
+	 * @param orderType
+	 * @return
+	 */
+	@ResponseBody
+	@PostMapping("/base/order/queryOrderInfo_")
+	@ApiOperation(value = "获取服务中的详情数据", tags = {"分享专用"}, notes = "")
+	@ApiImplicitParams({
+			@ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
+			@ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际)", name = "orderType", required = true, dataType = "int"),
+	})
+	public ResultUtil<OrderInfoWarpper> queryOrderInfo_(Integer orderId, Integer orderType) {
+		try {
+			Map<String, Object> map = null;
+			List<OrderAdditionalFeeWarpper> list = new ArrayList<>();
+			switch (orderType) {
+				case 1://专车
+					map = orderPrivateCarService.queryOrderInfo(null, orderId);
+					break;
+				case 2://出租车
+					map = orderTaxiService.queryOrderInfo(orderId);
+					break;
+				case 3://跨城
+					map = orderCrossCityService.queryOrderInfo(orderId);
+					break;
+			}
+			if (null != map.get("telX")) {
+				map.put("driverPhone", map.get("telX"));
+			}
+			List<OrderAdditionalFee> orderAdditionalFees = orderAdditionalFeeService.selectList(new EntityWrapper<OrderAdditionalFee>().eq("orderType", orderType).eq("orderId", orderId));
+			orderAdditionalFees.forEach(orderAdditionalFee -> {
+				AdditionalFee additionalFee = additionalFeeService.selectById(orderAdditionalFee.getAdditionalFeeId());
+				OrderAdditionalFeeWarpper orderAdditionalFeeWarpper = new OrderAdditionalFeeWarpper();
+				orderAdditionalFeeWarpper.setName(additionalFee.getName());
+				orderAdditionalFeeWarpper.setAdditionalFee(orderAdditionalFee.getAmount());
+				list.add(orderAdditionalFeeWarpper);
+			});
+			return ResultUtil.success(OrderInfoWarpper.getOrderInfoWarpper(map, list));
+		} catch (Exception e) {
+			e.printStackTrace();
+			return ResultUtil.runErr();
+		}
+	}
+	
+	
+	/**
+	 * 获取订单取消支付页面详情
+	 *
+	 * @param orderId
+	 * @param orderType
+	 * @return
+	 */
+	@ResponseBody
+	@PostMapping("/api/order/queryCancelPage")
+	@ApiOperation(value = "获取订单取消支付页面详情", tags = {"用户端-服务中"}, notes = "")
+	@ApiImplicitParams({
+			@ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
+			@ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际)", name = "orderType", required = true, dataType = "int"),
+			@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+	})
+	public ResultUtil<OrderInfoWarpper> queryCancelPage(Integer orderId, Integer orderType, HttpServletRequest request) {
+		try {
+			Integer uid = userInfoService.getUserIdFormRedis(request);
+			if (null == uid) {
+				return ResultUtil.tokenErr();
+			}
+			Map<String, Object> map = null;
+			List<OrderAdditionalFeeWarpper> list = new ArrayList<>();
+			switch (orderType) {
+				case 1://专车
+					map = orderPrivateCarService.queryOrderInfo(uid, orderId);
+					ResultUtil<BaseWarpper> res = orderPrivateCarService.queryCancleAmount(orderId);
+					map.put("cancelPayMoney", res.getData().getAmount());
+					break;
+				case 2://出租车
+					map = orderTaxiService.queryOrderInfo(orderId);
+					ResultUtil<BaseWarpper> re = orderTaxiService.queryCancleAmount(orderId);
+					map.put("cancelPayMoney", re.getData().getAmount());
+					break;
+				case 3://跨城
+					map = orderCrossCityService.queryOrderInfo(orderId);
+					ResultUtil<BaseWarpper> r = orderCrossCityService.queryCancleAmount(orderId);
+					map.put("cancelPayMoney", r.getData().getAmount());
+					break;
+			}
+			if (null != map.get("telX")) {
+				map.put("driverPhone", map.get("telX"));
+			}
+			List<OrderAdditionalFee> orderAdditionalFees = orderAdditionalFeeService.selectList(new EntityWrapper<OrderAdditionalFee>().eq("orderType", orderType).eq("orderId", orderId));
+			orderAdditionalFees.forEach(orderAdditionalFee -> {
+				AdditionalFee additionalFee = additionalFeeService.selectById(orderAdditionalFee.getAdditionalFeeId());
+				OrderAdditionalFeeWarpper orderAdditionalFeeWarpper = new OrderAdditionalFeeWarpper();
+				orderAdditionalFeeWarpper.setName(additionalFee.getName());
+				orderAdditionalFeeWarpper.setAdditionalFee(orderAdditionalFee.getAmount());
+				list.add(orderAdditionalFeeWarpper);
+			});
+			return ResultUtil.success(OrderInfoWarpper.getOrderInfoWarpper(map, list));
+		} catch (Exception e) {
+			e.printStackTrace();
+			return ResultUtil.runErr();
+		}
+	}
+	
+	
+	/**
+	 * 获取订单轨迹坐标
+	 *
+	 * @param orderId
+	 * @param orderType
+	 * @return
+	 */
+	@ResponseBody
+	@PostMapping("/api/order/queryTrack")
+	@ApiOperation(value = "获取订单轨迹坐标", tags = {"用户端-个人中心"}, notes = "")
+	@ApiImplicitParams({
+			@ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
+			@ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际)", name = "orderType", required = true, dataType = "int"),
+			@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+	})
+	public ResultUtil queryTrack(Integer orderId, Integer orderType) {
+		try {
+			List<Map<String, Object>> list = orderPositionService.queryTrack(orderId, orderType);
+			return ResultUtil.success(list);
+		} catch (Exception e) {
+			e.printStackTrace();
+			return ResultUtil.runErr();
+		}
+	}
+	
+	
+	/**
+	 * 获取订单轨迹坐标
+	 *
+	 * @param orderId
+	 * @param orderType
+	 * @return
+	 */
+	@ResponseBody
+	@PostMapping("/base/order/queryTrack_")
+	@ApiOperation(value = "获取订单轨迹坐标", tags = {"分享专用"}, notes = "")
+	@ApiImplicitParams({
+			@ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
+			@ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际)", name = "orderType", required = true, dataType = "int"),
+	})
+	public ResultUtil queryTrack_(Integer orderId, Integer orderType) {
+		try {
+			List<Map<String, Object>> list = orderPositionService.queryTrack(orderId, orderType);
+			return ResultUtil.success(list);
+		} catch (Exception e) {
+			e.printStackTrace();
+			return ResultUtil.runErr();
+		}
+	}
+	
+	
+	/**
+	 * 发送订单状态
+	 *
+	 * @param id
+	 * @param orderType
+	 * @return
+	 */
+	@ResponseBody
+	@PostMapping("/base/order/sendOrderState")
+	public ResultUtil cancelOrder(Integer id, Integer orderType) {
+		try {
+			Integer driverId = null;
+			Integer userId = null;
+			Integer state = 0;
+			switch (orderType) {
+				case 1:
+					OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(id);
+					driverId = orderPrivateCar.getDriverId();
+					userId = orderPrivateCar.getUserId();
+					state = orderPrivateCar.getState();
+					if (null != driverId) {
+						pushUtil.pushOrderState(2, driverId, id, orderType, state, 0);
+					}
+					break;
+				case 2:
+					OrderTaxi orderTaxi = orderTaxiService.selectById(id);
+					driverId = orderTaxi.getDriverId();
+					userId = orderTaxi.getUserId();
+					state = orderTaxi.getState();
+					if (null != driverId) {
+						pushUtil.pushOrderState(2, driverId, id, orderType, state, 0);
+					}
+					break;
+				case 3:
+					OrderCrossCity orderCrossCity = orderCrossCityService.selectById(id);
+					driverId = orderCrossCity.getDriverId();
+					userId = orderCrossCity.getUserId();
+					state = orderCrossCity.getState();
+					if (orderCrossCity.getPayMoney() == null && state == 10) {//支付的情况才推送取消
+						break;
+					} else {
+						pushUtil.pushOrderState(2, driverId, id, orderType, state, 0);
+					}
+					break;
+				case 4:
+					OrderLogistics orderLogistics = orderLogisticsService.selectById(id);
+					driverId = orderLogistics.getDriverId();
+					userId = orderLogistics.getUserId();
+					state = orderLogistics.getState();
+					if (orderLogistics.getPayMoney() == null && state == 10) {//支付的情况才推送取消
+						break;
+					} else {
+						pushUtil.pushOrderState(2, driverId, id, orderType, state, 0);
+					}
+					break;
+				case 5:
+					OrderLogistics orderLogistics1 = orderLogisticsService.selectById(id);
+					driverId = orderLogistics1.getDriverId();
+					userId = orderLogistics1.getUserId();
+					state = orderLogistics1.getState();
+					if (orderLogistics1.getPayMoney() == null && state == 10) {//支付的情况才推送取消
+						break;
+					} else {
+						pushUtil.pushOrderState(2, driverId, id, orderType, state, 0);
+					}
+					break;
+			}
+			pushUtil.pushOrderState(1, userId, id, orderType, state, 0);
+			return ResultUtil.success();
+		} catch (Exception e) {
+			e.printStackTrace();
+			return ResultUtil.runErr();
+		}
+	}
+	
+	
+	/**
+	 * APP调用微信小程序支付
+	 *
+	 * @param orderId
+	 * @param orderType
+	 * @param type
+	 * @param content
+	 * @return
+	 */
+	@ResponseBody
+	@PostMapping("/base/order/weChatPay")
+	@ApiOperation(value = "APP调用微信小程序支付", tags = {"用户端-服务中"}, notes = "")
+	@ApiImplicitParams({
+			@ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
+			@ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城)", name = "orderType", required = true, dataType = "int"),
+			@ApiImplicitParam(value = "业务类型(1=订单完成支付,2=订单取消支付,3=司机端改派支付,4=余额充值,5=小件物流差价支付)", name = "type", required = true, dataType = "int"),
+			@ApiImplicitParam(value = "端口类型(1=用户端,2=司机端)", name = "userType", required = true, dataType = "int"),
+			@ApiImplicitParam(value = "用户id", name = "uid", required = true, dataType = "int"),
+			@ApiImplicitParam(value = "附加参数{\"key\":\"value\"}", name = "content", required = true, dataType = "string")
+	})
+	public ResultUtil weChatPay(Integer orderId, Integer orderType, Integer type, Integer userType, Integer uid, String content) {
+		try {
+			return orderService.weChatPay(orderId, orderType, type, userType, uid, content);
+		} catch (Exception e) {
+			e.printStackTrace();
+			return ResultUtil.runErr();
+		}
+	}
+	
+	
+	@ResponseBody
+	@PostMapping("/base/order/queryUserOpenId")
+	@ApiOperation(value = "获取用户的微信openid", tags = {"用户端-服务中"}, notes = "")
+	@ApiImplicitParams({
+			@ApiImplicitParam(value = "端口类型(1=用户端,2=司机端)", name = "userType", required = true, dataType = "int"),
+			@ApiImplicitParam(value = "用户id", name = "uid", required = true, dataType = "int")
+	})
+	public ResultUtil queryUserOpenId(Integer uid, Integer userType) {
+		if (userType == 2) {
+			Driver driver = driverService.selectById(uid);
+			return ResultUtil.success(driver.getAppletsOpenId());
+		}
+		if (userType == 1) {
+			UserInfo userInfo = userInfoService.selectById(uid);
+			return ResultUtil.success(userInfo.getAppletsOpenId());
+		}
+		return ResultUtil.success();
+	}
+	
+	
+	@ResponseBody
+	@PostMapping("/base/order/getWeChatOpenId")
+	@ApiOperation(value = "用户授权获取小程序openid", tags = {"用户端-服务中"}, notes = "")
+	@ApiImplicitParams({
+			@ApiImplicitParam(value = "端口类型(1=用户端,2=司机端)", name = "userType", required = true, dataType = "int"),
+			@ApiImplicitParam(value = "用户id", name = "uid", required = true, dataType = "int"),
+			@ApiImplicitParam(value = "小程序授权临时凭证", name = "jscode", required = true, dataType = "string"),
+	})
+	public ResultUtil getWeChatOpenId(Integer uid, Integer userType, String jscode) {
+		Map<String, String> map = weChatUtil.code2Session(jscode);
+		if (userType == 2) {
+			Driver driver = driverService.selectById(uid);
+			driver.setAppletsOpenId(map.get("openid"));
+			driverService.updateById(driver);
+		}
+		if (userType == 1) {
+			UserInfo userInfo = userInfoService.selectById(uid);
+			userInfo.setAppletsOpenId(map.get("openid"));
+			userInfoService.updateById(userInfo);
+		}
+		return ResultUtil.success();
+	}
+	
+	
+	/**
+	 * 获取预计行驶时间
+	 *
+	 * @param slon
+	 * @param slat
+	 * @param elon
+	 * @param elat
+	 * @return
+	 */
+	@ResponseBody
+	@PostMapping("/base/taxi/queryExpectedTime")
+	@ApiOperation(value = "选择地点和终点后获取预计行驶时长", tags = {"用户端-出租车", "用户端-专车"}, notes = "")
+	@ApiImplicitParams({
+			@ApiImplicitParam(value = "起点经度", name = "slon", required = true, dataType = "double"),
+			@ApiImplicitParam(value = "起点纬度", name = "slat", required = true, dataType = "double"),
+			@ApiImplicitParam(value = "终点经度", name = "elon", required = true, dataType = "double"),
+			@ApiImplicitParam(value = "终点纬度", name = "elat", required = true, dataType = "double")
+	})
+	public ResultUtil<BaseWarpper> queryExpectedTime(Double slon, Double slat, Double elon, Double elat) {
+		try {
+			return orderService.queryExpectedTime(slon, slat, elon, elat);
+		} catch (Exception e) {
+			e.printStackTrace();
+			return ResultUtil.runErr();
+		}
+	}
+	
+	
+	/**
+	 * 获取取消订单需要支付的费用金额
+	 *
+	 * @param id
+	 * @return
+	 */
+	@ResponseBody
+	@PostMapping("/api/taxi/queryCancleAmount")
+	@ApiOperation(value = "获取取消订单需要支付的费用金额", tags = {"用户端-出租车", "用户端-专车"}, notes = "返回金额为0则不需要支付")
+	@ApiImplicitParams({
+			@ApiImplicitParam(value = "订单id", name = "id", required = true, dataType = "int"),
+			@ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城)", name = "orderType", required = true, dataType = "int"),
+			@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+	})
+	public ResultUtil<BaseWarpper> queryCancleAmount(Integer id, Integer orderType) {
+		try {
+			switch (orderType) {
+				case 1:
+					return orderPrivateCarService.queryCancleAmount(id);
+				case 2:
+					return orderTaxiService.queryCancleAmount(id);
+				case 3:
+					return orderCrossCityService.queryCancleAmount(id);
+			}
+			return ResultUtil.success();
+		} catch (Exception e) {
+			e.printStackTrace();
+			return ResultUtil.runErr();
+		}
+	}
+	
+	
+	/**
+	 * 添加取消记录
+	 *
+	 * @param id
+	 * @param reason
+	 * @param remark
+	 * @param request
+	 * @return
+	 */
+	@ResponseBody
+	@PostMapping("/api/taxi/addCancle")
+	@ApiOperation(value = "添加取消记录", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城"}, notes = "")
+	@ApiImplicitParams({
+			@ApiImplicitParam(value = "订单id", name = "id", required = true, dataType = "int"),
+			@ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城)", name = "orderType", required = true, dataType = "int"),
+			@ApiImplicitParam(value = "取消原因", name = "reason", required = true, dataType = "string"),
+			@ApiImplicitParam(value = "备注", name = "remark", required = false, dataType = "string"),
+			@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+	})
+	public ResultUtil addCancle(Integer id, Integer orderType, String reason, String remark, HttpServletRequest request) {
+		try {
+			Integer uid = userInfoService.getUserIdFormRedis(request);
+			if (null == uid) {
+				return ResultUtil.tokenErr();
+			}
+			switch (orderType) {
+				case 1:
+					return orderPrivateCarService.addCancle(id, reason, remark, uid);
+				case 2:
+					return orderTaxiService.addCancle(id, reason, remark, uid);
+				case 3:
+					return orderCrossCityService.addCancle(id, reason, remark, uid);
+				case 4:
+					return orderLogisticsService.addCancle(id, reason, remark, uid);
+				case 5:
+					return orderLogisticsService.addCancle(id, reason, remark, uid);
+				case 6:
+					return orderCharteredCarService.addCancle(id, reason, remark, uid);
+			}
+			return ResultUtil.success();
+		} catch (Exception e) {
+			e.printStackTrace();
+			return ResultUtil.runErr();
+		}
+	}
+	
+	
+	/**
+	 * 取消操作支付
+	 *
+	 * @param id
+	 * @param payType
+	 * @return
+	 */
+	@ResponseBody
+	@PostMapping("/api/taxi/cancleOrderTaxi")
+	@ApiOperation(value = "取消操作支付", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城"}, notes = "")
+	@ApiImplicitParams({
+			@ApiImplicitParam(value = "订单id", name = "id", required = true, dataType = "int"),
+			@ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城)", name = "orderType", required = true, dataType = "int"),
+			@ApiImplicitParam(value = "支付方式(1=微信,2=支付宝,3=余额)", name = "payType", required = true, dataType = "int"),
+			@ApiImplicitParam(value = "取消单id(取消操作返回)", name = "cancleId", required = false, dataType = "int"),
+			@ApiImplicitParam(value = "支付端(1=用户APP端,2=司机APP端,3=用户小程序端)", name = "type", required = true, dataType = "int"),
+			@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+	})
+	public ResultUtil cancleOrderTaxi(Integer id, Integer orderType, Integer payType, Integer cancleId, Integer type, HttpServletRequest request) {
+		try {
+			Integer uid = userInfoService.getUserIdFormRedis(request);
+			if (null == uid) {
+				return ResultUtil.tokenErr();
+			}
+			switch (orderType) {
+				case 1:
+					return orderPrivateCarService.cancleOrderPrivateCar(id, payType, cancleId, type);
+				case 2:
+					return orderTaxiService.cancleOrderTaxi(id, payType, cancleId, type);
+				case 3:
+					return orderCrossCityService.cancleOrderCrossCity(id, payType, cancleId, type);
+			}
+			return ResultUtil.success();
+		} catch (Exception e) {
+			e.printStackTrace();
+			return ResultUtil.runErr();
+		}
+	}
+	
+	
+	/**
+	 * 投诉操作
+	 *
+	 * @param driverId
+	 * @param reason
+	 * @param description
+	 * @param request
+	 * @return
+	 */
+	@ResponseBody
+	@PostMapping("/api/taxi/complaintService")
+	@ApiOperation(value = "添加投诉操作", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城"}, notes = "")
+	@ApiImplicitParams({
+			@ApiImplicitParam(value = "司机id", name = "driverId", required = true, dataType = "int"),
+			@ApiImplicitParam(value = "投诉原因", name = "reason", required = true, dataType = "String"),
+			@ApiImplicitParam(value = "投诉描述", name = "description", required = true, dataType = "String"),
+			@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+	})
+	public ResultUtil complaintService(Integer driverId, String reason, String description, HttpServletRequest request) {
+		try {
+			Integer uid = userInfoService.getUserIdFormRedis(request);
+			if (null == uid) {
+				return ResultUtil.tokenErr();
+			}
+			complaintService.saveData(driverId, reason, description, uid);
+			return ResultUtil.success();
+		} catch (Exception e) {
+			e.printStackTrace();
+			return ResultUtil.runErr();
+		}
+	}
+	
+	
+	/**
+	 * 支付页面获取可用优惠券数量和余额
+	 *
+	 * @param orderId
+	 * @param request
+	 * @return
+	 */
+	@ResponseBody
+	@PostMapping("/api/taxi/queryBalance")
+	@ApiOperation(value = "支付页面获取可用优惠券数量和余额", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城"}, notes = "balance=余额,coupon=优惠券")
+	@ApiImplicitParams({
+			@ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
+			@ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城)", name = "orderType", required = true, dataType = "int"),
+			@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+	})
+	public ResultUtil queryBalance(Integer orderId, Integer orderType, HttpServletRequest request) {
+		try {
+			Integer uid = userInfoService.getUserIdFormRedis(request);
+			if (null == uid) {
+				return ResultUtil.tokenErr();
+			}
+			Map<String, Object> map = new HashMap<>();
+			switch (orderType) {
+				case 1:
+					map = orderPrivateCarService.queryBalance(orderId, uid);
+					break;
+				case 2:
+					map = orderTaxiService.queryBalance(orderId, uid);
+					break;
+				case 3:
+					map = orderCrossCityService.queryBalance(orderId, uid);
+					break;
+				case 4:
+					map = orderLogisticsService.queryBalance(orderId, uid);
+					break;
+				case 5:
+					map = orderLogisticsService.queryBalance(orderId, uid);
+					break;
+			}
+			return ResultUtil.success(map);
+		} catch (Exception e) {
+			e.printStackTrace();
+			return ResultUtil.runErr();
+		}
+	}
+	
+	
+	/**
+	 * 支付页面获取余额和优惠数据
+	 *
+	 * @param orderId
+	 * @param request
+	 * @return
+	 */
+	@ResponseBody
+	@PostMapping("/api/taxi/queryBalance1")
+	@ApiOperation(value = "1.0-支付页面获取余额和优惠数据", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城", "用户端-小件物流"})
+	@ApiImplicitParams({
+			@ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
+			@ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城,4=同城小件物流,5=跨城小件物流)", name = "orderType", required = true, dataType = "int"),
+			@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+	})
+	public ResultUtil<PreferentialDataVo> queryBalance1(Integer orderId, Integer orderType, HttpServletRequest request) {
+		try {
+			Integer uid = userInfoService.getUserIdFormRedis(request);
+			if (null == uid) {
+				return ResultUtil.tokenErr();
+			}
+			PreferentialDataVo map = new PreferentialDataVo();
+			switch (orderType) {
+				case 1:
+					map = orderPrivateCarService.queryBalance1(orderId, uid);
+					break;
+				case 2:
+					map = orderTaxiService.queryBalance1(orderId, uid);
+					break;
+				case 3:
+					map = orderCrossCityService.queryBalance1(orderId, uid);
+					break;
+				case 4:
+					map = orderLogisticsService.queryBalance1(orderId, uid);
+					break;
+				case 5:
+					map = orderLogisticsService.queryBalance1(orderId, uid);
+					break;
+				case 6:
+					map = orderCharteredCarService.queryBalance1(orderId, uid);
+					break;
+				case 7:
 //                    map = orde.queryBalance1(orderId, uid);
-                    break;
-            }
-            return ResultUtil.success(map);
-        }catch (Exception e){
-            e.printStackTrace();
-            return ResultUtil.runErr();
-        }
-    }
-
-
-
-
-    /**
-     * 获取支付页面的优惠券列表
-     * @param orderId
-     * @param pageNum
-     * @param size
-     * @param request
-     * @return
-     */
-    @ResponseBody
-    @PostMapping("/api/taxi/queryCoupon")
-    @ApiOperation(value = "获取支付页面的优惠券列表", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城"}, notes = "")
-    @ApiImplicitParams({
-            @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
-            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城)", name = "orderType", required = true, dataType = "int"),
-            @ApiImplicitParam(value = "页码,首页1", name = "pageNum", required = true, dataType = "int"),
-            @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"),
-            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
-    })
-    public ResultUtil queryCoupon(Integer orderId, Integer orderType, Integer pageNum, Integer size, HttpServletRequest request){
-        try {
-            Integer uid = userInfoService.getUserIdFormRedis(request);
-            if(null == uid){
-                return ResultUtil.tokenErr();
-            }
-            List<Map<String, Object>> list = new ArrayList<>();
-            switch (orderType){
-                case 1:
-                    list = orderPrivateCarService.queryCoupon(orderId, uid, pageNum, size);
-                    break;
-                case 2:
-                    list = orderTaxiService.queryCoupon(orderId, uid, pageNum, size);
-                    break;
-                case 3:
-                    list = orderCrossCityService.queryCoupon(orderId, uid, pageNum, size);
-                    break;
-            }
-            return ResultUtil.success(CouponWarpper.getCouponWarppers(list));
-        }catch (Exception e){
-            e.printStackTrace();
-            return ResultUtil.runErr();
-        }
-    }
-
-
-
-
-    @ResponseBody
-    @PostMapping("/api/taxi/queryCouponList")
-    @ApiOperation(value = "1.0-获取支付页面的优惠券和打车卡列表", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城","用户端-小件物流"}, notes = "")
-    @ApiImplicitParams({
-            @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
-            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城,4=同城小件物流,5=跨城小件物流)", name = "orderType", required = true, dataType = "int"),
-            @ApiImplicitParam(value = "页码,首页1", name = "pageNum", required = true, dataType = "int"),
-            @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"),
-            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
-    })
-    public ResultUtil<List<CouponsListVo>> queryCouponList(Integer orderId, Integer orderType, Integer pageNum, Integer size, HttpServletRequest request){
-        try {
-            Integer uid = userInfoService.getUserIdFormRedis(request);
-            if(null == uid){
-                return ResultUtil.tokenErr();
-            }
-            List<CouponsListVo> list = new ArrayList<>();
-            switch (orderType){
-                case 1:
-                    list = orderPrivateCarService.queryCouponList(orderId, uid, pageNum, size);
-                    break;
-                case 2:
-                    list = orderTaxiService.queryCouponList(orderId, uid, pageNum, size);
-                    break;
-                case 3:
-                    list = orderCrossCityService.queryCouponList(orderId, uid, pageNum, size);
-                    break;
-                case 4:
-                    list = orderLogisticsService.queryCouponList(orderId, uid, pageNum, size);
-                    break;
-                case 5:
-                    list = orderLogisticsService.queryCouponList(orderId, uid, pageNum, size);
-                    break;
-            }
-            return ResultUtil.success(list);
-        }catch (Exception e){
-            e.printStackTrace();
-            return ResultUtil.runErr();
-        }
-    }
-
-
-
-    /**
-     * 订单完成支付订单操作
-     * @param payType
-     * @param orderId
-     * @param request
-     * @return
-     */
-    @ResponseBody
-    @PostMapping("/api/taxi/payTaxiOrder")
-    @ApiOperation(value = "订单完成支付订单操作", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城", "用户端-小件物流"}, notes = "")
-    @ApiImplicitParams({
-            @ApiImplicitParam(value = "支付方式(1=微信,2=支付宝,3=余额)", name = "payType", required = true, dataType = "int"),
-            @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
-            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城,4=小件物流)", name = "orderType", required = true, dataType = "int"),
-            @ApiImplicitParam(value = "优惠券id", name = "couponId", required = false, dataType = "int"),
-            @ApiImplicitParam(value = "支付端(1=用户APP端,2=司机APP端,3=用户小程序端)", name = "type", required = true, dataType = "int"),
-            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
-    })
-    public ResultUtil payTaxiOrder(Integer payType, Integer orderId, Integer orderType, Integer couponId, Integer type, HttpServletRequest request){
-        try {
-            Integer uid = userInfoService.getUserIdFormRedis(request);
-            if(null == uid){
-                return ResultUtil.tokenErr();
-            }
-            switch (orderType){
-                case 1:
-                    return orderPrivateCarService.payPrivateCarOrder(payType, orderId, couponId, type);
-                case 2:
-                    return orderTaxiService.payTaxiOrder(payType, orderId, couponId, type);
-                case 3:
-                    return orderCrossCityService.payCrossCityOrder(payType, orderId, couponId, type);
-                case 4:
-                    return orderLogisticsService.payLogisticsOrder(payType, orderId, type);
-                case 5:
-                    return orderLogisticsService.payLogisticsOrder(payType, orderId, type);
-            }
-            return ResultUtil.success();
-        }catch (Exception e){
-            e.printStackTrace();
-            return ResultUtil.runErr();
-        }
-    }
-
-
-
-    @ResponseBody
-    @PostMapping("/api/taxi/payTaxiOrder1")
-    @ApiOperation(value = "1.0-订单完成支付订单操作", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城", "用户端-小件物流"}, notes = "")
-    @ApiImplicitParams({
-            @ApiImplicitParam(value = "支付方式(1=微信,2=支付宝,3=余额)", name = "payType", required = true, dataType = "int"),
-            @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
-            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城,4=小件物流)", name = "orderType", required = true, dataType = "int"),
-            @ApiImplicitParam(value = "优惠数据id", name = "objectId", required = false, dataType = "int"),
-            @ApiImplicitParam(value = "数据类型(1=优惠券,2=打车卡)", name = "objectType", required = false, dataType = "int"),
-            @ApiImplicitParam(value = "支付端(1=用户APP端,2=司机APP端,3=用户小程序端)", name = "type", required = true, dataType = "int"),
-            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
-    })
-    public ResultUtil payTaxiOrder1(Integer payType, Integer orderId, Integer orderType, Integer objectId, Integer objectType, Integer type, HttpServletRequest request){
-        System.out.println(objectType);
-        System.out.println(objectId);
-        try {
-            Integer uid = userInfoService.getUserIdFormRedis(request);
-            if(null == uid){
-                return ResultUtil.tokenErr();
-            }
-            switch (orderType){
-                case 1:
-                    return orderPrivateCarService.payPrivateCarOrder1(payType, orderId, objectId, objectType, type);
-                case 2:
-                    return orderTaxiService.payTaxiOrder1(payType, orderId, objectId, objectType, type);
-                case 3:
-                    return orderCrossCityService.payCrossCityOrder1(payType, orderId, objectId, objectType, type);
-                case 4:
-                    return orderLogisticsService.payLogisticsOrder1(payType, orderId, objectId, objectType, type);
-                case 5:
-                    return orderLogisticsService.payLogisticsOrder1(payType, orderId, objectId, objectType, type);
-            }
-            return ResultUtil.success();
-        }catch (Exception e){
-            e.printStackTrace();
-            return ResultUtil.runErr();
-        }
-    }
-
-
-
-
-    /**
-     * 订单完成后添加评价操作
-     * @param orderId
-     * @param fraction
-     * @param content
-     * @return
-     */
-    @ResponseBody
-    @PostMapping("/api/taxi/orderEvaluate")
-    @ApiOperation(value = "订单完成后添加评价操作", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城"}, notes = "")
-    @ApiImplicitParams({
-            @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
-            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城)", name = "orderType", required = true, dataType = "int"),
-            @ApiImplicitParam(value = "评分", name = "fraction", required = true, dataType = "int"),
-            @ApiImplicitParam(value = "评价内容", name = "content", required = false, dataType = "String"),
-            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
-    })
-    public ResultUtil orderEvaluate(Integer orderId, Integer orderType, Integer fraction, String content){
-        try {
-            ResultUtil resultUtil = orderEvaluateService.saveData(orderId, orderType, fraction, content);
-            if(resultUtil.getCode() == 200){
-                switch (orderType){
-                    case 1:
-                        OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId);
-                        orderPrivateCar.setState(9);
-                        orderPrivateCarService.updateById(orderPrivateCar);
-                        new Thread(new Runnable() {
-                            @Override
-                            public void run() {
-                                if(pushMinistryOfTransport){//上传数据
-                                    pushMinistryOfTransportUtil.ratedPassenger(Integer.valueOf(resultUtil.getData().toString()));
-                                    pushMinistryOfTransportUtil.ratedDriver(orderPrivateCar.getDriverId());
-                                }
-                            }
-                        }).start();
-                        break;
-                    case 2:
-                        OrderTaxi orderTaxi = orderTaxiService.selectById(orderId);
-                        orderTaxi.setState(9);
-                        orderTaxiService.updateById(orderTaxi);
-                        break;
-                    case 3:
-                        OrderCrossCity orderCrossCity = orderCrossCityService.selectById(orderId);
-                        orderCrossCity.setState(9);
-                        orderCrossCityService.updateById(orderCrossCity);
-                        break;
-                }
-            }
-            return resultUtil.getCode() == 200 ? ResultUtil.success() : resultUtil;
-        }catch (Exception e){
-            e.printStackTrace();
-            return ResultUtil.runErr();
-        }
-    }
-
-
-
-    /**
-     * 评论成功后获取红包金额
-     * @param orderId
-     * @return
-     */
-    @ResponseBody
-    @PostMapping("/api/taxi/queryRedMoney")
-    @ApiOperation(value = "评论成功后获取红包金额", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城"}, notes = "")
-    @ApiImplicitParams({
-            @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
-            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城)", name = "orderType", required = true, dataType = "int"),
-            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
-    })
-    public ResultUtil<BaseWarpper> queryRedMoney(Integer orderId, Integer orderType){
-        try {
-            switch (orderType){
-                case 1:
-                    return orderPrivateCarService.queryRedMoney(orderId);
-                case 2:
-                    return orderTaxiService.queryRedMoney(orderId);
-                case 3:
-                    return orderCrossCityService.queryRedMoney(orderId);
-            }
-            return ResultUtil.success();
-        }catch (Exception e){
-            e.printStackTrace();
-            return ResultUtil.runErr();
-        }
-    }
-
-
-
-
-    /**
-     * 分享成功后添加红包操作
-     * @param orderId
-     * @return
-     */
-    @ResponseBody
-    @PostMapping("/api/taxi/shareRedEnvelope")
-    @ApiOperation(value = "分享成功后添加红包操作", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城"}, notes = "")
-    @ApiImplicitParams({
-            @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
-            @ApiImplicitParam(value = "订单类型", name = "orderType", required = true, dataType = "int"),
-            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
-    })
-    public ResultUtil shareRedEnvelope(Integer orderId, Integer orderType){
-        try {
-            switch (orderType){
-                case 1:
-                    return orderPrivateCarService.shareRedEnvelope(orderId);
-                case 2:
-                    return orderTaxiService.shareRedEnvelope(orderId);
-                case 3:
-                    return orderCrossCityService.shareRedEnvelope(orderId);
-            }
-            return ResultUtil.success();
-        }catch (Exception e){
-            e.printStackTrace();
-            return ResultUtil.runErr();
-        }
-    }
-
-
-
-
-
-
-
-    /**
-     * 取消订单微信回调
-     * @param request
-     */
-    @ResponseBody
-    @PostMapping("/base/wxCancelOrderTaxi")
-    public void wxCancelOrderTaxi(HttpServletRequest request, HttpServletResponse response){
-        try {
-            Map<String, String> map = payMoneyUtil.weixinpayCallback(request);
-            if(null != map){
-                String order_id = map.get("transaction_id");
-                String out_trade_no = map.get("out_trade_no");
-                String result = map.get("result");
-                if(ToolUtil.isNotEmpty(out_trade_no) && ToolUtil.isNotEmpty(order_id)){
-                    PrintWriter out = response.getWriter();
-                    out.write(result);
-                    out.flush();
-                    out.close();
-
-                    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;
-                    }
-                }
+					break;
+			}
+			return ResultUtil.success(map);
+		} catch (Exception e) {
+			e.printStackTrace();
+			return ResultUtil.runErr();
+		}
+	}
+	
+	
+	/**
+	 * 获取支付页面的优惠券列表
+	 *
+	 * @param orderId
+	 * @param pageNum
+	 * @param size
+	 * @param request
+	 * @return
+	 */
+	@ResponseBody
+	@PostMapping("/api/taxi/queryCoupon")
+	@ApiOperation(value = "获取支付页面的优惠券列表", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城"}, notes = "")
+	@ApiImplicitParams({
+			@ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
+			@ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城)", name = "orderType", required = true, dataType = "int"),
+			@ApiImplicitParam(value = "页码,首页1", name = "pageNum", required = true, dataType = "int"),
+			@ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"),
+			@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+	})
+	public ResultUtil queryCoupon(Integer orderId, Integer orderType, Integer pageNum, Integer size, HttpServletRequest request) {
+		try {
+			Integer uid = userInfoService.getUserIdFormRedis(request);
+			if (null == uid) {
+				return ResultUtil.tokenErr();
+			}
+			List<Map<String, Object>> list = new ArrayList<>();
+			switch (orderType) {
+				case 1:
+					list = orderPrivateCarService.queryCoupon(orderId, uid, pageNum, size);
+					break;
+				case 2:
+					list = orderTaxiService.queryCoupon(orderId, uid, pageNum, size);
+					break;
+				case 3:
+					list = orderCrossCityService.queryCoupon(orderId, uid, pageNum, size);
+					break;
+			}
+			return ResultUtil.success(CouponWarpper.getCouponWarppers(list));
+		} catch (Exception e) {
+			e.printStackTrace();
+			return ResultUtil.runErr();
+		}
+	}
+	
+	
+	@ResponseBody
+	@PostMapping("/api/taxi/queryCouponList")
+	@ApiOperation(value = "1.0-获取支付页面的优惠券和打车卡列表", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城", "用户端-小件物流"}, notes = "")
+	@ApiImplicitParams({
+			@ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
+			@ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城,4=同城小件物流,5=跨城小件物流)", name = "orderType", required = true, dataType = "int"),
+			@ApiImplicitParam(value = "页码,首页1", name = "pageNum", required = true, dataType = "int"),
+			@ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"),
+			@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+	})
+	public ResultUtil<List<CouponsListVo>> queryCouponList(Integer orderId, Integer orderType, Integer pageNum, Integer size, HttpServletRequest request) {
+		try {
+			Integer uid = userInfoService.getUserIdFormRedis(request);
+			if (null == uid) {
+				return ResultUtil.tokenErr();
+			}
+			List<CouponsListVo> list = new ArrayList<>();
+			switch (orderType) {
+				case 1:
+					list = orderPrivateCarService.queryCouponList(orderId, uid, pageNum, size);
+					break;
+				case 2:
+					list = orderTaxiService.queryCouponList(orderId, uid, pageNum, size);
+					break;
+				case 3:
+					list = orderCrossCityService.queryCouponList(orderId, uid, pageNum, size);
+					break;
+				case 4:
+					list = orderLogisticsService.queryCouponList(orderId, uid, pageNum, size);
+					break;
+				case 5:
+					list = orderLogisticsService.queryCouponList(orderId, uid, pageNum, size);
+					break;
+			}
+			return ResultUtil.success(list);
+		} catch (Exception e) {
+			e.printStackTrace();
+			return ResultUtil.runErr();
+		}
+	}
+	
+	
+	/**
+	 * 订单完成支付订单操作
+	 *
+	 * @param payType
+	 * @param orderId
+	 * @param request
+	 * @return
+	 */
+	@ResponseBody
+	@PostMapping("/api/taxi/payTaxiOrder")
+	@ApiOperation(value = "订单完成支付订单操作", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城", "用户端-小件物流"}, notes = "")
+	@ApiImplicitParams({
+			@ApiImplicitParam(value = "支付方式(1=微信,2=支付宝,3=余额)", name = "payType", required = true, dataType = "int"),
+			@ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
+			@ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城,4=小件物流)", name = "orderType", required = true, dataType = "int"),
+			@ApiImplicitParam(value = "优惠券id", name = "couponId", required = false, dataType = "int"),
+			@ApiImplicitParam(value = "支付端(1=用户APP端,2=司机APP端,3=用户小程序端)", name = "type", required = true, dataType = "int"),
+			@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+	})
+	public ResultUtil payTaxiOrder(Integer payType, Integer orderId, Integer orderType, Integer couponId, Integer type, HttpServletRequest request) {
+		try {
+			Integer uid = userInfoService.getUserIdFormRedis(request);
+			if (null == uid) {
+				return ResultUtil.tokenErr();
+			}
+			switch (orderType) {
+				case 1:
+					return orderPrivateCarService.payPrivateCarOrder(payType, orderId, couponId, type);
+				case 2:
+					return orderTaxiService.payTaxiOrder(payType, orderId, couponId, type);
+				case 3:
+					return orderCrossCityService.payCrossCityOrder(payType, orderId, couponId, type);
+				case 4:
+					return orderLogisticsService.payLogisticsOrder(payType, orderId, type);
+				case 5:
+					return orderLogisticsService.payLogisticsOrder(payType, orderId, type);
+			}
+			return ResultUtil.success();
+		} catch (Exception e) {
+			e.printStackTrace();
+			return ResultUtil.runErr();
+		}
+	}
+	
+	
+	@ResponseBody
+	@PostMapping("/api/taxi/payTaxiOrder1")
+	@ApiOperation(value = "1.0-订单完成支付订单操作", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城", "用户端-小件物流"}, notes = "")
+	@ApiImplicitParams({
+			@ApiImplicitParam(value = "支付方式(1=微信,2=支付宝,3=余额)", name = "payType", required = true, dataType = "int"),
+			@ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
+			@ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城,4=小件物流)", name = "orderType", required = true, dataType = "int"),
+			@ApiImplicitParam(value = "优惠数据id", name = "objectId", required = false, dataType = "int"),
+			@ApiImplicitParam(value = "数据类型(1=优惠券,2=打车卡)", name = "objectType", required = false, dataType = "int"),
+			@ApiImplicitParam(value = "支付端(1=用户APP端,2=司机APP端,3=用户小程序端)", name = "type", required = true, dataType = "int"),
+			@ApiImplicitParam(value = "小程序支付成功跳转路径", name = "path", required = true, dataType = "String"),
+			@ApiImplicitParam(value = "设备当前IP地址", name = "ip", required = true, dataType = "String"),
+			@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+	})
+	public ResultUtil payTaxiOrder1(Integer payType, Integer orderId, Integer orderType, Integer objectId, Integer objectType, Integer type, String path, String ip, HttpServletRequest request) {
+		System.out.println(objectType);
+		System.out.println(objectId);
+		try {
+			Integer uid = userInfoService.getUserIdFormRedis(request);
+			if (null == uid) {
+				return ResultUtil.tokenErr();
+			}
+			switch (orderType) {
+				case 1:
+					return orderPrivateCarService.payPrivateCarOrder1(payType, orderId, objectId, objectType, type, path, ip);
+				case 2:
+					return orderTaxiService.payTaxiOrder1(payType, orderId, objectId, objectType, type, path, ip);
+				case 3:
+					return orderCrossCityService.payCrossCityOrder1(payType, orderId, objectId, objectType, type);
+				case 4:
+					return orderLogisticsService.payLogisticsOrder1(payType, orderId, objectId, objectType, type);
+				case 5:
+					return orderLogisticsService.payLogisticsOrder1(payType, orderId, objectId, objectType, type);
+			}
+			return ResultUtil.success();
+		} catch (Exception e) {
+			e.printStackTrace();
+			return ResultUtil.runErr();
+		}
+	}
+	
+	
+	/**
+	 * 订单完成后添加评价操作
+	 *
+	 * @param orderId
+	 * @param fraction
+	 * @param content
+	 * @return
+	 */
+	@ResponseBody
+	@PostMapping("/api/taxi/orderEvaluate")
+	@ApiOperation(value = "订单完成后添加评价操作", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城"}, notes = "")
+	@ApiImplicitParams({
+			@ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
+			@ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城)", name = "orderType", required = true, dataType = "int"),
+			@ApiImplicitParam(value = "评分", name = "fraction", required = true, dataType = "int"),
+			@ApiImplicitParam(value = "评价内容", name = "content", required = false, dataType = "String"),
+			@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+	})
+	public ResultUtil orderEvaluate(Integer orderId, Integer orderType, Integer fraction, String content) {
+		try {
+			ResultUtil resultUtil = orderEvaluateService.saveData(orderId, orderType, fraction, content);
+			if (resultUtil.getCode() == 200) {
+				switch (orderType) {
+					case 1:
+						OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId);
+						orderPrivateCar.setState(9);
+						orderPrivateCarService.updateById(orderPrivateCar);
+						Driver driver1 = null;
+						Company company = null;
+						//中台修改订单状态
+						ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
+						request.setOrderId(orderPrivateCar.getTravelId());
+						request.setStatus(orderPrivateCar.getState());
+						if (null != orderPrivateCar.getDriverId()) {
+							driver1 = driverService.selectById(orderPrivateCar.getDriverId());
+							company = companyService.selectById(driver1.getCompanyId());
+							request.setDriverId(driver1.getEmpId().toString());
+							request.setSupplierShopId(company.getEnterCode());
+						}
+						if (2 == orderPrivateCar.getPromotion()) {
+							Driver driver2 = driverService.selectById(orderPrivateCar.getPromotionDriverId());
+							request.setPromoterId(driver2.getEmpId().toString());
+						}
+						OrderUtil.modifyTravelItinerary(request);
+						new Thread(new Runnable() {
+							@Override
+							public void run() {
+								if (pushMinistryOfTransport) {//上传数据
+									pushMinistryOfTransportUtil.ratedPassenger(Integer.valueOf(resultUtil.getData().toString()));
+									pushMinistryOfTransportUtil.ratedDriver(orderPrivateCar.getDriverId());
+								}
+							}
+						}).start();
+						break;
+					case 2:
+						OrderTaxi orderTaxi = orderTaxiService.selectById(orderId);
+						orderTaxi.setState(9);
+						orderTaxiService.updateById(orderTaxi);
+						Driver driver = null;
+						Company company1 = null;
+						//中台修改订单状态
+						ModifyTravelItineraryRequest request2 = new ModifyTravelItineraryRequest();
+						request2.setOrderId(orderTaxi.getTravelId());
+						request2.setStatus(orderTaxi.getState());
+						if (null != orderTaxi.getDriverId()) {
+							driver = driverService.selectById(orderTaxi.getDriverId());
+							company1 = companyService.selectById(driver.getCompanyId());
+							request2.setDriverId(driver.getEmpId().toString());
+							request2.setSupplierShopId(company1.getEnterCode());
+						}
+						if (2 == orderTaxi.getPromotion()) {
+							Driver driver2 = driverService.selectById(orderTaxi.getPromotionDriverId());
+							request2.setPromoterId(driver2.getEmpId().toString());
+						}
+						OrderUtil.modifyTravelItinerary(request2);
+						break;
+					case 3:
+						OrderCrossCity orderCrossCity = orderCrossCityService.selectById(orderId);
+						orderCrossCity.setState(9);
+						orderCrossCityService.updateById(orderCrossCity);
+						break;
+				}
+			}
+			return resultUtil.getCode() == 200 ? ResultUtil.success() : resultUtil;
+		} catch (Exception e) {
+			e.printStackTrace();
+			return ResultUtil.runErr();
+		}
+	}
+	
+	
+	/**
+	 * 评论成功后获取红包金额
+	 *
+	 * @param orderId
+	 * @return
+	 */
+	@ResponseBody
+	@PostMapping("/api/taxi/queryRedMoney")
+	@ApiOperation(value = "评论成功后获取红包金额", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城"}, notes = "")
+	@ApiImplicitParams({
+			@ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
+			@ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城)", name = "orderType", required = true, dataType = "int"),
+			@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+	})
+	public ResultUtil<BaseWarpper> queryRedMoney(Integer orderId, Integer orderType) {
+		try {
+			switch (orderType) {
+				case 1:
+					return orderPrivateCarService.queryRedMoney(orderId);
+				case 2:
+					return orderTaxiService.queryRedMoney(orderId);
+				case 3:
+					return orderCrossCityService.queryRedMoney(orderId);
+			}
+			return ResultUtil.success();
+		} catch (Exception e) {
+			e.printStackTrace();
+			return ResultUtil.runErr();
+		}
+	}
+	
+	
+	/**
+	 * 分享成功后添加红包操作
+	 *
+	 * @param orderId
+	 * @return
+	 */
+	@ResponseBody
+	@PostMapping("/api/taxi/shareRedEnvelope")
+	@ApiOperation(value = "分享成功后添加红包操作", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城"}, notes = "")
+	@ApiImplicitParams({
+			@ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
+			@ApiImplicitParam(value = "订单类型", name = "orderType", required = true, dataType = "int"),
+			@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+	})
+	public ResultUtil shareRedEnvelope(Integer orderId, Integer orderType) {
+		try {
+			switch (orderType) {
+				case 1:
+					return orderPrivateCarService.shareRedEnvelope(orderId);
+				case 2:
+					return orderTaxiService.shareRedEnvelope(orderId);
+				case 3:
+					return orderCrossCityService.shareRedEnvelope(orderId);
+			}
+			return ResultUtil.success();
+		} catch (Exception e) {
+			e.printStackTrace();
+			return ResultUtil.runErr();
+		}
+	}
+	
+	
+	/**
+	 * 取消订单微信回调
+	 *
+	 * @param request
+	 */
+	@ResponseBody
+	@PostMapping("/base/wxCancelOrderTaxi")
+	public void wxCancelOrderTaxi(HttpServletRequest request, HttpServletResponse response) {
+		try {
+			Map<String, String> map = payMoneyUtil.weixinpayCallback(request);
+			if (null != map) {
+				String order_id = map.get("transaction_id");
+				String out_trade_no = map.get("out_trade_no");
+				String result = map.get("result");
+				if (ToolUtil.isNotEmpty(out_trade_no) && ToolUtil.isNotEmpty(order_id)) {
+					PrintWriter out = response.getWriter();
+					out.write(result);
+					out.flush();
+					out.close();
+					
+					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;
+					}
+				}
 //                cloudPay(map.get("total_fee"),map.get("transaction_id"),1);
-
-            }
-        }catch (Exception e){
-            e.printStackTrace();
-        }
-    }
-
-
-    /**
-     * 取消订单支付宝回调
-     * @param request
-     */
-    @ResponseBody
-    @PostMapping("/base/aliCancelOrderTaxi")
-    public void aliCancelOrderTaxi(HttpServletRequest request, HttpServletResponse response){
-        try {
-            Map<String, String> map = payMoneyUtil.alipayCallback(request);
-            if(null != map){
-                String out_trade_no = map.get("out_trade_no");
-                String order_id = map.get("trade_no");
-                if(ToolUtil.isNotEmpty(out_trade_no) && ToolUtil.isNotEmpty(order_id)){
-                    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, 2);
-                            break;
-                        case 2:
-                            orderTaxiService.payCancelOrderTaxi(id, order_id, 2);
-                            break;
-                        case 3:
-                            orderCrossCityService.payCancelOrderCrossCity(id, order_id, 2);
-                            break;
-                    }
-                    PrintWriter out = response.getWriter();
-                    out.print("success");
-                    out.flush();
-                    out.close();
-                }
+			
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+	
+	
+	/**
+	 * 取消订单支付宝回调
+	 *
+	 * @param request
+	 */
+	@ResponseBody
+	@PostMapping("/base/aliCancelOrderTaxi")
+	public void aliCancelOrderTaxi(HttpServletRequest request, HttpServletResponse response) {
+		try {
+			Map<String, String> map = payMoneyUtil.alipayCallback(request);
+			if (null != map) {
+				String out_trade_no = map.get("out_trade_no");
+				String order_id = map.get("trade_no");
+				if (ToolUtil.isNotEmpty(out_trade_no) && ToolUtil.isNotEmpty(order_id)) {
+					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, 2);
+							break;
+						case 2:
+							orderTaxiService.payCancelOrderTaxi(id, order_id, 2);
+							break;
+						case 3:
+							orderCrossCityService.payCancelOrderCrossCity(id, order_id, 2);
+							break;
+					}
+					PrintWriter out = response.getWriter();
+					out.print("success");
+					out.flush();
+					out.close();
+				}
 //                cloudPay(map.get("total_amount"),map.get("trade_no"),0);
-            }
-        }catch (Exception e){
-            e.printStackTrace();
-        }
-    }
-
-
-    /**
-     * 完成订单微信支付回调
-     * @param request
-     */
-    @ResponseBody
-    @PostMapping("/base/wxPayOrderTaxi")
-    public void wxPayOrderTaxi(HttpServletRequest request, HttpServletResponse response){
-        try {
-            System.out.println("完成订单微信支付回调");
-            Map<String, String> map = payMoneyUtil.weixinpayCallback(request);
-            System.out.println("wx支付信息:"+map);
-            if(null != map){
-                String order_id = map.get("transaction_id");
-                String out_trade_no = map.get("out_trade_no");
-                String result = map.get("result");
-                String total_fee = map.get("total_fee");
-                String transaction_id = map.get("transaction_id");
-                if(ToolUtil.isNotEmpty(out_trade_no) && ToolUtil.isNotEmpty(order_id)){
-                    PrintWriter out = response.getWriter();
-                    out.write(result);
-                    out.flush();
-                    out.close();
-
-                    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;
-                    }
-
-                }
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+	
+	
+	/**
+	 * 完成订单微信支付回调
+	 *
+	 * @param request
+	 */
+	@ResponseBody
+	@PostMapping("/base/wxPayOrderTaxi")
+	public void wxPayOrderTaxi(HttpServletRequest request, HttpServletResponse response) {
+		try {
+			System.out.println("完成订单微信支付回调");
+			Map<String, String> map = payMoneyUtil.weixinpayCallback(request);
+			System.out.println("wx支付信息:" + map);
+			if (null != map) {
+				String order_id = map.get("transaction_id");
+				String out_trade_no = map.get("out_trade_no");
+				String result = map.get("result");
+				String total_fee = map.get("total_fee");
+				String transaction_id = map.get("transaction_id");
+				if (ToolUtil.isNotEmpty(out_trade_no) && ToolUtil.isNotEmpty(order_id)) {
+					PrintWriter out = response.getWriter();
+					out.write(result);
+					out.flush();
+					out.close();
+					
+					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;
+					}
+					
+				}
 
 //                cloudPay(map.get("total_fee"),map.get("transaction_id"),1);
-            }
-
-
-        }catch (Exception e){
-            e.printStackTrace();
-        }
-    }
-
-
-    /**
-     * 完成订单支付宝支付回调
-     * @param request
-     */
-    @ResponseBody
-    @PostMapping("/base/aliPayOrderTaxi")
-    public void aliPayOrderTaxi(HttpServletRequest request, HttpServletResponse response){
-        try {
-            Map<String, String> map = payMoneyUtil.alipayCallback(request);
-            if(null != map){
-                String out_trade_no = map.get("out_trade_no");
-                String order_id = map.get("trade_no");
-                if(ToolUtil.isNotEmpty(out_trade_no) && ToolUtil.isNotEmpty(order_id)){
-                    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, 2);
-                            break;
-                        case 2:
-                            orderTaxiService.payOrderTaxiCallback(id, order_id, 2,0);
-                            break;
-                        case 3:
-                            orderCrossCityService.payOrderCrossCityCallback(id, order_id, 2,null);
-                            break;
-                        case 4:
-                            orderLogisticsService.payOrderLogisticsCallback(id, order_id, 2);
-                            break;
-                        case 5:
-                            orderLogisticsService.payOrderLogisticsCallback(id, order_id, 2);
-                            break;
-                    }
-                    PrintWriter out = response.getWriter();
-                    out.print("success");
-                    out.flush();
-                    out.close();
-                }
+			}
+			
+			
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+	
+	
+	/**
+	 * 完成订单支付宝支付回调
+	 *
+	 * @param request
+	 */
+	@ResponseBody
+	@PostMapping("/base/aliPayOrderTaxi")
+	public void aliPayOrderTaxi(HttpServletRequest request, HttpServletResponse response) {
+		try {
+			Map<String, String> map = payMoneyUtil.alipayCallback(request);
+			if (null != map) {
+				String out_trade_no = map.get("out_trade_no");
+				String order_id = map.get("trade_no");
+				if (ToolUtil.isNotEmpty(out_trade_no) && ToolUtil.isNotEmpty(order_id)) {
+					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, 2);
+							break;
+						case 2:
+							orderTaxiService.payOrderTaxiCallback(id, order_id, 2, 0);
+							break;
+						case 3:
+							orderCrossCityService.payOrderCrossCityCallback(id, order_id, 2, null);
+							break;
+						case 4:
+							orderLogisticsService.payOrderLogisticsCallback(id, order_id, 2);
+							break;
+						case 5:
+							orderLogisticsService.payOrderLogisticsCallback(id, order_id, 2);
+							break;
+					}
+					PrintWriter out = response.getWriter();
+					out.print("success");
+					out.flush();
+					out.close();
+				}
 //                cloudPay(map.get("total_amount"),map.get("trade_no"),0);
-            }
-        }catch (Exception e){
-            e.printStackTrace();
-        }
-    }
-
-
-
-
-    /**
-     * 小件物流差价微信支付回调
-     * @param request
-     */
-    @ResponseBody
-    @PostMapping("/base/wxPayOrderLogisticsSpread")
-    public void wxPayOrderLogisticsSpread(HttpServletRequest request, HttpServletResponse response){
-        try {
-            Map<String, String> map = payMoneyUtil.weixinpayCallback(request);
-            if(null != map){
-                String order_id = map.get("transaction_id");
-                String out_trade_no = map.get("out_trade_no");
-                String result = map.get("result");
-                if(ToolUtil.isNotEmpty(out_trade_no) && ToolUtil.isNotEmpty(order_id)){
-                    PrintWriter out = response.getWriter();
-                    out.write(result);
-                    out.flush();
-                    out.close();
-
-                    String[] split = out_trade_no.split("_");
-                    Integer id = Integer.valueOf(split[0]);
-                    Integer type = Integer.valueOf(split[1]);
-                    orderLogisticsService.payOrderLogisticsSpreadCallback(id, order_id, 1);
-                }
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+	
+	
+	/**
+	 * 小件物流差价微信支付回调
+	 *
+	 * @param request
+	 */
+	@ResponseBody
+	@PostMapping("/base/wxPayOrderLogisticsSpread")
+	public void wxPayOrderLogisticsSpread(HttpServletRequest request, HttpServletResponse response) {
+		try {
+			Map<String, String> map = payMoneyUtil.weixinpayCallback(request);
+			if (null != map) {
+				String order_id = map.get("transaction_id");
+				String out_trade_no = map.get("out_trade_no");
+				String result = map.get("result");
+				if (ToolUtil.isNotEmpty(out_trade_no) && ToolUtil.isNotEmpty(order_id)) {
+					PrintWriter out = response.getWriter();
+					out.write(result);
+					out.flush();
+					out.close();
+					
+					String[] split = out_trade_no.split("_");
+					Integer id = Integer.valueOf(split[0]);
+					Integer type = Integer.valueOf(split[1]);
+					orderLogisticsService.payOrderLogisticsSpreadCallback(id, order_id, 1);
+				}
 
 //                cloudPay(map.get("total_fee"),map.get("transaction_id"),1);
-            }
-        }catch (Exception e){
-            e.printStackTrace();
-        }
-    }
-
-
-    /**
-     * 小件物流差价支付宝支付回调
-     * @param request
-     */
-    @ResponseBody
-    @PostMapping("/base/aliPayOrderLogisticsSpread")
-    public void aliPayOrderLogisticsSpread(HttpServletRequest request, HttpServletResponse response){
-        try {
-            Map<String, String> map = payMoneyUtil.alipayCallback(request);
-            if(null != map){
-                String out_trade_no = map.get("out_trade_no");
-                String order_id = map.get("trade_no");
-                if(ToolUtil.isNotEmpty(out_trade_no) && ToolUtil.isNotEmpty(order_id)){
-                    String[] split = out_trade_no.split("_");
-                    Integer id = Integer.valueOf(split[0]);
-                    Integer type = Integer.valueOf(split[1]);
-                    orderLogisticsService.payOrderLogisticsSpreadCallback(id, order_id, 2);
-
-                    PrintWriter out = response.getWriter();
-                    out.print("success");
-                    out.flush();
-                    out.close();
-                }
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+	
+	
+	/**
+	 * 小件物流差价支付宝支付回调
+	 *
+	 * @param request
+	 */
+	@ResponseBody
+	@PostMapping("/base/aliPayOrderLogisticsSpread")
+	public void aliPayOrderLogisticsSpread(HttpServletRequest request, HttpServletResponse response) {
+		try {
+			Map<String, String> map = payMoneyUtil.alipayCallback(request);
+			if (null != map) {
+				String out_trade_no = map.get("out_trade_no");
+				String order_id = map.get("trade_no");
+				if (ToolUtil.isNotEmpty(out_trade_no) && ToolUtil.isNotEmpty(order_id)) {
+					String[] split = out_trade_no.split("_");
+					Integer id = Integer.valueOf(split[0]);
+					Integer type = Integer.valueOf(split[1]);
+					orderLogisticsService.payOrderLogisticsSpreadCallback(id, order_id, 2);
+					
+					PrintWriter out = response.getWriter();
+					out.print("success");
+					out.flush();
+					out.close();
+				}
 //                cloudPay(map.get("total_amount"),map.get("trade_no"),0);
-            }
-        }catch (Exception e){
-            e.printStackTrace();
-        }
-    }
-
-    /**
-     * 取消订单微信退款成功回调
-     * @param request
-     * @param response
-     */
-    @ResponseBody
-    @PostMapping("/base/cancleOrderWXPay")
-    public void cancleOrderWXPay(HttpServletRequest request, HttpServletResponse response){
-        try {
-            System.out.println("小件物流取消");
-            Map<String, String> map = payMoneyUtil.wxRefundCallback(request);
-            if(null != map){
-                String order_id = map.get("refund_id");
-                String out_refund_no = map.get("out_refund_no");
-                String result = map.get("result");
-                if(ToolUtil.isNotEmpty(out_refund_no) && ToolUtil.isNotEmpty(order_id)){
-                    PrintWriter out = response.getWriter();
-                    out.write(result);
-                    out.flush();
-                    out.close();
-
-                    String[] split = out_refund_no.split("_");
-                    Integer id = Integer.valueOf(split[0]);
-                    Integer type = Integer.valueOf(split[1]);
-                    System.out.println("取消回调:"+type);
-                    switch (type){
-                        case 1:
-                            break;
-                        case 2:
-                            break;
-                        case 3:
-                            OrderCrossCity orderCrossCity = orderCrossCityService.selectById(id);
-                            PaymentRecord query = paymentRecordService.query(1, orderCrossCity.getUserId(), 1, id, 3, orderCrossCity.getPayType(), 2);
-                            //添加交易明细
-                            transactionDetailsService.saveData(orderCrossCity.getUserId(), "跨城出行取消退款", query.getAmount(), 1, 1, 1, 3, id);
-                            UserCouponRecord userCouponRecord = userCouponRecordService.selectById(orderCrossCity.getCouponId());
-                            userCouponRecord.setState(1);
-                            userCouponRecordService.updateById(userCouponRecord);
-                            orderCrossCity.setCouponMoney(0.00);
-                            orderCrossCityService.updateById(orderCrossCity);
-                            break;
-                        case 4:
-                            OrderLogistics orderLogistics1 = orderLogisticsService.selectById(id);
-                            PaymentRecord query1 = paymentRecordService.query(1, orderLogistics1.getUserId(), 1, id, 4, orderLogistics1.getPayType(), 2);
-                            //添加交易明细
-                            transactionDetailsService.saveData(orderLogistics1.getUserId(), "同城小件物流取消退款", query1.getAmount(), 1, 1, 1, 4, id);
-                            UserCouponRecord userCouponRecord1 = userCouponRecordService.selectById(orderLogistics1.getCouponId());
-                            userCouponRecord1.setState(1);
-                            userCouponRecordService.updateById(userCouponRecord1);
-                            orderLogistics1.setCouponMoney(0.00);
-                            orderLogisticsService.updateById(orderLogistics1);
-                            break;
-                        case 5:
-                            OrderLogistics orderLogistics2 = orderLogisticsService.selectById(id);
-                            PaymentRecord query2 = paymentRecordService.query(1, orderLogistics2.getUserId(), 1, id, 5, orderLogistics2.getPayType(), 2);
-                            //添加交易明细
-                            transactionDetailsService.saveData(orderLogistics2.getUserId(), "跨城小件物流取消退款", query2.getAmount(), 1, 1, 1, 5, id);
-                            UserCouponRecord userCouponRecord2 = userCouponRecordService.selectById(orderLogistics2.getCouponId());
-                            userCouponRecord2.setState(1);
-                            userCouponRecordService.updateById(userCouponRecord2);
-                            orderLogistics2.setCouponMoney(0.00);
-                            orderLogisticsService.updateById(orderLogistics2);
-                            break;
-                    }
-                }
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+	
+	/**
+	 * 取消订单微信退款成功回调
+	 *
+	 * @param request
+	 * @param response
+	 */
+	@ResponseBody
+	@PostMapping("/base/cancleOrderWXPay")
+	public void cancleOrderWXPay(HttpServletRequest request, HttpServletResponse response) {
+		try {
+			System.out.println("小件物流取消");
+			Map<String, String> map = payMoneyUtil.wxRefundCallback(request);
+			if (null != map) {
+				String order_id = map.get("refund_id");
+				String out_refund_no = map.get("out_refund_no");
+				String result = map.get("result");
+				if (ToolUtil.isNotEmpty(out_refund_no) && ToolUtil.isNotEmpty(order_id)) {
+					PrintWriter out = response.getWriter();
+					out.write(result);
+					out.flush();
+					out.close();
+					
+					String[] split = out_refund_no.split("_");
+					Integer id = Integer.valueOf(split[0]);
+					Integer type = Integer.valueOf(split[1]);
+					System.out.println("取消回调:" + type);
+					switch (type) {
+						case 1:
+							break;
+						case 2:
+							break;
+						case 3:
+							OrderCrossCity orderCrossCity = orderCrossCityService.selectById(id);
+							PaymentRecord query = paymentRecordService.query(1, orderCrossCity.getUserId(), 1, id, 3, orderCrossCity.getPayType(), 2);
+							//添加交易明细
+							transactionDetailsService.saveData(orderCrossCity.getUserId(), "跨城出行取消退款", query.getAmount(), 1, 1, 1, 3, id);
+							UserCouponRecord userCouponRecord = userCouponRecordService.selectById(orderCrossCity.getCouponId());
+							userCouponRecord.setState(1);
+							userCouponRecordService.updateById(userCouponRecord);
+							orderCrossCity.setCouponMoney(0.00);
+							orderCrossCityService.updateById(orderCrossCity);
+							break;
+						case 4:
+							OrderLogistics orderLogistics1 = orderLogisticsService.selectById(id);
+							PaymentRecord query1 = paymentRecordService.query(1, orderLogistics1.getUserId(), 1, id, 4, orderLogistics1.getPayType(), 2);
+							//添加交易明细
+							transactionDetailsService.saveData(orderLogistics1.getUserId(), "同城小件物流取消退款", query1.getAmount(), 1, 1, 1, 4, id);
+							UserCouponRecord userCouponRecord1 = userCouponRecordService.selectById(orderLogistics1.getCouponId());
+							userCouponRecord1.setState(1);
+							userCouponRecordService.updateById(userCouponRecord1);
+							orderLogistics1.setCouponMoney(0.00);
+							orderLogisticsService.updateById(orderLogistics1);
+							break;
+						case 5:
+							OrderLogistics orderLogistics2 = orderLogisticsService.selectById(id);
+							PaymentRecord query2 = paymentRecordService.query(1, orderLogistics2.getUserId(), 1, id, 5, orderLogistics2.getPayType(), 2);
+							//添加交易明细
+							transactionDetailsService.saveData(orderLogistics2.getUserId(), "跨城小件物流取消退款", query2.getAmount(), 1, 1, 1, 5, id);
+							UserCouponRecord userCouponRecord2 = userCouponRecordService.selectById(orderLogistics2.getCouponId());
+							userCouponRecord2.setState(1);
+							userCouponRecordService.updateById(userCouponRecord2);
+							orderLogistics2.setCouponMoney(0.00);
+							orderLogisticsService.updateById(orderLogistics2);
+							break;
+					}
+				}
 //                cloudPay(map.get("total_fee"),map.get("transaction_id"),1);
-            }
-        }catch (Exception e){
-            e.printStackTrace();
-        }
-    }
-
-
-    /**
-     * 购买出行卡微信支付回调
-     * @param request
-     * @param response
-     */
-    @ResponseBody
-    @PostMapping("/base/wxPayTaxiCardPaymentSpread")
-    public void wxPayTaxiCardPaymentSpread(HttpServletRequest request, HttpServletResponse response){
-        try {
-            System.out.println("购买出行卡微信支付回调");
-            Map<String, String> map = payMoneyUtil.weixinpayCallback(request);
-            System.out.println("购买出行卡微信支付回调"+map);
-            if(null != map){
-                String order_id = map.get("transaction_id");
-                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)){
-                    PrintWriter out = response.getWriter();
-                    out.write(result);
-                    out.flush();
-                    out.close();
-                    taxiCardService.payTaxiCardPaymentSpread(Integer.valueOf(out_trade_no), order_id);
-                }
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+	
+	
+	/**
+	 * 购买出行卡微信支付回调
+	 *
+	 * @param request
+	 * @param response
+	 */
+	@ResponseBody
+	@PostMapping("/base/wxPayTaxiCardPaymentSpread")
+	public void wxPayTaxiCardPaymentSpread(HttpServletRequest request, HttpServletResponse response) {
+		try {
+			System.out.println("购买出行卡微信支付回调");
+			Map<String, String> map = payMoneyUtil.weixinpayCallback(request);
+			System.out.println("购买出行卡微信支付回调" + map);
+			if (null != map) {
+				String order_id = map.get("transaction_id");
+				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)) {
+					PrintWriter out = response.getWriter();
+					out.write(result);
+					out.flush();
+					out.close();
+					taxiCardService.payTaxiCardPaymentSpread(Integer.valueOf(out_trade_no), order_id);
+				}
 //                cloudPay(map.get("total_fee"),map.get("transaction_id"),1);
-            }
-        }catch (Exception e){
-            e.printStackTrace();
-        }
-    }
-
-
-    /**
-     * 购买出行卡支付宝支付回调
-     * @param request
-     * @param response
-     */
-    @ResponseBody
-    @PostMapping("/base/aliPayTaxiCardPaymentSpread")
-    public void aliPayTaxiCardPaymentSpread(HttpServletRequest request, HttpServletResponse response){
-        try {
-            Map<String, String> map = payMoneyUtil.alipayCallback(request);
-            if(null != map){
-                String out_trade_no = map.get("out_trade_no");
-                String order_id = map.get("trade_no");
-                if(ToolUtil.isNotEmpty(out_trade_no) && ToolUtil.isNotEmpty(order_id)){
-                    taxiCardService.payTaxiCardPaymentSpread(Integer.valueOf(out_trade_no), order_id);
-
-                    PrintWriter out = response.getWriter();
-                    out.print("success");
-                    out.flush();
-                    out.close();
-                }
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+	
+	
+	/**
+	 * 购买出行卡支付宝支付回调
+	 *
+	 * @param request
+	 * @param response
+	 */
+	@ResponseBody
+	@PostMapping("/base/aliPayTaxiCardPaymentSpread")
+	public void aliPayTaxiCardPaymentSpread(HttpServletRequest request, HttpServletResponse response) {
+		try {
+			Map<String, String> map = payMoneyUtil.alipayCallback(request);
+			if (null != map) {
+				String out_trade_no = map.get("out_trade_no");
+				String order_id = map.get("trade_no");
+				if (ToolUtil.isNotEmpty(out_trade_no) && ToolUtil.isNotEmpty(order_id)) {
+					taxiCardService.payTaxiCardPaymentSpread(Integer.valueOf(out_trade_no), order_id);
+					
+					PrintWriter out = response.getWriter();
+					out.print("success");
+					out.flush();
+					out.close();
+				}
 //                cloudPay(map.get("total_amount"),map.get("trade_no"),0);
-            }
-        }catch (Exception e){
-            e.printStackTrace();
-        }
-    }
-
-
-    @ResponseBody
-    @PostMapping("/api/taxi/payThankYouFee")
-    @ApiOperation(value = "1.0-支付感谢费", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城", "用户端-小件物流", "用户端-包车", "用户端-助老模式"}, notes = "")
-    @ApiImplicitParams({
-            @ApiImplicitParam(value = "支付方式(1=微信,2=支付宝,3=余额)", name = "payType", required = true, dataType = "int"),
-            @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
-            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城,4=同城小件物流,5=跨城小件物流,6=包车,7=助老模式)", name = "orderType", required = true, dataType = "int"),
-            @ApiImplicitParam(value = "支付金额", name = "money", required = true, dataType = "double"),
-            @ApiImplicitParam(value = "支付端(1=用户APP端,2=司机APP端,3=用户小程序端)", name = "type", required = true, dataType = "int"),
-            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
-    })
-    public ResultUtil payThankYouFee(Integer orderId, Integer orderType, Double money, Integer payType, Integer type, HttpServletRequest request){
-        try {
-            Integer uid = userInfoService.getUserIdFormRedis(request);
-            if(null == uid){
-                return ResultUtil.tokenErr();
-            }
-            switch (orderType){
-                case 1:
-                    return orderPrivateCarService.payThankYouFee(uid, orderId, money, payType, type);
-                case 2:
-                    return orderTaxiService.payThankYouFee(uid, orderId, money, payType, type);
-                case 3:
-                    return orderCrossCityService.payThankYouFee(uid, orderId, money, payType, type);
-                case 4:
-                    return orderLogisticsService.payThankYouFee(uid, orderId, money, payType, type);
-                case 5:
-                    return orderLogisticsService.payThankYouFee(uid, orderId, money, payType, type);
-                case 6:
-                    return orderCharteredCarService.payThankYouFee(uid, orderId, money, payType, type);
-                case 7:
-                    return orderCallService.payThankYouFee(uid, orderId, money, payType, type);
-            }
-        }catch (Exception e){
-            e.printStackTrace();
-            return ResultUtil.runErr();
-        }
-        return ResultUtil.success();
-    }
-
-
-    /**
-     * 感谢费支付回调
-     * @param request
-     * @param response
-     */
-    @ResponseBody
-    @PostMapping("/base/wxPayThankYouFee")
-    public void wxPayThankYouFee(HttpServletRequest request, HttpServletResponse response){
-        try {
-            Map<String, String> map = payMoneyUtil.weixinpayCallback(request);
-            if(null != map){
-                String order_id = map.get("transaction_id");
-                String out_trade_no = map.get("out_trade_no");
-                String result = map.get("result");
-                if(ToolUtil.isNotEmpty(out_trade_no) && ToolUtil.isNotEmpty(order_id)){
-                    PrintWriter out = response.getWriter();
-                    out.write(result);
-                    out.flush();
-                    out.close();
-
-                    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);
-                    }
-                }
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+	
+	
+	@ResponseBody
+	@PostMapping("/api/taxi/payThankYouFee")
+	@ApiOperation(value = "1.0-支付感谢费", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城", "用户端-小件物流", "用户端-包车", "用户端-助老模式"}, notes = "")
+	@ApiImplicitParams({
+			@ApiImplicitParam(value = "支付方式(1=微信,2=支付宝,3=余额)", name = "payType", required = true, dataType = "int"),
+			@ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
+			@ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城,4=同城小件物流,5=跨城小件物流,6=包车,7=助老模式)", name = "orderType", required = true, dataType = "int"),
+			@ApiImplicitParam(value = "支付金额", name = "money", required = true, dataType = "double"),
+			@ApiImplicitParam(value = "支付端(1=用户APP端,2=司机APP端,3=用户小程序端)", name = "type", required = true, dataType = "int"),
+			@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+	})
+	public ResultUtil payThankYouFee(Integer orderId, Integer orderType, Double money, Integer payType, Integer type, HttpServletRequest request) {
+		try {
+			Integer uid = userInfoService.getUserIdFormRedis(request);
+			if (null == uid) {
+				return ResultUtil.tokenErr();
+			}
+			switch (orderType) {
+				case 1:
+					return orderPrivateCarService.payThankYouFee(uid, orderId, money, payType, type);
+				case 2:
+					return orderTaxiService.payThankYouFee(uid, orderId, money, payType, type);
+				case 3:
+					return orderCrossCityService.payThankYouFee(uid, orderId, money, payType, type);
+				case 4:
+					return orderLogisticsService.payThankYouFee(uid, orderId, money, payType, type);
+				case 5:
+					return orderLogisticsService.payThankYouFee(uid, orderId, money, payType, type);
+				case 6:
+					return orderCharteredCarService.payThankYouFee(uid, orderId, money, payType, type);
+				case 7:
+					return orderCallService.payThankYouFee(uid, orderId, money, payType, type);
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+			return ResultUtil.runErr();
+		}
+		return ResultUtil.success();
+	}
+	
+	
+	/**
+	 * 感谢费支付回调
+	 *
+	 * @param request
+	 * @param response
+	 */
+	@ResponseBody
+	@PostMapping("/base/wxPayThankYouFee")
+	public void wxPayThankYouFee(HttpServletRequest request, HttpServletResponse response) {
+		try {
+			Map<String, String> map = payMoneyUtil.weixinpayCallback(request);
+			if (null != map) {
+				String order_id = map.get("transaction_id");
+				String out_trade_no = map.get("out_trade_no");
+				String result = map.get("result");
+				if (ToolUtil.isNotEmpty(out_trade_no) && ToolUtil.isNotEmpty(order_id)) {
+					PrintWriter out = response.getWriter();
+					out.write(result);
+					out.flush();
+					out.close();
+					
+					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);
+					}
+				}
 //                cloudPay(map.get("total_fee"),map.get("transaction_id"),1);
-            }
-        }catch (Exception e){
-            e.printStackTrace();
-        }
-    }
-
-
-    /**
-     * 感谢费支付宝支付回调
-     * @param request
-     * @param response
-     */
-    @ResponseBody
-    @PostMapping("/base/aliPayThankYouFee")
-    public void aliPayThankYouFee(HttpServletRequest request, HttpServletResponse response){
-        try {
-            Map<String, String> map = payMoneyUtil.alipayCallback(request);
-            if(null != map){
-                String out_trade_no = map.get("out_trade_no");
-                String order_id = map.get("trade_no");
-                if(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, 2);
-                        case 2:
-                            orderTaxiService.payThankYouFeeCallback(Integer.valueOf(s[0]), order_id, 2);
-                        case 3:
-                            orderCrossCityService.payThankYouFeeCallback(Integer.valueOf(s[0]), order_id, 2);
-                        case 4:
-                            orderLogisticsService.payThankYouFeeCallback(Integer.valueOf(s[0]), order_id, 2);
-                        case 5:
-                            orderLogisticsService.payThankYouFeeCallback(Integer.valueOf(s[0]), order_id, 2);
-                        case 6:
-                            orderCharteredCarService.payThankYouFeeCallback(Integer.valueOf(s[0]), order_id, 2);
-                        case 7:
-                            orderCallService.payThankYouFeeCallback(Integer.valueOf(s[0]), order_id, 2);
-                    }
-
-                    PrintWriter out = response.getWriter();
-                    out.print("success");
-                    out.flush();
-                    out.close();
-                }
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+	
+	
+	/**
+	 * 感谢费支付宝支付回调
+	 *
+	 * @param request
+	 * @param response
+	 */
+	@ResponseBody
+	@PostMapping("/base/aliPayThankYouFee")
+	public void aliPayThankYouFee(HttpServletRequest request, HttpServletResponse response) {
+		try {
+			Map<String, String> map = payMoneyUtil.alipayCallback(request);
+			if (null != map) {
+				String out_trade_no = map.get("out_trade_no");
+				String order_id = map.get("trade_no");
+				if (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, 2);
+						case 2:
+							orderTaxiService.payThankYouFeeCallback(Integer.valueOf(s[0]), order_id, 2);
+						case 3:
+							orderCrossCityService.payThankYouFeeCallback(Integer.valueOf(s[0]), order_id, 2);
+						case 4:
+							orderLogisticsService.payThankYouFeeCallback(Integer.valueOf(s[0]), order_id, 2);
+						case 5:
+							orderLogisticsService.payThankYouFeeCallback(Integer.valueOf(s[0]), order_id, 2);
+						case 6:
+							orderCharteredCarService.payThankYouFeeCallback(Integer.valueOf(s[0]), order_id, 2);
+						case 7:
+							orderCallService.payThankYouFeeCallback(Integer.valueOf(s[0]), order_id, 2);
+					}
+					
+					PrintWriter out = response.getWriter();
+					out.print("success");
+					out.flush();
+					out.close();
+				}
 //                cloudPay(map.get("total_amount"),map.get("trade_no"),0);
-            }
-        }catch (Exception e){
-            e.printStackTrace();
-        }
-    }
-
-
-    /**
-     * 管理后台推单
-     *
-     * @param orderType
-     * @return
-     */
-    @ResponseBody
-    @PostMapping("/base/taxi/pushOrder")
-    public ResultUtil pushOrder(Integer orderId, Integer orderType) {
-        try {
-            switch (orderType) {
-                case 1:
-                    return orderPrivateCarService.pushOrderPrivateCar(orderId);
-                case 2:
-                    return orderTaxiService.pushOrderTaxi(orderId);
-            }
-            return ResultUtil.success();
-        } catch (Exception e) {
-            e.printStackTrace();
-            return ResultUtil.runErr();
-        }
-    }
-
-
-    /**
-     * 黔云通支付回调通知
-     *
-     * @param qytPaymentCallback
-     * @return
-     */
-    @ResponseBody
-    @PostMapping("/base/order/qytPaymentCallback")
-    public String qytPaymentCallback(@RequestBody QYTPaymentCallback qytPaymentCallback) {
-        log.info("【黔云通支付回调通知】请求参数:" + JSON.toJSONString(qytPaymentCallback));
-        if (null == qytPaymentCallback) {
-            return "error";
-        }
-        return "success";
-    }
-
-
-
-    /**
-     * 推广订单支付成功回调
-     *
-     * @param orderId
-     * @return
-     */
-    private void promotion(Integer orderType,Integer orderId){
-        switch (orderType){
-            case 1:
-                orderPrivateCarService.promotion(orderId);
-                break;
-            case 2:
-                orderTaxiService.promotion(orderId);
-                break;
-            case 3:
-                orderCrossCityService.promotion(orderId);
-                break;
-            default:
-                    break;
-        }
-    }
-
-
-    @ResponseBody
-    @PostMapping("/api/get/unPayOrder")
-    @ApiOperation(value = "获取未支付订单", tags = {"用户端-首页"}, notes = "")
-    @ApiImplicitParams({
-           @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城,4=小件物流,null=全部)", name = "orderType", required = false, dataType = "int"),
-           @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
-    })
-    public ResultUtil getUnPayOrder( Integer orderType,  HttpServletRequest request){
-        try {
-            // 从Redis中获取当前用户ID
-            Integer uid = userInfoService.getUserIdFormRedis(request);
-            if (null == uid) {
-                return ResultUtil.tokenErr();
-            }
-
-            List<UnPayOrderVO> unpaidOrders = new ArrayList<>();
-
-            // 根据订单类型查询对应未支付订单
-            if (orderType == null || orderType == 1) {
-                // 查询未支付的专车订单
-                List<UnPayOrderVO> privateCarOrders = orderPrivateCarService.getUnpayPrivateOrders(uid);
-                unpaidOrders.addAll(privateCarOrders);
-            }
-
-            if (orderType == null || orderType == 2) {
-                // 查询未支付的出租车订单
-                List<UnPayOrderVO> taxiOrders = orderTaxiService.getUnpayTaxiOrders(uid);
-                unpaidOrders.addAll(taxiOrders);
-            }
-
-            if (orderType == null || orderType == 3) {
-                // 查询未支付的跨城订单
-                List<UnPayOrderVO> crossCityOrders = orderCrossCityService.getUnpayCrossCityOrders(uid);
-                unpaidOrders.addAll(crossCityOrders);
-            }
-
-            if (orderType == null || orderType == 4 || orderType == 5) {
-                // 查询未支付的物流订单(包含类型4和5)
-                List<UnPayOrderVO> logisticsOrders = orderLogisticsService.getUnpayLogisticsOrders(uid);
-                unpaidOrders.addAll(logisticsOrders);
-            }
-
-            // 按创建时间倒序排序(最新的订单在前)
-            unpaidOrders.sort(Comparator.comparing(UnPayOrderVO::getInsertTime).reversed());
-
-            Map<String, Object> result = new HashMap<>();
-            result.put("total", unpaidOrders.size());
-            result.put("orders", unpaidOrders);
-
-            return ResultUtil.success(result);
-        } catch (Exception e) {
-            e.printStackTrace();
-            return ResultUtil.runErr();
-        }
-    }
-
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+	
+	
+	/**
+	 * 管理后台推单
+	 *
+	 * @param orderType
+	 * @return
+	 */
+	@ResponseBody
+	@PostMapping("/base/taxi/pushOrder")
+	public ResultUtil pushOrder(Integer orderId, Integer orderType) {
+		try {
+			switch (orderType) {
+				case 1:
+					return orderPrivateCarService.pushOrderPrivateCar(orderId);
+				case 2:
+					return orderTaxiService.pushOrderTaxi(orderId);
+			}
+			return ResultUtil.success();
+		} catch (Exception e) {
+			e.printStackTrace();
+			return ResultUtil.runErr();
+		}
+	}
+	
+	
+	/**
+	 * 黔云通支付回调通知
+	 *
+	 * @param qytPaymentCallback
+	 * @return
+	 */
+	@ResponseBody
+	@PostMapping("/base/order/qytPaymentCallback")
+	public String qytPaymentCallback(@RequestBody QYTPaymentCallback qytPaymentCallback) {
+		log.info("【黔云通支付回调通知】请求参数:" + JSON.toJSONString(qytPaymentCallback));
+		if (null == qytPaymentCallback) {
+			return "error";
+		}
+		return "success";
+	}
+	
+	
+	/**
+	 * 推广订单支付成功回调
+	 *
+	 * @param orderId
+	 * @return
+	 */
+	private void promotion(Integer orderType, Integer orderId) {
+		switch (orderType) {
+			case 1:
+				orderPrivateCarService.promotion(orderId);
+				break;
+			case 2:
+				orderTaxiService.promotion(orderId);
+				break;
+			case 3:
+				orderCrossCityService.promotion(orderId);
+				break;
+			default:
+				break;
+		}
+	}
+	
+	
+	@ResponseBody
+	@PostMapping("/api/get/unPayOrder")
+	@ApiOperation(value = "获取未支付订单", tags = {"用户端-首页"}, notes = "")
+	@ApiImplicitParams({
+			@ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城,4=小件物流,null=全部)", name = "orderType", required = false, dataType = "int"),
+			@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+	})
+	public ResultUtil getUnPayOrder(Integer orderType, HttpServletRequest request) {
+		try {
+			// 从Redis中获取当前用户ID
+			Integer uid = userInfoService.getUserIdFormRedis(request);
+			if (null == uid) {
+				return ResultUtil.tokenErr();
+			}
+			
+			List<UnPayOrderVO> unpaidOrders = new ArrayList<>();
+			
+			// 根据订单类型查询对应未支付订单
+			if (orderType == null || orderType == 1) {
+				// 查询未支付的专车订单
+				List<UnPayOrderVO> privateCarOrders = orderPrivateCarService.getUnpayPrivateOrders(uid);
+				unpaidOrders.addAll(privateCarOrders);
+			}
+			
+			if (orderType == null || orderType == 2) {
+				// 查询未支付的出租车订单
+				List<UnPayOrderVO> taxiOrders = orderTaxiService.getUnpayTaxiOrders(uid);
+				unpaidOrders.addAll(taxiOrders);
+			}
+			
+			if (orderType == null || orderType == 3) {
+				// 查询未支付的跨城订单
+				List<UnPayOrderVO> crossCityOrders = orderCrossCityService.getUnpayCrossCityOrders(uid);
+				unpaidOrders.addAll(crossCityOrders);
+			}
+			
+			if (orderType == null || orderType == 4 || orderType == 5) {
+				// 查询未支付的物流订单(包含类型4和5)
+				List<UnPayOrderVO> logisticsOrders = orderLogisticsService.getUnpayLogisticsOrders(uid);
+				unpaidOrders.addAll(logisticsOrders);
+			}
+			
+			// 按创建时间倒序排序(最新的订单在前)
+			unpaidOrders.sort(Comparator.comparing(UnPayOrderVO::getInsertTime).reversed());
+			
+			Map<String, Object> result = new HashMap<>();
+			result.put("total", unpaidOrders.size());
+			result.put("orders", unpaidOrders);
+			
+			return ResultUtil.success(result);
+		} catch (Exception e) {
+			e.printStackTrace();
+			return ResultUtil.runErr();
+		}
+	}
+    
     @PostMapping("/api/order/queryMyTripList")
     @ApiOperation(value = "获取我的行程列表", tags = {"用户端-个人中心"}, notes = "")
     @ApiImplicitParams({
@@ -2208,10 +2243,10 @@
             if(null == uid){
                 return ResultUtil.tokenErr();
             }
-
+            
             List<Map<String,Object>> raw = fetchTrips(uid, type, pageNum, size);
             return ResultUtil.success(TripOrderVo.getTripOrderVo(raw));
-
+            
         }catch (Exception e){
             e.printStackTrace();
             return ResultUtil.runErr();
@@ -2224,7 +2259,7 @@
      */
     private List<Map<String,Object>> fetchTrips(
             Integer uid, Integer type, Integer pageNum, Integer size) throws Exception {
-
+        
         List<Map<String, Object>> list = new ArrayList<>();
         if (type == null || type == 0) {
             list.addAll(orderPrivateCarService.queryMyTripListAll(uid));
@@ -2262,7 +2297,7 @@
                 Object latObj = orderMap.get("boardingLat");
                 //获取公司id
                 Object companyId = orderMap.get("companyId");
-
+                
                 Object serverCarModelId =null;
                 ServerCarModel serverCarModel = null;
                 if (orderMap.get("serverCarModelId") != null ){
@@ -2270,12 +2305,12 @@
                     serverCarModelId = orderMap.get("serverCarModelId");
                     serverCarModel = serverCarModelService.selectById((Serializable) serverCarModelId);
                 }
-
+                
                 if (lonObj != null && latObj != null) {
                     String lon = lonObj.toString();
                     String lat = latObj.toString();
                     Company company = companyService.selectById((Serializable) companyId);
-
+                    
                     try {
                         // 调用逆地理编码接口获取城市信息
                         Map<String, String> geoInfo = gdMapGeocodingUtil.geocode(lon, lat);
@@ -2304,7 +2339,7 @@
             @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
     })
     public ResultUtil sendTripSheetEmail(@RequestBody TripSheetVo tripSheet,
-                                          HttpServletRequest  request) {
+                                         HttpServletRequest  request) {
         try {
             // 从Redis中获取当前用户ID
             Integer uid = userInfoService.getUserIdFormRedis(request);
@@ -2327,12 +2362,15 @@
             List<TripOrderVo> tripOrderVos = processTripOrderVos(orderList);
             String filePath = tripSheetGenerator.generatePdf(tripOrderVos);
             File attachment = new File(filePath);
-            emailUtil.sendEmailWithAttachment(tripSheet.getRecipientEmail(), "行程单", "请查收您的行程单", attachment);
+            String displayFileName = "贵人家园行程单.pdf";
+            emailUtil.sendEmailWithAttachment(tripSheet.getRecipientEmail(), "行程单", "请查收您的行程单", attachment,displayFileName);
             attachment.delete(); // 发送成功后删除临时文件
-            return ResultUtil.success("邮件发送成功");
+            Map<String, Object> result = new HashMap<>();
+            result.put("orderNum", orderList.size());
+            return ResultUtil.success(result);
         } catch (Exception e) {
             e.printStackTrace();
-            return ResultUtil.error("邮件发送失败");
+            return ResultUtil.error("邮件发送失败"+e.getMessage());
         }
     }
     /**
@@ -2387,11 +2425,11 @@
             if (db == null) return -1;  // b 在后面
             return da.compareTo(db);    // 按时间正序(升序)排列
         });
-
-
+        
+        
         return  orderList;
     }
-
+    
     /**
      * 处理行程订单VO列表,补充经纬度、公司和车型信息
      */
@@ -2399,21 +2437,21 @@
         if (orderVoList == null || orderVoList.isEmpty()) {
             return new ArrayList<>();
         }
-
+        
         for (TripOrderVo orderVo : orderVoList) {
             // 处理经纬度转城市信息
             handleGeoInfoForVo(orderVo);
-
+            
             // 处理公司信息
             handleCompanyInfoForVo(orderVo);
-
+            
             // 处理车型信息
             handleCarModelInfoForVo(orderVo);
         }
-
+        
         return orderVoList;
     }
-
+    
     /**
      * 处理经纬度转城市信息
      */
@@ -2421,12 +2459,12 @@
         // 直接从VO获取经纬度(假设VO中有对应的getter方法)
         String lon = String.valueOf(orderVo.getBoardingLon());
         String lat = String.valueOf(orderVo.getBoardingLat());
-
+        
         if (StringUtils.isEmpty(lon) || StringUtils.isEmpty(lat)) {
             orderVo.setCity("");
             return;
         }
-
+        
         try {
             // 调用逆地理编码接口获取城市信息
             Map<String, String> geoInfo = gdMapGeocodingUtil.geocode(lon, lat);
@@ -2437,7 +2475,7 @@
             orderVo.setCity("");
         }
     }
-
+    
     /**
      * 处理公司信息
      */
@@ -2448,7 +2486,7 @@
             orderVo.setCompanyName("");
             return;
         }
-
+        
         Company company = companyService.selectById(companyId);
         if (company != null) {
             orderVo.setCompanyName(company.getName());
@@ -2456,7 +2494,7 @@
             orderVo.setCompanyName("");
         }
     }
-
+    
     /**
      * 处理车型信息
      */
@@ -2467,7 +2505,7 @@
             orderVo.setServerCarModel("");
             return;
         }
-
+        
         ServerCarModel serverCarModel = serverCarModelService.selectById(serverCarModelId);
         if (serverCarModel != null) {
             orderVo.setServerCarModel(serverCarModel.getName());
@@ -2475,5 +2513,5 @@
             orderVo.setServerCarModel("");
         }
     }
-
+	
 }
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java
index 61785ee..03b1250 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java
@@ -13,1310 +13,1374 @@
  */
 @TableName("t_order_private_car")
 public class OrderPrivateCar {
-    /**
-     * 主键
-     */
-    @TableId(value = "id", type = IdType.AUTO)
-    @TableField("id")
-    private Integer id;
-    /**
-     * 订单类型(1=普通订单,2=摆渡订单)
-     */
-    @TableField("type")
-    private Integer type;
-    /**
-     * 跨城订单id(摆渡车专用)
-     */
-    @TableField("crossCityOrderId")
-    private Integer crossCityOrderId;
-    /**
-     * 摆渡方位(1=跨城起点,2=跨城终点)
-     */
-    @TableField("place")
-    private Integer place;
-    /**
-     * 用户id
-     */
-    @TableField("userId")
-    private Integer userId;
-    /**
-     * 服务车型
-     */
-    @TableField("serverCarModel")
-    private String serverCarModel;
-    /**
-     * 服务车型id
-     */
-    @TableField("serverCarModelId")
-    private Integer serverCarModelId;
-    /**
-     * 司机id
-     */
-    @TableField("driverId")
-    private Integer driverId;
-    /**
-     * 车辆id
-     */
-    @TableField("carId")
-    private Integer carId;
-    /**
-     * 订单号
-     */
-    @TableField("orderNum")
-    private String orderNum;
-    /**
-     * 下单地点经度
-     */
-    @TableField("placementLon")
-    private Double placementLon;
-    /**
-     * 下单地点纬度
-     */
-    @TableField("placementLat")
-    private Double placementLat;
-    /**
-     * 下单地点
-     */
-    @TableField("placementAddress")
-    private String placementAddress;
-    /**
-     * 起点经度
-     */
-    @TableField("startLon")
-    private Double startLon;
-    /**
-     * 起点纬度
-     */
-    @TableField("startLat")
-    private Double startLat;
-    /**
-     * 起点
-     */
-    @TableField("startAddress")
-    private String startAddress;
-    /**
-     * 目的地经度
-     */
-    @TableField("endLon")
-    private Double endLon;
-    /**
-     * 目的地纬度
-     */
-    @TableField("endLat")
-    private Double endLat;
-    /**
-     * 目的地
-     */
-    @TableField("endAddress")
-    private String endAddress;
-    /**
-     * 上车点经度
-     */
-    @TableField("boardingLon")
-    private Double boardingLon;
-    /**
-     * 上车点纬度
-     */
-    @TableField("boardingLat")
-    private Double boardingLat;
-    /**
-     * 上车地点
-     */
-    @TableField("boardingAddress")
-    private String boardingAddress;
-    /**
-     * 上车时间
-     */
-    @TableField("boardingTime")
-    private Date boardingTime;
-    /**
-     * 下车点经度
-     */
-    @TableField("getoffLon")
-    private Double getoffLon;
-    /**
-     * 下车点纬度
-     */
-    @TableField("getoffLat")
-    private Double getoffLat;
-    /**
-     * 下车点
-     */
-    @TableField("getoffAddress")
-    private String getoffAddress;
-    /**
-     * 下车时间
-     */
-    @TableField("getoffTime")
-    private Date getoffTime;
-    /**
-     * 行驶里程数(米)
-     */
-    @TableField("mileage")
-    private Double mileage;
-    /**
-     * 支付方式(1=OK平台支付,2=其他方式支付)
-     */
-    @TableField("payManner")
-    private Integer payManner;
-    /**
-     * 支付方式(1=微信,2=支付宝,3=余额)
-     */
-    @TableField("payType")
-    private Integer payType;
-    /**
-     * 订单金额
-     */
-    @TableField("orderMoney")
-    private Double orderMoney;
-    /**
-     * 起步里程
-     */
-    @TableField("startMileage")
-    private Double startMileage;
-    /**
-     * 起步价
-     */
-    @TableField("startMoney")
-    private Double startMoney;
-    /**
-     * 里程公里
-     */
-    @TableField("mileageKilometers")
-    private Double mileageKilometers;
-    /**
-     * 里程费
-     */
-    @TableField("mileageMoney")
-    private Double mileageMoney;
-    /**
-     * 时长分钟
-     */
-    @TableField("duration")
-    private Double duration;
-    /**
-     * 时长费
-     */
-    @TableField("durationMoney")
-    private Double durationMoney;
-    /**
-     * 等待分钟
-     */
-    @TableField("wait")
-    private Double wait;
-    /**
-     * 等待费
-     */
-    @TableField("waitMoney")
-    private Double waitMoney;
-    /**
-     * 远途公里
-     */
-    @TableField("longDistance")
-    private Double longDistance;
-    /**
-     * 远途费
-     */
-    @TableField("longDistanceMoney")
-    private Double longDistanceMoney;
-    /**
-     * 停车费
-     */
-    @TableField("parkMoney")
-    private Double parkMoney;
-    /**
-     * 过路费
-     */
-    @TableField("roadTollMoney")
-    private Double roadTollMoney;
-    //节假费
-    @TableField("holidayFee")
-    private Double holidayFee;
-    /**
-     * 红包抵扣金额
-     */
-    @TableField("redPacketMoney")
-    private Double redPacketMoney;
-    /**
-     * 优惠券抵扣金额
-     */
-    @TableField("couponMoney")
-    private Double couponMoney;
-    /**
-     * 红包id
-     */
-    @TableField("redPacketId")
-    private Integer redPacketId;
-    /**
-     * 优惠券id
-     */
-    @TableField("couponId")
-    private Integer couponId;
-    /**
-     * 折扣
-     */
-    @TableField("discount")
-    private Double discount;
-    /**
-     * 折扣优惠金额
-     */
-    @TableField("discountMoney")
-    private Double discountMoney;
-    /**
-     * 折扣活动id
-     */
-    @TableField("activityId")
-    private Integer activityId;
-    /**
-     * 打折卡id
-     */
-    @TableField("taxiCardId")
-    private Integer taxiCardId;
-    /**
-     * 打车卡记录id
-     */
-    @TableField("userTaxiCardId")
-    private Integer userTaxiCardId;
-    /**
-     * 优惠金额
-     */
-    @TableField("discountAmount")
-    private Double discountAmount;
-    /**
-     * 公司id
-     */
-    @TableField("companyId")
-    private Integer companyId;
-    /**
-     * 支付金额
-     */
-    @TableField("payMoney")
-    private Double payMoney;
-    //感谢费
-    @TableField("thankYouFee")
-    private Double thankYouFee;
-    /**
-     * 是否是代下单(0:否,1:是)
-     */
-    @TableField("substitute")
-    private Integer substitute;
-    /**
-     * 乘车人姓名
-     */
-    @TableField("passengers")
-    private String passengers;
-    /**
-     * 乘车人电话
-     */
-    @TableField("passengersPhone")
-    private String passengersPhone;
-    /**
-     * 订单状态(1=待接单,2=待出发,3=待到达预约地点,4=待乘客上车,5=服务中,6=完成服务,7=待支付,8=待评价,9=已完成,10=已取消,11=改派中,12=取消待支付)
-     */
-    @TableField("state")
-    private Integer state;
-    /**
-     * 下单时间
-     */
-    @TableField("insertTime")
-    private Date insertTime;
-    /**
-     * 出行时间
-     */
-    @TableField("travelTime")
-    private Date travelTime;
-    /**
-     * 抢单时间
-     */
-    @TableField("snatchOrderTime")
-    private Date snatchOrderTime;
-    /**
-     * 司机点出发时间
-     */
-    @TableField("setOutTime")
-    private Date setOutTime;
-    /**
-     * 司机到达预约地点时间
-     */
-    @TableField("arriveTime")
-    private Date arriveTime;
-    /**
-     * 开始服务时间
-     */
-    @TableField("startServiceTime")
-    private Date startServiceTime;
-    /**
-     * 结束服务时间
-     */
-    @TableField("endServiceTime")
-    private Date endServiceTime;
-    /**
-     * 订单类型(1=普通,2=预约)
-     */
-    @TableField("orderType")
-    private Integer orderType;
-    /**
-     * 订单来源(1:APP下单,2:扫码下单,3:小程序下单,4:司机下单,5:调度下单)
-     */
-    @TableField("orderSource")
-    private Integer orderSource;
-    /**
-     * 发票id
-     */
-    @TableField("invoiceId")
-    private Integer invoiceId;
-    /**
-     * 是否是改派单(1=否,=是)
-     * @return
-     */
-    @TableField("isReassign")
-    private Integer isReassign;
-    /**
-     * 改派通知标识(0=没有改派,1=改派中,2=已改派)用于通知前端获取新司机数据
-     */
-    @TableField("reassignNotice")
-    private Integer reassignNotice;
-    /**
-     * 高德猎鹰轨迹id
-     * @return
-     */
-    @TableField("trackId")
-    private String trackId;
-    /**
-     * 是否删除(1=否,2=是)
-     */
-    @TableField("isDelete")
-    private Integer isDelete;
-    /**
-     * 该派前的订单状态
-     * @return
-     */
-    @TableField("oldState")
-    private Integer oldState;
-    /**
-     * 移动小号
-     * @return
-     */
-    @TableField("telX")
-    private String telX;
-    /**
-     * 绑定小号关系id
-     * @return
-     */
-    @TableField("bindId")
-    private String bindId;
-    /**
-     * 乘车人数
-     */
-    @TableField("peopleNum")
-    private Integer peopleNum;
-    /**
-     * 乘车类型(1=独享,2=一口价,3=拼车)
-     */
-    @TableField("rideType")
-    private Integer rideType;
-
-    @TableField("pid")
-    private Integer pid;
-
-    /**
-     * 是否异常订单 1否 2是
-     */
-    @TableField("abnormal")
-    private Integer abnormal;
-
-
-
-    /**
-     * 推广订单 1否 2是
-     */
-    @TableField("promotion")
-    private Integer promotion;
-
-
-    private String promotionUser;
-
-    private String promotionPhone;
-
-
-    /**
-     * 乘客反馈情况
-     */
-    @TableField("abnormalIntro")
-    private String abnormalIntro;
-
-    /**
-     * 乘客反馈图片
-     */
-    @TableField("abnormalImg")
-    private String abnormalImg;
-
-
-    private Integer promotionDriverId;
-
-    private BigDecimal promotionMoney;
-
-
-
-    private Integer totalPeopleNum;
-    /**
-     * 预估里程(米)
-     */
-    private Double estimateMileage;
-
-    private Double estimateTime;
-
-    private Integer spellSuccess;
-
-    private String splitAllocation;
-
-    private Integer responsibilityType;
-
-    private Long promotionActivityId;
-
-    public Long getPromotionActivityId() {
-        return promotionActivityId;
-    }
-
-    public void setPromotionActivityId(Long promotionActivityId) {
-        this.promotionActivityId = promotionActivityId;
-    }
-
-    public String getPromotionUser() {
-        return promotionUser;
-    }
-
-    public void setPromotionUser(String promotionUser) {
-        this.promotionUser = promotionUser;
-    }
-
-    public String getPromotionPhone() {
-        return promotionPhone;
-    }
-
-    public void setPromotionPhone(String promotionPhone) {
-        this.promotionPhone = promotionPhone;
-    }
-
-    public Integer getResponsibilityType() {
-        return responsibilityType;
-    }
-
-    public void setResponsibilityType(Integer responsibilityType) {
-        this.responsibilityType = responsibilityType;
-    }
-
-    public Integer getPromotion() {
-        return promotion;
-    }
-
-    public void setPromotion(Integer promotion) {
-        this.promotion = promotion;
-    }
-
-    public Integer getPromotionDriverId() {
-        return promotionDriverId;
-    }
-
-    public void setPromotionDriverId(Integer promotionDriverId) {
-        this.promotionDriverId = promotionDriverId;
-    }
-
-    public BigDecimal getPromotionMoney() {
-        return promotionMoney;
-    }
-
-    public void setPromotionMoney(BigDecimal promotionMoney) {
-        this.promotionMoney = promotionMoney;
-    }
-
-    public Integer getAbnormal() {
-        return abnormal;
-    }
-
-    public void setAbnormal(Integer abnormal) {
-        this.abnormal = abnormal;
-    }
-
-    public String getAbnormalIntro() {
-        return abnormalIntro;
-    }
-
-    public void setAbnormalIntro(String abnormalIntro) {
-        this.abnormalIntro = abnormalIntro;
-    }
-
-    public String getAbnormalImg() {
-        return abnormalImg;
-    }
-
-    public void setAbnormalImg(String abnormalImg) {
-        this.abnormalImg = abnormalImg;
-    }
-
-    public Integer getSpellSuccess() {
-        return spellSuccess;
-    }
-
-    public void setSpellSuccess(Integer spellSuccess) {
-        this.spellSuccess = spellSuccess;
-    }
-
-    public Double getEstimateTime() {
-        return estimateTime;
-    }
-
-    public void setEstimateTime(Double estimateTime) {
-        this.estimateTime = estimateTime;
-    }
-
-    public Double getEstimateMileage() {
-        return estimateMileage;
-    }
-
-    public void setEstimateMileage(Double estimateMileage) {
-        this.estimateMileage = estimateMileage;
-    }
-
-    public Integer getTotalPeopleNum() {
-        return totalPeopleNum;
-    }
-
-    public void setTotalPeopleNum(Integer totalPeopleNum) {
-        this.totalPeopleNum = totalPeopleNum;
-    }
-
-    public Integer getPid() {
-        return pid;
-    }
-
-    public void setPid(Integer pid) {
-        this.pid = pid;
-    }
-
-    public Integer getPeopleNum() {
-        return peopleNum;
-    }
-
-    public void setPeopleNum(Integer peopleNum) {
-        this.peopleNum = peopleNum;
-    }
-
-    public Integer getRideType() {
-        return rideType;
-    }
-
-    public void setRideType(Integer rideType) {
-        this.rideType = rideType;
-    }
-
-    public Integer getId() {
-        return id;
-    }
-
-    public void setId(Integer id) {
-        this.id = id;
-    }
-
-    public Integer getType() {
-        return type;
-    }
-
-    public void setType(Integer type) {
-        this.type = type;
-    }
-
-    public Integer getCrossCityOrderId() {
-        return crossCityOrderId;
-    }
-
-    public void setCrossCityOrderId(Integer crossCityOrderId) {
-        this.crossCityOrderId = crossCityOrderId;
-    }
-
-    public Integer getPlace() {
-        return place;
-    }
-
-    public void setPlace(Integer place) {
-        this.place = place;
-    }
-
-    public Integer getUserId() {
-        return userId;
-    }
-
-    public void setUserId(Integer userId) {
-        this.userId = userId;
-    }
-
-    public String getServerCarModel() {
-        return serverCarModel;
-    }
-
-    public void setServerCarModel(String serverCarModel) {
-        this.serverCarModel = serverCarModel;
-    }
-
-    public Integer getServerCarModelId() {
-        return serverCarModelId;
-    }
-
-    public void setServerCarModelId(Integer serverCarModelId) {
-        this.serverCarModelId = serverCarModelId;
-    }
-
-    public Integer getDriverId() {
-        return driverId;
-    }
-
-    public void setDriverId(Integer driverId) {
-        this.driverId = driverId;
-    }
-
-    public Integer getCarId() {
-        return carId;
-    }
-
-    public void setCarId(Integer carId) {
-        this.carId = carId;
-    }
-
-    public String getOrderNum() {
-        return orderNum;
-    }
-
-    public void setOrderNum(String orderNum) {
-        this.orderNum = orderNum;
-    }
-
-    public Double getPlacementLon() {
-        return placementLon;
-    }
-
-    public void setPlacementLon(Double placementLon) {
-        this.placementLon = placementLon;
-    }
-
-    public Double getPlacementLat() {
-        return placementLat;
-    }
-
-    public void setPlacementLat(Double placementLat) {
-        this.placementLat = placementLat;
-    }
-
-    public String getPlacementAddress() {
-        return placementAddress;
-    }
-
-    public void setPlacementAddress(String placementAddress) {
-        this.placementAddress = placementAddress;
-    }
-
-    public Double getStartLon() {
-        return startLon;
-    }
-
-    public void setStartLon(Double startLon) {
-        this.startLon = startLon;
-    }
-
-    public Double getStartLat() {
-        return startLat;
-    }
-
-    public void setStartLat(Double startLat) {
-        this.startLat = startLat;
-    }
-
-    public String getStartAddress() {
-        return startAddress;
-    }
-
-    public void setStartAddress(String startAddress) {
-        this.startAddress = startAddress;
-    }
-
-    public Double getEndLon() {
-        return endLon;
-    }
-
-    public void setEndLon(Double endLon) {
-        this.endLon = endLon;
-    }
-
-    public Double getEndLat() {
-        return endLat;
-    }
-
-    public void setEndLat(Double endLat) {
-        this.endLat = endLat;
-    }
-
-    public String getEndAddress() {
-        return endAddress;
-    }
-
-    public void setEndAddress(String endAddress) {
-        this.endAddress = endAddress;
-    }
-
-    public Double getBoardingLon() {
-        return boardingLon;
-    }
-
-    public void setBoardingLon(Double boardingLon) {
-        this.boardingLon = boardingLon;
-    }
-
-    public Double getBoardingLat() {
-        return boardingLat;
-    }
-
-    public void setBoardingLat(Double boardingLat) {
-        this.boardingLat = boardingLat;
-    }
-
-    public String getBoardingAddress() {
-        return boardingAddress;
-    }
-
-    public void setBoardingAddress(String boardingAddress) {
-        this.boardingAddress = boardingAddress;
-    }
-
-    public Date getBoardingTime() {
-        return boardingTime;
-    }
-
-    public void setBoardingTime(Date boardingTime) {
-        this.boardingTime = boardingTime;
-    }
-
-    public Double getGetoffLon() {
-        return getoffLon;
-    }
-
-    public void setGetoffLon(Double getoffLon) {
-        this.getoffLon = getoffLon;
-    }
-
-    public Double getGetoffLat() {
-        return getoffLat;
-    }
-
-    public void setGetoffLat(Double getoffLat) {
-        this.getoffLat = getoffLat;
-    }
-
-    public String getGetoffAddress() {
-        return getoffAddress;
-    }
-
-    public void setGetoffAddress(String getoffAddress) {
-        this.getoffAddress = getoffAddress;
-    }
-
-    public Date getGetoffTime() {
-        return getoffTime;
-    }
-
-    public void setGetoffTime(Date getoffTime) {
-        this.getoffTime = getoffTime;
-    }
-
-    public Double getMileage() {
-        return mileage;
-    }
-
-    public void setMileage(Double mileage) {
-        this.mileage = mileage;
-    }
-
-    public Integer getPayManner() {
-        return payManner;
-    }
-
-    public void setPayManner(Integer payManner) {
-        this.payManner = payManner;
-    }
-
-    public Integer getPayType() {
-        return payType;
-    }
-
-    public void setPayType(Integer payType) {
-        this.payType = payType;
-    }
-
-    public Double getOrderMoney() {
-        return orderMoney;
-    }
-
-    public void setOrderMoney(Double orderMoney) {
-        this.orderMoney = orderMoney;
-    }
-
-    public Double getStartMileage() {
-        return startMileage;
-    }
-
-    public void setStartMileage(Double startMileage) {
-        this.startMileage = startMileage;
-    }
-
-    public Double getStartMoney() {
-        return startMoney;
-    }
-
-    public void setStartMoney(Double startMoney) {
-        this.startMoney = startMoney;
-    }
-
-    public Double getMileageKilometers() {
-        return mileageKilometers;
-    }
-
-    public void setMileageKilometers(Double mileageKilometers) {
-        this.mileageKilometers = mileageKilometers;
-    }
-
-    public Double getMileageMoney() {
-        return mileageMoney;
-    }
-
-    public void setMileageMoney(Double mileageMoney) {
-        this.mileageMoney = mileageMoney;
-    }
-
-    public Double getDuration() {
-        return duration;
-    }
-
-    public void setDuration(Double duration) {
-        this.duration = duration;
-    }
-
-    public Double getDurationMoney() {
-        return durationMoney;
-    }
-
-    public void setDurationMoney(Double durationMoney) {
-        this.durationMoney = durationMoney;
-    }
-
-    public Double getWait() {
-        return wait;
-    }
-
-    public void setWait(Double wait) {
-        this.wait = wait;
-    }
-
-    public Double getWaitMoney() {
-        return waitMoney;
-    }
-
-    public void setWaitMoney(Double waitMoney) {
-        this.waitMoney = waitMoney;
-    }
-
-    public Double getLongDistance() {
-        return longDistance;
-    }
-
-    public void setLongDistance(Double longDistance) {
-        this.longDistance = longDistance;
-    }
-
-    public Double getLongDistanceMoney() {
-        return longDistanceMoney;
-    }
-
-    public void setLongDistanceMoney(Double longDistanceMoney) {
-        this.longDistanceMoney = longDistanceMoney;
-    }
-
-    public Double getParkMoney() {
-        return parkMoney;
-    }
-
-    public void setParkMoney(Double parkMoney) {
-        this.parkMoney = parkMoney;
-    }
-
-    public Double getRoadTollMoney() {
-        return roadTollMoney;
-    }
-
-    public void setRoadTollMoney(Double roadTollMoney) {
-        this.roadTollMoney = roadTollMoney;
-    }
-
-    public Double getHolidayFee() {
-        return holidayFee;
-    }
-
-    public void setHolidayFee(Double holidayFee) {
-        this.holidayFee = holidayFee;
-    }
-
-    public Double getRedPacketMoney() {
-        return redPacketMoney;
-    }
-
-    public void setRedPacketMoney(Double redPacketMoney) {
-        this.redPacketMoney = redPacketMoney;
-    }
-
-    public Double getCouponMoney() {
-        return couponMoney;
-    }
-
-    public void setCouponMoney(Double couponMoney) {
-        this.couponMoney = couponMoney;
-    }
-
-    public Integer getRedPacketId() {
-        return redPacketId;
-    }
-
-    public void setRedPacketId(Integer redPacketId) {
-        this.redPacketId = redPacketId;
-    }
-
-    public Integer getCouponId() {
-        return couponId;
-    }
-
-    public void setCouponId(Integer couponId) {
-        this.couponId = couponId;
-    }
-
-    public Double getDiscount() {
-        return discount;
-    }
-
-    public void setDiscount(Double discount) {
-        this.discount = discount;
-    }
-
-    public Double getDiscountMoney() {
-        return discountMoney;
-    }
-
-    public void setDiscountMoney(Double discountMoney) {
-        this.discountMoney = discountMoney;
-    }
-
-    public Integer getActivityId() {
-        return activityId;
-    }
-
-    public void setActivityId(Integer activityId) {
-        this.activityId = activityId;
-    }
-
-    public Integer getTaxiCardId() {
-        return taxiCardId;
-    }
-
-    public void setTaxiCardId(Integer taxiCardId) {
-        this.taxiCardId = taxiCardId;
-    }
-
-    public Integer getUserTaxiCardId() {
-        return userTaxiCardId;
-    }
-
-    public void setUserTaxiCardId(Integer userTaxiCardId) {
-        this.userTaxiCardId = userTaxiCardId;
-    }
-
-    public Double getDiscountAmount() {
-        return discountAmount;
-    }
-
-    public void setDiscountAmount(Double discountAmount) {
-        this.discountAmount = discountAmount;
-    }
-
-    public Integer getCompanyId() {
-        return companyId;
-    }
-
-    public void setCompanyId(Integer companyId) {
-        this.companyId = companyId;
-    }
-
-    public Double getPayMoney() {
-        return payMoney;
-    }
-
-    public void setPayMoney(Double payMoney) {
-        this.payMoney = payMoney;
-    }
-
-    public Double getThankYouFee() {
-        return thankYouFee;
-    }
-
-    public void setThankYouFee(Double thankYouFee) {
-        this.thankYouFee = thankYouFee;
-    }
-
-    public Integer getSubstitute() {
-        return substitute;
-    }
-
-    public void setSubstitute(Integer substitute) {
-        this.substitute = substitute;
-    }
-
-    public String getPassengers() {
-        return passengers;
-    }
-
-    public void setPassengers(String passengers) {
-        this.passengers = passengers;
-    }
-
-    public String getPassengersPhone() {
-        return passengersPhone;
-    }
-
-    public void setPassengersPhone(String passengersPhone) {
-        this.passengersPhone = passengersPhone;
-    }
-
-    public Integer getState() {
-        return state;
-    }
-
-    public void setState(Integer state) {
-        this.state = state;
-    }
-
-    public Date getInsertTime() {
-        return insertTime;
-    }
-
-    public void setInsertTime(Date insertTime) {
-        this.insertTime = insertTime;
-    }
-
-    public Date getTravelTime() {
-        return travelTime;
-    }
-
-    public void setTravelTime(Date travelTime) {
-        this.travelTime = travelTime;
-    }
-
-    public Date getSnatchOrderTime() {
-        return snatchOrderTime;
-    }
-
-    public void setSnatchOrderTime(Date snatchOrderTime) {
-        this.snatchOrderTime = snatchOrderTime;
-    }
-
-    public Date getSetOutTime() {
-        return setOutTime;
-    }
-
-    public void setSetOutTime(Date setOutTime) {
-        this.setOutTime = setOutTime;
-    }
-
-    public Date getArriveTime() {
-        return arriveTime;
-    }
-
-    public void setArriveTime(Date arriveTime) {
-        this.arriveTime = arriveTime;
-    }
-
-    public Date getStartServiceTime() {
-        return startServiceTime;
-    }
-
-    public void setStartServiceTime(Date startServiceTime) {
-        this.startServiceTime = startServiceTime;
-    }
-
-    public Date getEndServiceTime() {
-        return endServiceTime;
-    }
-
-    public void setEndServiceTime(Date endServiceTime) {
-        this.endServiceTime = endServiceTime;
-    }
-
-    public Integer getOrderType() {
-        return orderType;
-    }
-
-    public void setOrderType(Integer orderType) {
-        this.orderType = orderType;
-    }
-
-    public Integer getOrderSource() {
-        return orderSource;
-    }
-
-    public void setOrderSource(Integer orderSource) {
-        this.orderSource = orderSource;
-    }
-
-    public Integer getInvoiceId() {
-        return invoiceId;
-    }
-
-    public void setInvoiceId(Integer invoiceId) {
-        this.invoiceId = invoiceId;
-    }
-
-    public Integer getIsReassign() {
-        return isReassign;
-    }
-
-    public void setIsReassign(Integer isReassign) {
-        this.isReassign = isReassign;
-    }
-
-    public Integer getReassignNotice() {
-        return reassignNotice;
-    }
-
-    public void setReassignNotice(Integer reassignNotice) {
-        this.reassignNotice = reassignNotice;
-    }
-
-    public String getTrackId() {
-        return trackId;
-    }
-
-    public void setTrackId(String trackId) {
-        this.trackId = trackId;
-    }
-
-    public Integer getIsDelete() {
-        return isDelete;
-    }
-
-    public void setIsDelete(Integer isDelete) {
-        this.isDelete = isDelete;
-    }
-
-    public Integer getOldState() {
-        return oldState;
-    }
-
-    public void setOldState(Integer oldState) {
-        this.oldState = oldState;
-    }
-
-    public String getTelX() {
-        return telX;
-    }
-
-    public void setTelX(String telX) {
-        this.telX = telX;
-    }
-
-    public String getBindId() {
-        return bindId;
-    }
-
-    public void setBindId(String bindId) {
-        this.bindId = bindId;
-    }
-
-    public String getSplitAllocation() {
-        return splitAllocation;
-    }
-
-    public void setSplitAllocation(String splitAllocation) {
-        this.splitAllocation = splitAllocation;
-    }
-
-    @Override
-    public String toString() {
-        return "OrderPrivateCar{" +
-                "id=" + id +
-                ", type=" + type +
-                ", crossCityOrderId=" + crossCityOrderId +
-                ", place=" + place +
-                ", userId=" + userId +
-                ", serverCarModelId=" + serverCarModelId +
-                ", driverId=" + driverId +
-                ", carId=" + carId +
-                ", orderNum='" + orderNum + '\'' +
-                ", placementLon=" + placementLon +
-                ", placementLat=" + placementLat +
-                ", placementAddress='" + placementAddress + '\'' +
-                ", startLon=" + startLon +
-                ", startLat=" + startLat +
-                ", startAddress='" + startAddress + '\'' +
-                ", endLon=" + endLon +
-                ", endLat=" + endLat +
-                ", endAddress='" + endAddress + '\'' +
-                ", boardingLon=" + boardingLon +
-                ", boardingLat=" + boardingLat +
-                ", boardingAddress='" + boardingAddress + '\'' +
-                ", boardingTime=" + boardingTime +
-                ", getoffLon=" + getoffLon +
-                ", getoffLat=" + getoffLat +
-                ", getoffAddress='" + getoffAddress + '\'' +
-                ", getoffTime=" + getoffTime +
-                ", mileage=" + mileage +
-                ", payManner=" + payManner +
-                ", payType=" + payType +
-                ", orderMoney=" + orderMoney +
-                ", startMileage=" + startMileage +
-                ", startMoney=" + startMoney +
-                ", mileageKilometers=" + mileageKilometers +
-                ", mileageMoney=" + mileageMoney +
-                ", duration=" + duration +
-                ", durationMoney=" + durationMoney +
-                ", wait=" + wait +
-                ", waitMoney=" + waitMoney +
-                ", longDistance=" + longDistance +
-                ", longDistanceMoney=" + longDistanceMoney +
-                ", parkMoney=" + parkMoney +
-                ", roadTollMoney=" + roadTollMoney +
-                ", redPacketMoney=" + redPacketMoney +
-                ", couponMoney=" + couponMoney +
-                ", redPacketId=" + redPacketId +
-                ", couponId=" + couponId +
-                ", discount=" + discount +
-                ", discountMoney=" + discountMoney +
-                ", activityId=" + activityId +
-                ", companyId=" + companyId +
-                ", payMoney=" + payMoney +
-                ", substitute=" + substitute +
-                ", passengers='" + passengers + '\'' +
-                ", passengersPhone='" + passengersPhone + '\'' +
-                ", state=" + state +
-                ", insertTime=" + insertTime +
-                ", travelTime=" + travelTime +
-                ", snatchOrderTime=" + snatchOrderTime +
-                ", setOutTime=" + setOutTime +
-                ", arriveTime=" + arriveTime +
-                ", startServiceTime=" + startServiceTime +
-                ", endServiceTime=" + endServiceTime +
-                ", orderType=" + orderType +
-                ", orderSource=" + orderSource +
-                ", invoiceId=" + invoiceId +
-                ", isReassign=" + isReassign +
-                ", reassignNotice=" + reassignNotice +
-                ", trackId='" + trackId + '\'' +
-                ", isDelete=" + isDelete +
-                ", oldState=" + oldState +
-                ", telX='" + telX + '\'' +
-                ", bindId='" + bindId + '\'' +
-                '}';
-    }
-}
+	/**
+	 * 主键
+	 */
+	@TableId(value = "id", type = IdType.AUTO)
+	@TableField("id")
+	private Integer id;
+	/**
+	 * 订单类型(1=普通订单,2=摆渡订单)
+	 */
+	@TableField("type")
+	private Integer type;
+	/**
+	 * 跨城订单id(摆渡车专用)
+	 */
+	@TableField("crossCityOrderId")
+	private Integer crossCityOrderId;
+	/**
+	 * 摆渡方位(1=跨城起点,2=跨城终点)
+	 */
+	@TableField("place")
+	private Integer place;
+	/**
+	 * 用户id
+	 */
+	@TableField("userId")
+	private Integer userId;
+	/**
+	 * 服务车型
+	 */
+	@TableField("serverCarModel")
+	private String serverCarModel;
+	/**
+	 * 服务车型id
+	 */
+	@TableField("serverCarModelId")
+	private Integer serverCarModelId;
+	/**
+	 * 司机id
+	 */
+	@TableField("driverId")
+	private Integer driverId;
+	/**
+	 * 车辆id
+	 */
+	@TableField("carId")
+	private Integer carId;
+	/**
+	 * 订单号
+	 */
+	@TableField("orderNum")
+	private String orderNum;
+	/**
+	 * 下单地点经度
+	 */
+	@TableField("placementLon")
+	private Double placementLon;
+	/**
+	 * 下单地点纬度
+	 */
+	@TableField("placementLat")
+	private Double placementLat;
+	/**
+	 * 下单地点
+	 */
+	@TableField("placementAddress")
+	private String placementAddress;
+	/**
+	 * 起点经度
+	 */
+	@TableField("startLon")
+	private Double startLon;
+	/**
+	 * 起点纬度
+	 */
+	@TableField("startLat")
+	private Double startLat;
+	/**
+	 * 起点
+	 */
+	@TableField("startAddress")
+	private String startAddress;
+	/**
+	 * 目的地经度
+	 */
+	@TableField("endLon")
+	private Double endLon;
+	/**
+	 * 目的地纬度
+	 */
+	@TableField("endLat")
+	private Double endLat;
+	/**
+	 * 目的地
+	 */
+	@TableField("endAddress")
+	private String endAddress;
+	/**
+	 * 上车点经度
+	 */
+	@TableField("boardingLon")
+	private Double boardingLon;
+	/**
+	 * 上车点纬度
+	 */
+	@TableField("boardingLat")
+	private Double boardingLat;
+	/**
+	 * 上车地点
+	 */
+	@TableField("boardingAddress")
+	private String boardingAddress;
+	/**
+	 * 上车时间
+	 */
+	@TableField("boardingTime")
+	private Date boardingTime;
+	/**
+	 * 下车点经度
+	 */
+	@TableField("getoffLon")
+	private Double getoffLon;
+	/**
+	 * 下车点纬度
+	 */
+	@TableField("getoffLat")
+	private Double getoffLat;
+	/**
+	 * 下车点
+	 */
+	@TableField("getoffAddress")
+	private String getoffAddress;
+	/**
+	 * 下车时间
+	 */
+	@TableField("getoffTime")
+	private Date getoffTime;
+	/**
+	 * 行驶里程数(米)
+	 */
+	@TableField("mileage")
+	private Double mileage;
+	/**
+	 * 支付方式(1=OK平台支付,2=其他方式支付)
+	 */
+	@TableField("payManner")
+	private Integer payManner;
+	/**
+	 * 支付方式(1=微信,2=支付宝,3=余额)
+	 */
+	@TableField("payType")
+	private Integer payType;
+	/**
+	 * 订单金额
+	 */
+	@TableField("orderMoney")
+	private Double orderMoney;
+	/**
+	 * 起步里程
+	 */
+	@TableField("startMileage")
+	private Double startMileage;
+	/**
+	 * 起步价
+	 */
+	@TableField("startMoney")
+	private Double startMoney;
+	/**
+	 * 里程公里
+	 */
+	@TableField("mileageKilometers")
+	private Double mileageKilometers;
+	/**
+	 * 里程费
+	 */
+	@TableField("mileageMoney")
+	private Double mileageMoney;
+	/**
+	 * 时长分钟
+	 */
+	@TableField("duration")
+	private Double duration;
+	/**
+	 * 时长费
+	 */
+	@TableField("durationMoney")
+	private Double durationMoney;
+	/**
+	 * 等待分钟
+	 */
+	@TableField("wait")
+	private Double wait;
+	/**
+	 * 等待费
+	 */
+	@TableField("waitMoney")
+	private Double waitMoney;
+	/**
+	 * 远途公里
+	 */
+	@TableField("longDistance")
+	private Double longDistance;
+	/**
+	 * 远途费
+	 */
+	@TableField("longDistanceMoney")
+	private Double longDistanceMoney;
+	/**
+	 * 停车费
+	 */
+	@TableField("parkMoney")
+	private Double parkMoney;
+	/**
+	 * 过路费
+	 */
+	@TableField("roadTollMoney")
+	private Double roadTollMoney;
+	//节假费
+	@TableField("holidayFee")
+	private Double holidayFee;
+	/**
+	 * 红包抵扣金额
+	 */
+	@TableField("redPacketMoney")
+	private Double redPacketMoney;
+	/**
+	 * 优惠券抵扣金额
+	 */
+	@TableField("couponMoney")
+	private Double couponMoney;
+	/**
+	 * 红包id
+	 */
+	@TableField("redPacketId")
+	private Integer redPacketId;
+	/**
+	 * 优惠券id
+	 */
+	@TableField("couponId")
+	private Integer couponId;
+	/**
+	 * 折扣
+	 */
+	@TableField("discount")
+	private Double discount;
+	/**
+	 * 折扣优惠金额
+	 */
+	@TableField("discountMoney")
+	private Double discountMoney;
+	/**
+	 * 折扣活动id
+	 */
+	@TableField("activityId")
+	private Integer activityId;
+	/**
+	 * 打折卡id
+	 */
+	@TableField("taxiCardId")
+	private Integer taxiCardId;
+	/**
+	 * 打车卡记录id
+	 */
+	@TableField("userTaxiCardId")
+	private Integer userTaxiCardId;
+	/**
+	 * 优惠金额
+	 */
+	@TableField("discountAmount")
+	private Double discountAmount;
+	/**
+	 * 公司id
+	 */
+	@TableField("companyId")
+	private Integer companyId;
+	/**
+	 * 支付金额
+	 */
+	@TableField("payMoney")
+	private Double payMoney;
+	//感谢费
+	@TableField("thankYouFee")
+	private Double thankYouFee;
+	/**
+	 * 是否是代下单(0:否,1:是)
+	 */
+	@TableField("substitute")
+	private Integer substitute;
+	/**
+	 * 乘车人姓名
+	 */
+	@TableField("passengers")
+	private String passengers;
+	/**
+	 * 乘车人电话
+	 */
+	@TableField("passengersPhone")
+	private String passengersPhone;
+	/**
+	 * 订单状态(1=待接单,2=待出发,3=待到达预约地点,4=待乘客上车,5=服务中,6=完成服务,7=待支付,8=待评价,9=已完成,10=已取消,11=改派中,12=取消待支付)
+	 */
+	@TableField("state")
+	private Integer state;
+	/**
+	 * 下单时间
+	 */
+	@TableField("insertTime")
+	private Date insertTime;
+	/**
+	 * 出行时间
+	 */
+	@TableField("travelTime")
+	private Date travelTime;
+	/**
+	 * 抢单时间
+	 */
+	@TableField("snatchOrderTime")
+	private Date snatchOrderTime;
+	/**
+	 * 司机点出发时间
+	 */
+	@TableField("setOutTime")
+	private Date setOutTime;
+	/**
+	 * 司机到达预约地点时间
+	 */
+	@TableField("arriveTime")
+	private Date arriveTime;
+	/**
+	 * 开始服务时间
+	 */
+	@TableField("startServiceTime")
+	private Date startServiceTime;
+	/**
+	 * 结束服务时间
+	 */
+	@TableField("endServiceTime")
+	private Date endServiceTime;
+	/**
+	 * 订单类型(1=普通,2=预约)
+	 */
+	@TableField("orderType")
+	private Integer orderType;
+	/**
+	 * 订单来源(1:APP下单,2:扫码下单,3:小程序下单,4:司机下单,5:调度下单)
+	 */
+	@TableField("orderSource")
+	private Integer orderSource;
+	/**
+	 * 发票id
+	 */
+	@TableField("invoiceId")
+	private Integer invoiceId;
+	/**
+	 * 是否是改派单(1=否,=是)
+	 *
+	 * @return
+	 */
+	@TableField("isReassign")
+	private Integer isReassign;
+	/**
+	 * 改派通知标识(0=没有改派,1=改派中,2=已改派)用于通知前端获取新司机数据
+	 */
+	@TableField("reassignNotice")
+	private Integer reassignNotice;
+	/**
+	 * 高德猎鹰轨迹id
+	 *
+	 * @return
+	 */
+	@TableField("trackId")
+	private String trackId;
+	/**
+	 * 是否删除(1=否,2=是)
+	 */
+	@TableField("isDelete")
+	private Integer isDelete;
+	/**
+	 * 该派前的订单状态
+	 *
+	 * @return
+	 */
+	@TableField("oldState")
+	private Integer oldState;
+	/**
+	 * 移动小号
+	 *
+	 * @return
+	 */
+	@TableField("telX")
+	private String telX;
+	/**
+	 * 绑定小号关系id
+	 *
+	 * @return
+	 */
+	@TableField("bindId")
+	private String bindId;
+	/**
+	 * 乘车人数
+	 */
+	@TableField("peopleNum")
+	private Integer peopleNum;
+	/**
+	 * 乘车类型(1=独享,2=一口价,3=拼车)
+	 */
+	@TableField("rideType")
+	private Integer rideType;
+	
+	@TableField("pid")
+	private Integer pid;
+	
+	/**
+	 * 是否异常订单 1否 2是
+	 */
+	@TableField("abnormal")
+	private Integer abnormal;
+	
+	
+	/**
+	 * 推广订单 1否 2是
+	 */
+	@TableField("promotion")
+	private Integer promotion;
+	
+	
+	private String promotionUser;
+	
+	private String promotionPhone;
+	
+	
+	/**
+	 * 乘客反馈情况
+	 */
+	@TableField("abnormalIntro")
+	private String abnormalIntro;
+	
+	/**
+	 * 乘客反馈图片
+	 */
+	@TableField("abnormalImg")
+	private String abnormalImg;
+	
+	
+	private Integer promotionDriverId;
+	
+	private BigDecimal promotionMoney;
+	
+	
+	private Integer totalPeopleNum;
+	/**
+	 * 预估里程(米)
+	 */
+	private Double estimateMileage;
+	
+	private Double estimateTime;
+	
+	private Integer spellSuccess;
+	
+	private String splitAllocation;
+	
+	private Integer responsibilityType;
+	
+	private Long promotionActivityId;
+	/**
+	 * 中台行程id
+	 */
+	private String travelId;
+	/**
+	 * 中台是否已创建订单(0=否,1=是)
+	 */
+	private Integer isCreated;
+	/**
+	 * 是否是追缴单(0=否,1=是)
+	 */
+	private Integer recoveryOrder;
+	
+	public String getPromotionUser() {
+		return promotionUser;
+	}
+	
+	public void setPromotionUser(String promotionUser) {
+		this.promotionUser = promotionUser;
+	}
+	
+	public String getPromotionPhone() {
+		return promotionPhone;
+	}
+	
+	public void setPromotionPhone(String promotionPhone) {
+		this.promotionPhone = promotionPhone;
+	}
+	
+	public Integer getResponsibilityType() {
+		return responsibilityType;
+	}
+	
+	public void setResponsibilityType(Integer responsibilityType) {
+		this.responsibilityType = responsibilityType;
+	}
+	
+	public Integer getPromotion() {
+		return promotion;
+	}
+	
+	public void setPromotion(Integer promotion) {
+		this.promotion = promotion;
+	}
+	
+	public Integer getPromotionDriverId() {
+		return promotionDriverId;
+	}
+	
+	public void setPromotionDriverId(Integer promotionDriverId) {
+		this.promotionDriverId = promotionDriverId;
+	}
+	
+	public BigDecimal getPromotionMoney() {
+		return promotionMoney;
+	}
+	
+	public void setPromotionMoney(BigDecimal promotionMoney) {
+		this.promotionMoney = promotionMoney;
+	}
+	
+	public Integer getAbnormal() {
+		return abnormal;
+	}
+	
+	public void setAbnormal(Integer abnormal) {
+		this.abnormal = abnormal;
+	}
+	
+	public String getAbnormalIntro() {
+		return abnormalIntro;
+	}
+	
+	public void setAbnormalIntro(String abnormalIntro) {
+		this.abnormalIntro = abnormalIntro;
+	}
+	
+	public String getAbnormalImg() {
+		return abnormalImg;
+	}
+	
+	public void setAbnormalImg(String abnormalImg) {
+		this.abnormalImg = abnormalImg;
+	}
+	
+	public Integer getSpellSuccess() {
+		return spellSuccess;
+	}
+	
+	public void setSpellSuccess(Integer spellSuccess) {
+		this.spellSuccess = spellSuccess;
+	}
+	
+	public Double getEstimateTime() {
+		return estimateTime;
+	}
+	
+	public void setEstimateTime(Double estimateTime) {
+		this.estimateTime = estimateTime;
+	}
+	
+	public Double getEstimateMileage() {
+		return estimateMileage;
+	}
+	
+	public void setEstimateMileage(Double estimateMileage) {
+		this.estimateMileage = estimateMileage;
+	}
+	
+	public Integer getTotalPeopleNum() {
+		return totalPeopleNum;
+	}
+	
+	public void setTotalPeopleNum(Integer totalPeopleNum) {
+		this.totalPeopleNum = totalPeopleNum;
+	}
+	
+	public Integer getPid() {
+		return pid;
+	}
+	
+	public void setPid(Integer pid) {
+		this.pid = pid;
+	}
+	
+	public Integer getPeopleNum() {
+		return peopleNum;
+	}
+	
+	public void setPeopleNum(Integer peopleNum) {
+		this.peopleNum = peopleNum;
+	}
+	
+	public Integer getRideType() {
+		return rideType;
+	}
+	
+	public void setRideType(Integer rideType) {
+		this.rideType = rideType;
+	}
+	
+	public Integer getId() {
+		return id;
+	}
+	
+	public void setId(Integer id) {
+		this.id = id;
+	}
+	
+	public Integer getType() {
+		return type;
+	}
+	
+	public void setType(Integer type) {
+		this.type = type;
+	}
+	
+	public Integer getCrossCityOrderId() {
+		return crossCityOrderId;
+	}
+	
+	public void setCrossCityOrderId(Integer crossCityOrderId) {
+		this.crossCityOrderId = crossCityOrderId;
+	}
+	
+	public Integer getPlace() {
+		return place;
+	}
+	
+	public void setPlace(Integer place) {
+		this.place = place;
+	}
+	
+	public Integer getUserId() {
+		return userId;
+	}
+	
+	public void setUserId(Integer userId) {
+		this.userId = userId;
+	}
+	
+	public String getServerCarModel() {
+		return serverCarModel;
+	}
+	
+	public void setServerCarModel(String serverCarModel) {
+		this.serverCarModel = serverCarModel;
+	}
+	
+	public Integer getServerCarModelId() {
+		return serverCarModelId;
+	}
+	
+	public void setServerCarModelId(Integer serverCarModelId) {
+		this.serverCarModelId = serverCarModelId;
+	}
+	
+	public Integer getDriverId() {
+		return driverId;
+	}
+	
+	public void setDriverId(Integer driverId) {
+		this.driverId = driverId;
+	}
+	
+	public Integer getCarId() {
+		return carId;
+	}
+	
+	public void setCarId(Integer carId) {
+		this.carId = carId;
+	}
+	
+	public String getOrderNum() {
+		return orderNum;
+	}
+	
+	public void setOrderNum(String orderNum) {
+		this.orderNum = orderNum;
+	}
+	
+	public Double getPlacementLon() {
+		return placementLon;
+	}
+	
+	public void setPlacementLon(Double placementLon) {
+		this.placementLon = placementLon;
+	}
+	
+	public Double getPlacementLat() {
+		return placementLat;
+	}
+	
+	public void setPlacementLat(Double placementLat) {
+		this.placementLat = placementLat;
+	}
+	
+	public String getPlacementAddress() {
+		return placementAddress;
+	}
+	
+	public void setPlacementAddress(String placementAddress) {
+		this.placementAddress = placementAddress;
+	}
+	
+	public Double getStartLon() {
+		return startLon;
+	}
+	
+	public void setStartLon(Double startLon) {
+		this.startLon = startLon;
+	}
+	
+	public Double getStartLat() {
+		return startLat;
+	}
+	
+	public void setStartLat(Double startLat) {
+		this.startLat = startLat;
+	}
+	
+	public String getStartAddress() {
+		return startAddress;
+	}
+	
+	public void setStartAddress(String startAddress) {
+		this.startAddress = startAddress;
+	}
+	
+	public Double getEndLon() {
+		return endLon;
+	}
+	
+	public void setEndLon(Double endLon) {
+		this.endLon = endLon;
+	}
+	
+	public Double getEndLat() {
+		return endLat;
+	}
+	
+	public void setEndLat(Double endLat) {
+		this.endLat = endLat;
+	}
+	
+	public String getEndAddress() {
+		return endAddress;
+	}
+	
+	public void setEndAddress(String endAddress) {
+		this.endAddress = endAddress;
+	}
+	
+	public Double getBoardingLon() {
+		return boardingLon;
+	}
+	
+	public void setBoardingLon(Double boardingLon) {
+		this.boardingLon = boardingLon;
+	}
+	
+	public Double getBoardingLat() {
+		return boardingLat;
+	}
+	
+	public void setBoardingLat(Double boardingLat) {
+		this.boardingLat = boardingLat;
+	}
+	
+	public String getBoardingAddress() {
+		return boardingAddress;
+	}
+	
+	public void setBoardingAddress(String boardingAddress) {
+		this.boardingAddress = boardingAddress;
+	}
+	
+	public Date getBoardingTime() {
+		return boardingTime;
+	}
+	
+	public void setBoardingTime(Date boardingTime) {
+		this.boardingTime = boardingTime;
+	}
+	
+	public Double getGetoffLon() {
+		return getoffLon;
+	}
+	
+	public void setGetoffLon(Double getoffLon) {
+		this.getoffLon = getoffLon;
+	}
+	
+	public Double getGetoffLat() {
+		return getoffLat;
+	}
+	
+	public void setGetoffLat(Double getoffLat) {
+		this.getoffLat = getoffLat;
+	}
+	
+	public String getGetoffAddress() {
+		return getoffAddress;
+	}
+	
+	public void setGetoffAddress(String getoffAddress) {
+		this.getoffAddress = getoffAddress;
+	}
+	
+	public Date getGetoffTime() {
+		return getoffTime;
+	}
+	
+	public void setGetoffTime(Date getoffTime) {
+		this.getoffTime = getoffTime;
+	}
+	
+	public Double getMileage() {
+		return mileage;
+	}
+	
+	public void setMileage(Double mileage) {
+		this.mileage = mileage;
+	}
+	
+	public Integer getPayManner() {
+		return payManner;
+	}
+	
+	public void setPayManner(Integer payManner) {
+		this.payManner = payManner;
+	}
+	
+	public Integer getPayType() {
+		return payType;
+	}
+	
+	public void setPayType(Integer payType) {
+		this.payType = payType;
+	}
+	
+	public Double getOrderMoney() {
+		return orderMoney;
+	}
+	
+	public void setOrderMoney(Double orderMoney) {
+		this.orderMoney = orderMoney;
+	}
+	
+	public Double getStartMileage() {
+		return startMileage;
+	}
+	
+	public void setStartMileage(Double startMileage) {
+		this.startMileage = startMileage;
+	}
+	
+	public Double getStartMoney() {
+		return startMoney;
+	}
+	
+	public void setStartMoney(Double startMoney) {
+		this.startMoney = startMoney;
+	}
+	
+	public Double getMileageKilometers() {
+		return mileageKilometers;
+	}
+	
+	public void setMileageKilometers(Double mileageKilometers) {
+		this.mileageKilometers = mileageKilometers;
+	}
+	
+	public Double getMileageMoney() {
+		return mileageMoney;
+	}
+	
+	public void setMileageMoney(Double mileageMoney) {
+		this.mileageMoney = mileageMoney;
+	}
+	
+	public Double getDuration() {
+		return duration;
+	}
+	
+	public void setDuration(Double duration) {
+		this.duration = duration;
+	}
+	
+	public Double getDurationMoney() {
+		return durationMoney;
+	}
+	
+	public void setDurationMoney(Double durationMoney) {
+		this.durationMoney = durationMoney;
+	}
+	
+	public Double getWait() {
+		return wait;
+	}
+	
+	public void setWait(Double wait) {
+		this.wait = wait;
+	}
+	
+	public Double getWaitMoney() {
+		return waitMoney;
+	}
+	
+	public void setWaitMoney(Double waitMoney) {
+		this.waitMoney = waitMoney;
+	}
+	
+	public Double getLongDistance() {
+		return longDistance;
+	}
+	
+	public void setLongDistance(Double longDistance) {
+		this.longDistance = longDistance;
+	}
+	
+	public Double getLongDistanceMoney() {
+		return longDistanceMoney;
+	}
+	
+	public void setLongDistanceMoney(Double longDistanceMoney) {
+		this.longDistanceMoney = longDistanceMoney;
+	}
+	
+	public Double getParkMoney() {
+		return parkMoney;
+	}
+	
+	public void setParkMoney(Double parkMoney) {
+		this.parkMoney = parkMoney;
+	}
+	
+	public Double getRoadTollMoney() {
+		return roadTollMoney;
+	}
+	
+	public void setRoadTollMoney(Double roadTollMoney) {
+		this.roadTollMoney = roadTollMoney;
+	}
+	
+	public Double getHolidayFee() {
+		return holidayFee;
+	}
+	
+	public void setHolidayFee(Double holidayFee) {
+		this.holidayFee = holidayFee;
+	}
+	
+	public Double getRedPacketMoney() {
+		return redPacketMoney;
+	}
+	
+	public void setRedPacketMoney(Double redPacketMoney) {
+		this.redPacketMoney = redPacketMoney;
+	}
+	
+	public Double getCouponMoney() {
+		return couponMoney;
+	}
+	
+	public void setCouponMoney(Double couponMoney) {
+		this.couponMoney = couponMoney;
+	}
+	
+	public Integer getRedPacketId() {
+		return redPacketId;
+	}
+	
+	public void setRedPacketId(Integer redPacketId) {
+		this.redPacketId = redPacketId;
+	}
+	
+	public Integer getCouponId() {
+		return couponId;
+	}
+	
+	public void setCouponId(Integer couponId) {
+		this.couponId = couponId;
+	}
+	
+	public Double getDiscount() {
+		return discount;
+	}
+	
+	public void setDiscount(Double discount) {
+		this.discount = discount;
+	}
+	
+	public Double getDiscountMoney() {
+		return discountMoney;
+	}
+	
+	public void setDiscountMoney(Double discountMoney) {
+		this.discountMoney = discountMoney;
+	}
+	
+	public Integer getActivityId() {
+		return activityId;
+	}
+	
+	public void setActivityId(Integer activityId) {
+		this.activityId = activityId;
+	}
+	
+	public Integer getTaxiCardId() {
+		return taxiCardId;
+	}
+	
+	public void setTaxiCardId(Integer taxiCardId) {
+		this.taxiCardId = taxiCardId;
+	}
+	
+	public Integer getUserTaxiCardId() {
+		return userTaxiCardId;
+	}
+	
+	public void setUserTaxiCardId(Integer userTaxiCardId) {
+		this.userTaxiCardId = userTaxiCardId;
+	}
+	
+	public Double getDiscountAmount() {
+		return discountAmount;
+	}
+	
+	public void setDiscountAmount(Double discountAmount) {
+		this.discountAmount = discountAmount;
+	}
+	
+	public Integer getCompanyId() {
+		return companyId;
+	}
+	
+	public void setCompanyId(Integer companyId) {
+		this.companyId = companyId;
+	}
+	
+	public Double getPayMoney() {
+		return payMoney;
+	}
+	
+	public void setPayMoney(Double payMoney) {
+		this.payMoney = payMoney;
+	}
+	
+	public Double getThankYouFee() {
+		return thankYouFee;
+	}
+	
+	public void setThankYouFee(Double thankYouFee) {
+		this.thankYouFee = thankYouFee;
+	}
+	
+	public Integer getSubstitute() {
+		return substitute;
+	}
+	
+	public void setSubstitute(Integer substitute) {
+		this.substitute = substitute;
+	}
+	
+	public String getPassengers() {
+		return passengers;
+	}
+	
+	public void setPassengers(String passengers) {
+		this.passengers = passengers;
+	}
+	
+	public String getPassengersPhone() {
+		return passengersPhone;
+	}
+	
+	public void setPassengersPhone(String passengersPhone) {
+		this.passengersPhone = passengersPhone;
+	}
+	
+	public Integer getState() {
+		return state;
+	}
+	
+	public void setState(Integer state) {
+		this.state = state;
+	}
+	
+	public Date getInsertTime() {
+		return insertTime;
+	}
+	
+	public void setInsertTime(Date insertTime) {
+		this.insertTime = insertTime;
+	}
+	
+	public Date getTravelTime() {
+		return travelTime;
+	}
+	
+	public void setTravelTime(Date travelTime) {
+		this.travelTime = travelTime;
+	}
+	
+	public Date getSnatchOrderTime() {
+		return snatchOrderTime;
+	}
+	
+	public void setSnatchOrderTime(Date snatchOrderTime) {
+		this.snatchOrderTime = snatchOrderTime;
+	}
+	
+	public Date getSetOutTime() {
+		return setOutTime;
+	}
+	
+	public void setSetOutTime(Date setOutTime) {
+		this.setOutTime = setOutTime;
+	}
+	
+	public Date getArriveTime() {
+		return arriveTime;
+	}
+	
+	public void setArriveTime(Date arriveTime) {
+		this.arriveTime = arriveTime;
+	}
+	
+	public Date getStartServiceTime() {
+		return startServiceTime;
+	}
+	
+	public void setStartServiceTime(Date startServiceTime) {
+		this.startServiceTime = startServiceTime;
+	}
+	
+	public Date getEndServiceTime() {
+		return endServiceTime;
+	}
+	
+	public void setEndServiceTime(Date endServiceTime) {
+		this.endServiceTime = endServiceTime;
+	}
+	
+	public Integer getOrderType() {
+		return orderType;
+	}
+	
+	public void setOrderType(Integer orderType) {
+		this.orderType = orderType;
+	}
+	
+	public Integer getOrderSource() {
+		return orderSource;
+	}
+	
+	public void setOrderSource(Integer orderSource) {
+		this.orderSource = orderSource;
+	}
+	
+	public Integer getInvoiceId() {
+		return invoiceId;
+	}
+	
+	public void setInvoiceId(Integer invoiceId) {
+		this.invoiceId = invoiceId;
+	}
+	
+	public Integer getIsReassign() {
+		return isReassign;
+	}
+	
+	public void setIsReassign(Integer isReassign) {
+		this.isReassign = isReassign;
+	}
+	
+	public Integer getReassignNotice() {
+		return reassignNotice;
+	}
+	
+	public void setReassignNotice(Integer reassignNotice) {
+		this.reassignNotice = reassignNotice;
+	}
+	
+	public String getTrackId() {
+		return trackId;
+	}
+	
+	public void setTrackId(String trackId) {
+		this.trackId = trackId;
+	}
+	
+	public Integer getIsDelete() {
+		return isDelete;
+	}
+	
+	public void setIsDelete(Integer isDelete) {
+		this.isDelete = isDelete;
+	}
+	
+	public Integer getOldState() {
+		return oldState;
+	}
+	
+	public void setOldState(Integer oldState) {
+		this.oldState = oldState;
+	}
+	
+	public String getTelX() {
+		return telX;
+	}
+	
+	public void setTelX(String telX) {
+		this.telX = telX;
+	}
+	
+	public String getBindId() {
+		return bindId;
+	}
+	
+	public void setBindId(String bindId) {
+		this.bindId = bindId;
+	}
+	
+	public String getSplitAllocation() {
+		return splitAllocation;
+	}
+	
+	public void setSplitAllocation(String splitAllocation) {
+		this.splitAllocation = splitAllocation;
+	}
+	
+	public String getTravelId() {
+		return travelId;
+	}
+	
+	public void setTravelId(String travelId) {
+		this.travelId = travelId;
+	}
+	
+	public Integer getIsCreated() {
+		return isCreated;
+	}
+	
+	public void setIsCreated(Integer isCreated) {
+		this.isCreated = isCreated;
+	}
+	
+	public Integer getRecoveryOrder() {
+		return recoveryOrder;
+	}
+	
+	public void setRecoveryOrder(Integer recoveryOrder) {
+		this.recoveryOrder = recoveryOrder;
+	}
+	
+	public Long getPromotionActivityId() {
+		return promotionActivityId;
+	}
+	
+	public void setPromotionActivityId(Long promotionActivityId) {
+		this.promotionActivityId = promotionActivityId;
+	}
+	
+	@Override public String toString() {
+	return "OrderPrivateCar{" +
+			"id=" + id +
+			", type=" + type +
+			", crossCityOrderId=" + crossCityOrderId +
+			", place=" + place +
+			", userId=" + userId +
+			", serverCarModel='" + serverCarModel + '\'' +
+			", serverCarModelId=" + serverCarModelId +
+			", driverId=" + driverId +
+			", carId=" + carId +
+			", orderNum='" + orderNum + '\'' +
+			", placementLon=" + placementLon +
+			", placementLat=" + placementLat +
+			", placementAddress='" + placementAddress + '\'' +
+			", startLon=" + startLon +
+			", startLat=" + startLat +
+			", startAddress='" + startAddress + '\'' +
+			", endLon=" + endLon +
+			", endLat=" + endLat +
+			", endAddress='" + endAddress + '\'' +
+			", boardingLon=" + boardingLon +
+			", boardingLat=" + boardingLat +
+			", boardingAddress='" + boardingAddress + '\'' +
+			", boardingTime=" + boardingTime +
+			", getoffLon=" + getoffLon +
+			", getoffLat=" + getoffLat +
+			", getoffAddress='" + getoffAddress + '\'' +
+			", getoffTime=" + getoffTime +
+			", mileage=" + mileage +
+			", payManner=" + payManner +
+			", payType=" + payType +
+			", orderMoney=" + orderMoney +
+			", startMileage=" + startMileage +
+			", startMoney=" + startMoney +
+			", mileageKilometers=" + mileageKilometers +
+			", mileageMoney=" + mileageMoney +
+			", duration=" + duration +
+			", durationMoney=" + durationMoney +
+			", wait=" + wait +
+			", waitMoney=" + waitMoney +
+			", longDistance=" + longDistance +
+			", longDistanceMoney=" + longDistanceMoney +
+			", parkMoney=" + parkMoney +
+			", roadTollMoney=" + roadTollMoney +
+			", holidayFee=" + holidayFee +
+			", redPacketMoney=" + redPacketMoney +
+			", couponMoney=" + couponMoney +
+			", redPacketId=" + redPacketId +
+			", couponId=" + couponId +
+			", discount=" + discount +
+			", discountMoney=" + discountMoney +
+			", activityId=" + activityId +
+			", taxiCardId=" + taxiCardId +
+			", userTaxiCardId=" + userTaxiCardId +
+			", discountAmount=" + discountAmount +
+			", companyId=" + companyId +
+			", payMoney=" + payMoney +
+			", thankYouFee=" + thankYouFee +
+			", substitute=" + substitute +
+			", passengers='" + passengers + '\'' +
+			", passengersPhone='" + passengersPhone + '\'' +
+			", state=" + state +
+			", insertTime=" + insertTime +
+			", travelTime=" + travelTime +
+			", snatchOrderTime=" + snatchOrderTime +
+			", setOutTime=" + setOutTime +
+			", arriveTime=" + arriveTime +
+			", startServiceTime=" + startServiceTime +
+			", endServiceTime=" + endServiceTime +
+			", orderType=" + orderType +
+			", orderSource=" + orderSource +
+			", invoiceId=" + invoiceId +
+			", isReassign=" + isReassign +
+			", reassignNotice=" + reassignNotice +
+			", trackId='" + trackId + '\'' +
+			", isDelete=" + isDelete +
+			", oldState=" + oldState +
+			", telX='" + telX + '\'' +
+			", bindId='" + bindId + '\'' +
+			", peopleNum=" + peopleNum +
+			", rideType=" + rideType +
+			", pid=" + pid +
+			", abnormal=" + abnormal +
+			", promotion=" + promotion +
+			", promotionUser='" + promotionUser + '\'' +
+			", promotionPhone='" + promotionPhone + '\'' +
+			", abnormalIntro='" + abnormalIntro + '\'' +
+			", abnormalImg='" + abnormalImg + '\'' +
+			", promotionDriverId=" + promotionDriverId +
+			", promotionMoney=" + promotionMoney +
+			", totalPeopleNum=" + totalPeopleNum +
+			", estimateMileage=" + estimateMileage +
+			", estimateTime=" + estimateTime +
+			", spellSuccess=" + spellSuccess +
+			", splitAllocation='" + splitAllocation + '\'' +
+			", responsibilityType=" + responsibilityType +
+			", promotionActivityId=" + promotionActivityId +
+			", travelId='" + travelId + '\'' +
+			", isCreated=" + isCreated +
+			", recoveryOrder=" + recoveryOrder +
+			'}';
+}}
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/IOrderPrivateCarService.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/IOrderPrivateCarService.java
index 19033bb..0c9e66c 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/IOrderPrivateCarService.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/IOrderPrivateCarService.java
@@ -154,7 +154,7 @@
      * @return
      * @throws Exception
      */
-    ResultUtil payPrivateCarOrder1(Integer payType, Integer orderId, Integer objectId, Integer objectType, Integer type)throws Exception;
+    ResultUtil payPrivateCarOrder1(Integer payType, Integer orderId, Integer objectId, Integer objectType, Integer type, String path, String ip)throws Exception;
 
 
 
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
index e65ee14..7236fab 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -11,7 +11,6 @@
 import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity;
 import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService;
 import com.stylefeng.guns.modular.crossCity.server.impl.OrderCrossCityServiceImpl;
-import com.stylefeng.guns.modular.smallLogistics.server.IOrderLogisticsService;
 import com.stylefeng.guns.modular.specialTrain.dao.OrderPrivateCarMapper;
 import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar;
 import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService;
@@ -20,6 +19,8 @@
 import com.stylefeng.guns.modular.system.model.vo.UnPayOrderVO;
 import com.stylefeng.guns.modular.system.service.*;
 import com.stylefeng.guns.modular.system.util.*;
+import com.stylefeng.guns.modular.system.util.qianyuntong.OrderUtil;
+import com.stylefeng.guns.modular.system.util.qianyuntong.model.*;
 import com.stylefeng.guns.modular.system.warpper.*;
 import com.stylefeng.guns.modular.taxi.dao.OrderTaxiMapper;
 import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
@@ -43,6 +44,7 @@
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
+import java.math.BigInteger;
 import java.math.MathContext;
 import java.math.RoundingMode;
 import java.text.SimpleDateFormat;
@@ -970,17 +972,71 @@
 					orderCancelService.saveData(orderPrivateCar1.getId(), 1, "无司机接单", "无司机接单", null, null, 2, 1, uid);
 					orderPrivateCar1.setState(10);
 					this.updateById(orderPrivateCar1);
+					
+					Driver driver1 = null;
+					Company company = null;
+					//中台修改订单状态
+					ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
+					request.setOrderId(orderPrivateCar1.getTravelId());
+					request.setStatus(orderPrivateCar1.getState());
+					if (null != orderPrivateCar1.getDriverId()) {
+						driver1 = driverService.selectById(orderPrivateCar1.getDriverId());
+						company = companyService.selectById(driver1.getCompanyId());
+						request.setDriverId(driver1.getEmpId().toString());
+						request.setSupplierShopId(company.getEnterCode());
+					}
+					if (2 == orderPrivateCar1.getPromotion()) {
+						Driver driver2 = driverService.selectById(orderPrivateCar1.getPromotionDriverId());
+						request.setPromoterId(driver2.getEmpId().toString());
+					}
+					OrderUtil.modifyTravelItinerary(request);
 				}
 				List<OrderTaxi> list1 = orderTaxiService.selectList(new EntityWrapper<OrderTaxi>().eq("type", 2).eq("crossCityOrderId", orderPrivateCar.getCrossCityOrderId()).eq("place", orderPrivateCar.getPlace()));
 				for (OrderTaxi orderTaxi : list1) {
 					orderCancelService.saveData(orderTaxi.getId(), 2, "无司机接单", "无司机接单", null, null, 2, 1, uid);
 					orderTaxi.setState(10);
 					orderTaxiService.updateById(orderTaxi);
+					
+					Driver driver1 = null;
+					Company company = null;
+					//中台修改订单状态
+					ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
+					request.setOrderId(orderTaxi.getTravelId());
+					request.setStatus(orderTaxi.getState());
+					if (null != orderTaxi.getDriverId()) {
+						driver1 = driverService.selectById(orderTaxi.getDriverId());
+						company = companyService.selectById(driver1.getCompanyId());
+						request.setDriverId(driver1.getEmpId().toString());
+						request.setSupplierShopId(company.getEnterCode());
+					}
+					if (2 == orderTaxi.getPromotion()) {
+						Driver driver2 = driverService.selectById(orderTaxi.getPromotionDriverId());
+						request.setPromoterId(driver2.getEmpId().toString());
+					}
+					OrderUtil.modifyTravelItinerary(request);
 				}
 			} else {
 				integer = orderCancelService.saveData(id, 1, "无司机接单", "无司机接单", null, null, 2, 1, uid);
 				orderPrivateCar.setState(10);
 				this.updateById(orderPrivateCar);
+				
+				Driver driver1 = null;
+				Company company = null;
+				//中台修改订单状态
+				ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
+				request.setOrderId(orderPrivateCar.getTravelId());
+				request.setStatus(orderPrivateCar.getState());
+				if (null != orderPrivateCar.getDriverId()) {
+					driver1 = driverService.selectById(orderPrivateCar.getDriverId());
+					company = companyService.selectById(driver1.getCompanyId());
+					request.setDriverId(driver1.getEmpId().toString());
+					request.setSupplierShopId(company.getEnterCode());
+				}
+				if (2 == orderPrivateCar.getPromotion()) {
+					Driver driver2 = driverService.selectById(orderPrivateCar.getPromotionDriverId());
+					request.setPromoterId(driver2.getEmpId().toString());
+				}
+				OrderUtil.modifyTravelItinerary(request);
 			}
 		} else {
 			OpenCity openCity = openCityService.openCity1(orderPrivateCar.getStartLon().toString(), orderPrivateCar.getStartLat().toString());
@@ -997,6 +1053,24 @@
 					this.updateById(orderPrivateCar);
 				}
 				this.deleteTask(id);//删除定时任务
+				
+				Driver driver1 = null;
+				Company company = null;
+				//中台修改订单状态
+				ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
+				request.setOrderId(orderPrivateCar.getTravelId());
+				request.setStatus(orderPrivateCar.getState());
+				if (null != orderPrivateCar.getDriverId()) {
+					driver1 = driverService.selectById(orderPrivateCar.getDriverId());
+					company = companyService.selectById(driver1.getCompanyId());
+					request.setDriverId(driver1.getEmpId().toString());
+					request.setSupplierShopId(company.getEnterCode());
+				}
+				if (2 == orderPrivateCar.getPromotion()) {
+					Driver driver2 = driverService.selectById(orderPrivateCar.getPromotionDriverId());
+					request.setPromoterId(driver2.getEmpId().toString());
+				}
+				OrderUtil.modifyTravelItinerary(request);
 				
 				new Thread(new Runnable() {
 					@Override
@@ -1114,6 +1188,24 @@
 				orderPrivateCar.setTelX("");
 				orderPrivateCar.setBindId("");
 				this.updateById(orderPrivateCar);
+				
+				Driver driver = null;
+				Company company = null;
+				//中台修改订单状态
+				ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
+				request.setOrderId(orderPrivateCar.getTravelId());
+				request.setStatus(orderPrivateCar.getState());
+				if (null != orderPrivateCar.getDriverId()) {
+					driver = driverService.selectById(orderPrivateCar.getDriverId());
+					company = companyService.selectById(driver.getCompanyId());
+					request.setDriverId(driver.getEmpId().toString());
+					request.setSupplierShopId(company.getEnterCode());
+				}
+				if (2 == orderPrivateCar.getPromotion()) {
+					Driver driver1 = driverService.selectById(orderPrivateCar.getPromotionDriverId());
+					request.setPromoterId(driver1.getEmpId().toString());
+				}
+				OrderUtil.modifyTravelItinerary(request);
 				
 				orderCancel.setState(2);
 				orderCancel.setPayType(3);
@@ -1907,8 +1999,7 @@
 	
 	@Override
 	@Transactional(propagation = Propagation.REQUIRES_NEW)
-	public ResultUtil payPrivateCarOrder1(Integer payType, Integer orderId, Integer objectId, Integer objectType, Integer type) throws Exception {
-		
+	public ResultUtil payPrivateCarOrder1(Integer payType, Integer orderId, Integer objectId, Integer objectType, Integer type, String path, String ip) throws Exception {
 		OrderPrivateCar orderPrivateCar = this.selectById(orderId);
 		if (orderPrivateCar.getState() == 8 || orderPrivateCar.getState() == 9) {
 			return ResultUtil.error("订单已完成支付,不允许重复支付", new ArrayList<>());
@@ -1927,7 +2018,7 @@
 		UserCouponRecord userCouponRecord = null;
 		if (null != objectId && objectType == 1) {
 			userCouponRecord = userCouponRecordService.selectById(objectId);
-			if (userCouponRecord.getCompanyId() != orderPrivateCar.getCompanyId()) {
+			if (userCouponRecord.getCompanyId().compareTo(orderPrivateCar.getCompanyId()) != 0) {
 				return ResultUtil.error("优惠券不能用于此订单", new ArrayList<>());
 			}
 			if (userCouponRecord.getState() == 2) {
@@ -2084,8 +2175,57 @@
 			if (orderMoney == 0) {
 				return ResultUtil.error("请使用余额支付");
 			}
-			String app = type == 1 ? "APP" : "JSAPI";
-			resultUtil = payMoneyUtil.weixinpay("完成订单", "", orderId + "_1_" + UUIDUtil.getRandomCode(5), orderMoney.toString(), "/base/wxPayOrderTaxi", app, userInfo.getAppletsOpenId());
+//			String app = type == 1 ? "APP" : "JSAPI";
+//			resultUtil = payMoneyUtil.weixinpay("完成订单", "", orderId + "_1_" + UUIDUtil.getRandomCode(5), orderMoney.toString(), "/base/wxPayOrderTaxi", app, userInfo.getAppletsOpenId());
+			
+			Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
+			if(null == orderPrivateCar.getIsCreated() || 0 == orderPrivateCar.getIsCreated()){
+				//调用中台创建订单及拉起支付接口
+				TradeOrderCreateData tradeOrderCreateData = new TradeOrderCreateData();
+				tradeOrderCreateData.setTreatShopId(driver.getEmpId().toString());
+				tradeOrderCreateData.setField1("{\"profitSharing\":\"1\",\"isPromote\":\"" + (orderPrivateCar.getPromotion() == 2 ? 1 : 0) + "\"}");
+				tradeOrderCreateData.setCharge(new BigDecimal(orderMoney));
+				tradeOrderCreateData.setOrderId(orderPrivateCar.getTravelId());
+				tradeOrderCreateData.setOrderNo("PR" + orderPrivateCar.getId());
+				tradeOrderCreateData.setCustomerId(userInfo.getOnconUUID());
+				tradeOrderCreateData.setPartnerPayId(orderPrivateCar.getTravelId());
+				tradeOrderCreateData.setTotalFee(Double.valueOf(orderMoney * 100).intValue() + "");
+				tradeOrderCreateData.setOrderDesc("完成订单");
+				tradeOrderCreateData.setRetUrl(path);
+				tradeOrderCreateData.setClientIp(ip);
+				
+				List<GoodsInfoRequest> goodsInfo = new ArrayList<>();
+				GoodsInfoRequest goodsInfoRequest = new GoodsInfoRequest();
+				goodsInfoRequest.setSubOpenId(userInfo.getAppletsOpenId());
+				goodsInfo.add(goodsInfoRequest);
+				tradeOrderCreateData.setGoodsInfo(goodsInfo);
+				TradeOrderCreate tradeOrderCreate = OrderUtil.tradeOrderCreate1(tradeOrderCreateData);
+				PayInfo payInfo = tradeOrderCreate.getPayInfo();
+				if(!"000000".equals(payInfo.getRetCode())){
+					return ResultUtil.error(payInfo.getRetMsg());
+				}
+				orderPrivateCar.setIsCreated(1);
+				resultUtil = ResultUtil.success(payInfo.getData().getRedirectUrl());
+			}else{
+				//拉起支付
+				TradePayOff1Data tradePayOff1Data = new TradePayOff1Data();
+				tradePayOff1Data.setPartnerPayId("PR" + orderPrivateCar.getId());
+				tradePayOff1Data.setTotalFee(Double.valueOf(orderMoney * 100).intValue() + "");
+				tradePayOff1Data.setRetUrl(path);
+				tradePayOff1Data.setClientIp(ip);
+				tradePayOff1Data.setOrderDesc("完成订单");
+				List<GoodsInfoRequest> goodsInfo = new ArrayList<>();
+				GoodsInfoRequest goodsInfoRequest = new GoodsInfoRequest();
+				goodsInfoRequest.setSubOpenId(userInfo.getAppletsOpenId());
+				goodsInfo.add(goodsInfoRequest);
+				tradePayOff1Data.setGoodsInfo(goodsInfo);
+				PayInfo payInfo = OrderUtil.tradePayOff1(tradePayOff1Data);
+				if(!"000000".equals(payInfo.getRetCode())){
+					return ResultUtil.error(payInfo.getRetMsg());
+				}
+				resultUtil = ResultUtil.success(payInfo.getData().getRedirectUrl());
+			}
+			
 			paymentRecordService.saveData(1, orderPrivateCar.getUserId(), 1, orderId, 1, 1, orderMoney, "", 1);//添加预支付数据
 		}
 		if (payType == 2) {//支付宝支付
@@ -2099,12 +2239,7 @@
 			if (userInfo.getBalance() == null || userInfo.getBalance() < orderMoney) {
 				return ResultUtil.error("余额不足,无法完成支付");
 			}
-//            if(orderMoney > 0){
-//                resultUtil= appOrderController.moneyPay(orderId,userInfo.getId(),orderMoney);
-//                if(resultUtil.getCode()==500){
-//                    return ResultUtil.error("电子余额不足,无法完成支付");
-//                }
-//            }
+
 			userInfo.setBalance(new BigDecimal(userInfo.getBalance()).subtract(new BigDecimal(orderMoney)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
 			
 			OpenCity openCity = openCityService.openCity1(orderPrivateCar.getStartLon().toString(), orderPrivateCar.getStartLat().toString());
@@ -2277,6 +2412,24 @@
 			orderPrivateCar.setTelX("");
 			this.updateById(orderPrivateCar);
 			
+			Driver driver = null;
+			Company company = null;
+			//中台修改订单状态
+			ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
+			request.setOrderId(orderPrivateCar.getTravelId());
+			request.setStatus(orderPrivateCar.getState());
+			if (null != orderPrivateCar.getDriverId()) {
+				driver = driverService.selectById(orderPrivateCar.getDriverId());
+				company = companyService.selectById(driver.getCompanyId());
+				request.setDriverId(driver.getEmpId().toString());
+				request.setSupplierShopId(company.getEnterCode());
+			}
+			if (2 == orderPrivateCar.getPromotion()) {
+				Driver driver1 = driverService.selectById(orderPrivateCar.getPromotionDriverId());
+				request.setPromoterId(driver1.getEmpId().toString());
+			}
+			OrderUtil.modifyTravelItinerary(request);
+			
 			query.setState(2);
 			query.setCode(order_id);
 			paymentRecordService.updateById(query);
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Company.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Company.java
index 85597bd..f8dad4f 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Company.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Company.java
@@ -284,6 +284,11 @@
      */
     @TableField("OnCall")
     private String OnCall;
+    /**
+     * 中台企业编号
+     */
+    @TableField("enterCode")
+    private String enterCode;
 
 
     public String getDetailAddress() {
@@ -733,7 +738,15 @@
     public void setOnCall(String onCall) {
         OnCall = onCall;
     }
-
+    
+    public String getEnterCode() {
+        return enterCode;
+    }
+    
+    public void setEnterCode(String enterCode) {
+        this.enterCode = enterCode;
+    }
+    
     @Override
     public String toString() {
         return "Company{" +
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Driver.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Driver.java
index c853450..3b92e0c 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Driver.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Driver.java
@@ -335,6 +335,21 @@
      */
     @TableField("qrCode")
     private String qrCode;
+    /**
+     * 中台员工ID
+     */
+    @TableField("empId")
+    private Long empId;
+    /**
+     * 中台员工所属企业ID
+     */
+    @TableField("enterId")
+    private Long enterId;
+    /**
+     * 中台员工所属企业编号
+     */
+    @TableField("entercode")
+    private String entercode;
 
     public String getQrCode() {
         return qrCode;
@@ -841,7 +856,31 @@
     public void setAppletsOpenId(String appletsOpenId) {
         this.appletsOpenId = appletsOpenId;
     }
-
+    
+    public Long getEmpId() {
+        return empId;
+    }
+    
+    public void setEmpId(Long empId) {
+        this.empId = empId;
+    }
+    
+    public Long getEnterId() {
+        return enterId;
+    }
+    
+    public void setEnterId(Long enterId) {
+        this.enterId = enterId;
+    }
+    
+    public String getEntercode() {
+        return entercode;
+    }
+    
+    public void setEntercode(String entercode) {
+        this.entercode = entercode;
+    }
+    
     @Override
     public String toString() {
         return "Driver{" +
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserInfo.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserInfo.java
index c8c15e7..a941215 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserInfo.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserInfo.java
@@ -145,6 +145,11 @@
      */
 
     private Date bindExpireDate;
+    /**
+     * 中台用户ID
+     */
+    @TableField("onconUUID")
+    private String onconUUID;
 
 
     private Date bindDate;
@@ -364,7 +369,15 @@
     public void setAppletsOpenId(String appletsOpenId) {
         this.appletsOpenId = appletsOpenId;
     }
-
+    
+    public String getOnconUUID() {
+        return onconUUID;
+    }
+    
+    public void setOnconUUID(String onconUUID) {
+        this.onconUUID = onconUUID;
+    }
+    
     @Override
     public String toString() {
         return "UserInfo{" +
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/pdf/TripSheetGenerator.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/pdf/TripSheetGenerator.java
index 23c7f29..9e2e2f8 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/pdf/TripSheetGenerator.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/pdf/TripSheetGenerator.java
@@ -43,7 +43,7 @@
             throw new IllegalArgumentException("订单列表不能为空");
         }
 
-        String fileName = "行程单_" + UUID.randomUUID() + ".pdf";
+        String fileName = "贵人家园行程单_" + UUID.randomUUID() + ".pdf";
         String filePath = pdfDir + fileName;
         File file = new File(filePath);
         FileUtils.forceMkdirParent(file);
@@ -303,11 +303,6 @@
         table.addCell(cell);
     }
 
-    private void addTableCell(PdfPTable table, String text, Font font) {
-        PdfPCell cell = new PdfPCell(new Paragraph(text != null ? text : "", font));
-        cell.setPadding(5);
-        table.addCell(cell);
-    }
 
     /**
      * 获取中文字体,优先自定义字体,fallback到 CJK 内置
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java
index c02d01d..7987767 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java
@@ -157,6 +157,7 @@
                 
                 serverCarModelWarpper.setContentExclusive(contentExclusive);
                 serverCarModelWarpper.setContentPrice(contentPrice);
+                serverCarModelWarpper.setWaitPrice(jsonObject);
                 
                 serverCarModelWarpper.setAmount(this.calculationPrice(contentExclusive, distance, duration, wait, waitMoney));
                 serverCarModelWarpper.setBuyNowAmount(this.calculationPrice(contentPrice, distance, duration, wait, waitMoney));
@@ -296,7 +297,7 @@
         serverCarModelWarpper.setContentNotTwo(new JSONObject());
         serverCarModelWarpper.setContentPutThree(new JSONObject());
         serverCarModelWarpper.setContentNotThree(new JSONObject());
-        serverCarModelWarpper.setContentExclusive(new JSONObject());
+        serverCarModelWarpper.setContentExclusive(jsonObject);
         serverCarModelWarpper.setContentPrice(new JSONObject());
         
         return serverCarModelWarpper;
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java
index 37042ea..42947b9 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java
@@ -27,7 +27,6 @@
 import com.stylefeng.guns.modular.taxi.model.PaymentRecord;
 import com.stylefeng.guns.modular.taxi.service.IPaymentRecordService;
 import com.stylefeng.guns.modular.taxi.service.ITransactionDetailsService;
-import org.apache.commons.lang.time.DateUtils;
 import org.apache.shiro.authc.SimpleAuthenticationInfo;
 import org.apache.shiro.authc.UsernamePasswordToken;
 import org.apache.shiro.authc.credential.HashedCredentialsMatcher;
@@ -51,7 +50,6 @@
 import java.net.URLConnection;
 import java.security.spec.AlgorithmParameterSpec;
 import java.text.SimpleDateFormat;
-import java.time.LocalDateTime;
 import java.util.*;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.locks.Lock;
@@ -236,6 +234,7 @@
         }
         //调中台接口查询用户
         List<QYTUserInfo> infoByPhone = UserUtil.getUserInfoByPhone(phone);
+        String onconUUID = null;
         if (null == infoByPhone || infoByPhone.isEmpty()) {
             RegisterViaMobileRequest request = new RegisterViaMobileRequest();
             request.setMobile(phone);
@@ -248,6 +247,7 @@
             if (!"0".equals(register.getStatus())) {
                 return ResultUtil.error(register.getDesc());
             }
+            onconUUID = register.getOnconUUID();
         } else {
             boolean b = this.checkCaptcha(phone, code);
             if (!b) {
@@ -265,6 +265,9 @@
             userInfo.setConsumption(0D);
             userInfo.setBalance(0D);
             userInfo.setState(1);
+            if(null != onconUUID){
+                userInfo.setOnconUUID(onconUUID);
+            }
 
             //用户所属企业
             if(null != registAreaCode){
@@ -868,7 +871,8 @@
             nickName = userInfo.getNickName();
         }
         //调中台接口查询用户
-        List<QYTUserInfo> infoByPhone = UserUtil.getUserInfoByPhone(phone);
+        String onconUUID = null;
+                List<QYTUserInfo> infoByPhone = UserUtil.getUserInfoByPhone(phone);
         if (null == infoByPhone || infoByPhone.isEmpty()) {
             RegisterViaMobileRequest request = new RegisterViaMobileRequest();
             request.setMobile(phone);
@@ -881,6 +885,7 @@
             if (!"0".equals(register.getStatus())) {
                 return ResultUtil.error(register.getDesc());
             }
+            onconUUID = register.getOnconUUID();
         } else {
             boolean b = this.checkCaptcha(phone, code);
             if (!b) {
@@ -895,6 +900,7 @@
             userInfo1.setAvatar(userInfo.getAvatar());
             userInfo1.setSex(userInfo.getSex());
             userInfo1.setNickName(userInfo.getNickName());
+            userInfo1.setOnconUUID(onconUUID);
             this.updateById(userInfo1);
         
             if (ToolUtil.isNotEmpty(loginType) && loginType.equals("Applets")) {//小程序登录后绑定手机号码
@@ -944,7 +950,7 @@
             loginWarpper.setPhone(2);
             return ResultUtil.success(loginWarpper);
         }
-    
+        userInfo.setOnconUUID(onconUUID);
         userInfo.setPhone(phone);
         userInfo.setUpdateTime(new Date());
         userInfo.setUpdateUser(userInfo.getId());
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/EmailUtil.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/EmailUtil.java
index e09f2dd..0e436a9 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/EmailUtil.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/EmailUtil.java
@@ -9,7 +9,9 @@
 import org.springframework.stereotype.Service;
 import javax.mail.MessagingException;
 import javax.mail.internet.MimeMessage;
+import javax.mail.internet.MimeUtility;
 import java.io.File;
+import java.io.UnsupportedEncodingException;
 
 @Component
 public class EmailUtil {
@@ -24,7 +26,7 @@
         this.javaMailSender = javaMailSender;
     }
 
-    public void sendEmailWithAttachment(String to, String subject, String text, File attachment) throws MessagingException {
+    public void sendEmailWithAttachment(String to, String subject, String text, File attachment,String displayFileName) throws MessagingException, UnsupportedEncodingException {
         MimeMessage message = javaMailSender.createMimeMessage();
         MimeMessageHelper helper = new MimeMessageHelper(message, true);
 
@@ -35,8 +37,12 @@
         // 设置邮件主题和内容
         helper.setSubject(subject);
         helper.setText(text);
-        // 添加附件
-        helper.addAttachment(attachment.getName(), attachment);
+        // 使用显示文件名而非原文件名
+        helper.addAttachment(
+                MimeUtility.encodeWord(displayFileName),  // 编码避免中文乱码
+                attachment
+        );
+
 
         // 发送邮件
         javaMailSender.send(message);
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java
index bcec77b..c04c6f3 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java
@@ -1,86 +1,169 @@
 package com.stylefeng.guns.modular.system.util;
 
 
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.stylefeng.guns.modular.account.controller.AppOrderController;
 import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService;
 import com.stylefeng.guns.modular.smallLogistics.server.IOrderLogisticsService;
+import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar;
 import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService;
+import com.stylefeng.guns.modular.system.model.UserInfo;
 import com.stylefeng.guns.modular.system.service.IUserCouponRecordService;
+import com.stylefeng.guns.modular.system.service.IUserInfoService;
 import com.stylefeng.guns.modular.system.service.IUserMerchantCouponService;
+import com.stylefeng.guns.modular.system.util.qianyuntong.OrderUtil;
+import com.stylefeng.guns.modular.system.util.qianyuntong.SMSUtil;
+import com.stylefeng.guns.modular.system.util.qianyuntong.model.*;
+import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
 import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 
 /**
  * 定时任务工具类
  */
+@Slf4j
 @Component
 public class TaskUtil {
-
-    @Autowired
-    private IUserCouponRecordService userCouponRecordService;
-
-    @Autowired
-    private IUserMerchantCouponService userMerchantCouponService;
-
-    @Autowired
-    private AppOrderController appOrderController;
-
-    @Autowired
-    private IOrderPrivateCarService orderPrivateCarService;
-
-
-    @Autowired
-    private IOrderCrossCityService orderCrossCityService;
-
-    @Autowired
-    private IOrderLogisticsService orderLogisticsService;
-
-    @Autowired
-    private IOrderTaxiService orderTaxiService;
-
-    @Autowired
-    private  ChinaMobileUtil chinaMobileUtil;
-
-
-
-    /**
-     * 每隔一分钟去处理的定时任务
-     */
-    @Scheduled(fixedRate = 1000 * 60)
-    public void taskMinute(){
-        try {
-
-            //修改过期的优惠券
-            userCouponRecordService.updateTimeOut();
-            //修改过期的商家优惠券
-            userMerchantCouponService.updateExpired();
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
-
-
-    /**
-     * 每天的凌晨执行的任务
-     */
-    @Scheduled(fixedRate = 1000 * 60)
-    public void taskDay(){
-    }
-
-
-//
-//    /**
-//     * 每月第一天的1点执行的任务
-//     */
-//    @Scheduled(cron = "0 0 1 1 * *")
-//    public void taskMonth(){
-//        try {
-//
-//        }catch (Exception e){
-//            e.printStackTrace();
-//        }
-//    }
+	
+	@Autowired
+	private IUserCouponRecordService userCouponRecordService;
+	
+	@Autowired
+	private IUserMerchantCouponService userMerchantCouponService;
+	
+	@Autowired
+	private AppOrderController appOrderController;
+	
+	@Autowired
+	private IOrderPrivateCarService orderPrivateCarService;
+	
+	
+	@Autowired
+	private IOrderCrossCityService orderCrossCityService;
+	
+	@Autowired
+	private IOrderLogisticsService orderLogisticsService;
+	
+	@Autowired
+	private IOrderTaxiService orderTaxiService;
+	
+	@Autowired
+	private ChinaMobileUtil chinaMobileUtil;
+	
+	@Autowired
+	private IUserInfoService userInfoService;
+	
+	
+	/**
+	 * 每隔一分钟去处理的定时任务
+	 */
+	@Scheduled(fixedRate = 1000 * 60)
+	public void taskMinute() {
+		try {
+			//修改过期的优惠券
+			userCouponRecordService.updateTimeOut();
+			//修改过期的商家优惠券
+			userMerchantCouponService.updateExpired();
+			//处理超时未支付的订单
+			
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+	
+	
+	/**
+	 * 每天的凌晨执行的任务
+	 */
+	@Scheduled(fixedRate = 1000 * 60)
+	public void taskDay() {
+	}
+	
+	
+	/**
+	 * 每天中午12点发送提醒短信
+	 */
+	@Scheduled(cron = "0 0 12 * * ?")
+	public void taskMonth() {
+		try {
+			List<OrderPrivateCar> orderPrivateCars = orderPrivateCarService.selectList(new EntityWrapper<OrderPrivateCar>().eq("isDelete", 1)
+					.eq("state", 7).eq("abnormal", 1)
+					.last(" and now() > DATE_ADD(endServiceTime, INTERVAL 24 HOUR)"));
+			for (OrderPrivateCar orderPrivateCar : orderPrivateCars) {
+				UserInfo userInfo = userInfoService.selectById(orderPrivateCar.getUserId());
+				SendSmsRequest request = new SendSmsRequest();
+				request.setDestAddress(userInfo.getPhone());
+				request.setTemplateId("TPL202507300002");
+				Map<String, String> templateParams = new HashMap<>();
+				request.setTemplateParams(templateParams);
+				request.setSpId("Y86asr7J");
+				SMSUtil.sendSms(request);
+			}
+			List<OrderTaxi> orderTaxis = orderTaxiService.selectList(new EntityWrapper<OrderTaxi>().eq("isDelete", 1)
+					.eq("state", 7).eq("abnormal", 1)
+					.last(" and now() > DATE_ADD(endServiceTime, INTERVAL 24 HOUR)"));
+			for (OrderTaxi orderTaxi : orderTaxis) {
+				UserInfo userInfo = userInfoService.selectById(orderTaxi.getUserId());
+				SendSmsRequest request = new SendSmsRequest();
+				request.setDestAddress(userInfo.getPhone());
+				request.setTemplateId("TPL202507300002");
+				Map<String, String> templateParams = new HashMap<>();
+				request.setTemplateParams(templateParams);
+				request.setSpId("Y86asr7J");
+				SMSUtil.sendSms(request);
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+	
+	
+	/**
+	 * 大于24小时未支付的订单
+	 */
+	public void timoutNoPayment() {
+		List<OrderPrivateCar> orderPrivateCars = orderPrivateCarService.selectList(new EntityWrapper<OrderPrivateCar>().eq("state", 7)
+				.eq("isDelete", 1).eq("recoveryOrder", 0).last(" and now() >= DATE_ADD(insertTime, INTERVAL 24 HOUR)"));
+		for (OrderPrivateCar orderPrivateCar : orderPrivateCars) {
+			//使用备付金进行支付订单
+			TradePayOffData tradePayOffData = new TradePayOffData();
+			tradePayOffData.setPartnerPayId("PR" + orderPrivateCar.getId());
+			tradePayOffData.setTotalFee(Double.valueOf(orderPrivateCar.getOrderMoney() * 100).intValue() + "");
+			tradePayOffData.setOrderDesc("完成订单");
+			PayInfo payInfo = OrderUtil.tradePayOff(tradePayOffData);
+			String retCode = payInfo.getRetCode();
+			if(!"000000".equals(retCode)){
+				log.error("备付金支付失败:{}", payInfo.getRetMsg());
+				continue;
+			}
+			PayInfoData data = payInfo.getData();
+			String status = data.getStatus();
+			if("3".equals(status)){
+				log.error("备付金支付失败:{}", payInfo.getRetMsg());
+				continue;
+			}
+			//copy原始订单后生成追缴单
+			OrderPrivateCar orderPrivateCar1 = new OrderPrivateCar();
+			BeanUtils.copyProperties(orderPrivateCar, orderPrivateCar1);
+			orderPrivateCar1.setId(null);
+			orderPrivateCar1.setRecoveryOrder(1);
+			
+			//修改原始订单为支付状态
+			orderPrivateCar.setState(8);
+			orderPrivateCar.setPayType(5);
+			orderPrivateCar.setPayMoney(orderPrivateCar.getOrderMoney());
+			orderPrivateCarService.updateById(orderPrivateCar);
+			orderPrivateCarService.insert(orderPrivateCar1);
+		}
+	}
 }
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java
index cb09fb2..38413d1 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java
@@ -10,6 +10,7 @@
 import com.stylefeng.guns.modular.system.util.qianyuntong.model.*;
 import lombok.extern.slf4j.Slf4j;
 
+import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.util.*;
 
@@ -26,19 +27,19 @@
 //		CreateTravelItineraryRequest request = new CreateTravelItineraryRequest();
 //		request.setScene("TRAFFIC");
 //		request.setPartnerId("522700");
-//		request.setOrderNo("0123456");
+//		request.setOrderNo("3456789012345678");
 //		request.setCustomerId("11448156");
 //		request.setDriverId("11448158");
 //		request.setSupplierShopId("981100006005951");
 //		request.setServiceType(1);
 //		String travelItinerary = createTravelItinerary(request);
-//		System.err.println(travelItinerary);//1948685426689200128
+//		System.err.println(travelItinerary);//1951088602595872768
 		
 		//修改行程状态
 //		ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
 //		request.setScene("TRAFFIC");
 //		request.setPartnerId("522700");
-//		request.setOrderId("1948685426689200128");
+//		request.setOrderId("1951088602595872768");
 //		request.setStatus(7);
 //		request.setDriverId("11448158");
 //		request.setSupplierShopId("981100006005951");
@@ -53,24 +54,24 @@
 //		tradeOrderCreateData.setField1("{\"profitSharing\":\"1\",\"isPromote\":\"0\"}");
 //		tradeOrderCreateData.setCharge(new BigDecimal("0.01"));
 //		tradeOrderCreateData.setChannelSource("GRJYCXWXXCX");
-//		tradeOrderCreateData.setOrderId("1948685426689200128");
-//		tradeOrderCreateData.setOrderNo("0123456");
+//		tradeOrderCreateData.setOrderId("1951088602595872768");
+//		tradeOrderCreateData.setOrderNo("3456789012345678");
 //		tradeOrderCreateData.setCustomerId("11448156");
 //		tradeOrderCreateData.setPayPartnerId("5400004");
-//		tradeOrderCreateData.setPartnerPayId("1948685426689200128");
+//		tradeOrderCreateData.setPartnerPayId("1951088602595872768");
 //		tradeOrderCreateData.setCurrency("RMB");
 //		tradeOrderCreateData.setTotalFee("1");
-//		tradeOrderCreateData.setRetUrl("/home/");
+//		tradeOrderCreateData.setRetUrl("pages/advoad-city-search/advoad-message/electronic-wait-pay/electronic-wait-pay");
 //		tradeOrderCreateData.setClientIp("127.0.0.1");
 //		tradeOrderCreateData.setNeedLoginFlag("N");
 //		tradeOrderCreateData.setOrderDesc("出行订单支付");
-//		tradeOrderCreateData.setAccessMode("H5");
+//		tradeOrderCreateData.setAccessMode("APP");
 //
 //		List<GoodsInfoRequest> goodsInfo = new ArrayList<>();
 //		GoodsInfoRequest goodsInfoRequest = new GoodsInfoRequest();
 //		goodsInfoRequest.setId("981100006005901");
-//		goodsInfoRequest.setSubAppId("wxcbad113185a243e1");
-//		goodsInfoRequest.setSubOpenId("oVLur6yFtED8ruXBWUFKXjzXJ_BQ");
+//		goodsInfoRequest.setSubAppId("wxcc3c9058e2b294db");
+//		goodsInfoRequest.setSubOpenId("oVLur61wBKJEO7QPR1dsmzS5TSfs");
 //		goodsInfoRequest.setProfitSharing("1");
 //		goodsInfoRequest.setAreaInfo("520100");
 //		goodsInfoRequest.setPayType("0");
@@ -79,7 +80,7 @@
 //		tradeOrderCreateData.setGoodsInfo(goodsInfo);
 //		TradeOrderCreate tradeOrderCreate = tradeOrderCreate1(tradeOrderCreateData);
 //		System.err.println(tradeOrderCreate);
-//		//TradeOrderCreate(orderInfo=OrderInfo(orderId=1948685426689200128, status=null), payInfo=PayInfo(retCode=000000, retMsg=success, success=true, data=PayInfoData(redirectUrl=https://qhsctest.qytzt.cn/gray/mobile/index.html?f=allCashDesk&accessToken=5nUBXayFpfZz%2FXUZiMu9L61szNy2MhjTJ938TeNnX0U%3D, payId=540000420250725000135548, status=null, payTime=null, payFee=null, paymentInfos=null), sign=c9d849ee21dcc401cee968d4d31de04f))
+		//TradeOrderCreate(orderInfo=OrderInfo(orderId=1950072223939842048, status=null), payInfo=PayInfo(retCode=000000, retMsg=success, success=true, data=PayInfoData(redirectUrl=https://qhsctest.qytzt.cn/gray/mobile/index.html?f=allCashDesk&accessToken=It5FPM1DUjzwIAin7zwiHvUANWKC6I5USCLE8EKoRkg%3D, payId=540000420250729000135600, status=null, payTime=null, payFee=null, paymentInfos=null), sign=525cb843b1eeb5a0451eeb5fbbe02f0f))
 		
 		//查询支付单信息
 //		GetPaymentInfoDataRequest getPaymentInfoDataRequest = new GetPaymentInfoDataRequest();
@@ -89,30 +90,30 @@
 //		System.err.println(getPaymentInfo);
 		
 		//拉起支付
-//		TradePayOff1Data tradePayOff1Data = new TradePayOff1Data();
-//		tradePayOff1Data.setPartnerId("5400004");
-//		tradePayOff1Data.setScene("TRAFFIC");
-//		tradePayOff1Data.setPartnerPayId("1948685426689200128");
-//		tradePayOff1Data.setCurrency("RMB");
-//		tradePayOff1Data.setTotalFee("1");
-//		tradePayOff1Data.setRetUrl("/home/");
-//		tradePayOff1Data.setClientIp("127.0.0.1");
-//		tradePayOff1Data.setNeedLoginFlag("N");
-//		tradePayOff1Data.setOrderDesc("出行订单支付");
-//		tradePayOff1Data.setAccessMode("APP");
-//		List<GoodsInfoRequest> goodsInfo = new ArrayList<>();
-//		GoodsInfoRequest goodsInfoRequest = new GoodsInfoRequest();
-//		goodsInfoRequest.setId("981100006005901");
-//		goodsInfoRequest.setSubAppId("wxcbad113185a243e1");
-//		goodsInfoRequest.setSubOpenId("oVLur6yFtED8ruXBWUFKXjzXJ_BQ");
-//		goodsInfoRequest.setProfitSharing("1");
-//		goodsInfoRequest.setAreaInfo("520100");
-//		goodsInfoRequest.setPayType("0");
-//		goodsInfoRequest.setBusinessType("10408");
-//		goodsInfo.add(goodsInfoRequest);
-//		tradePayOff1Data.setGoodsInfo(goodsInfo);
-//		PayInfo payInfo = tradePayOff1(tradePayOff1Data);
-//		System.err.println(payInfo);
+		TradePayOff1Data tradePayOff1Data = new TradePayOff1Data();
+		tradePayOff1Data.setPartnerId("5400004");
+		tradePayOff1Data.setScene("TRAFFIC");
+		tradePayOff1Data.setPartnerPayId("1951088602595872768");
+		tradePayOff1Data.setCurrency("RMB");
+		tradePayOff1Data.setTotalFee("1");
+		tradePayOff1Data.setRetUrl("pages/advoad-city-search/advoad-message/electronic-wait-pay/electronic-wait-pay");
+		tradePayOff1Data.setClientIp("127.0.0.1");
+		tradePayOff1Data.setNeedLoginFlag("N");
+		tradePayOff1Data.setOrderDesc("出行订单支付");
+		tradePayOff1Data.setAccessMode("APP");
+		List<GoodsInfoRequest> goodsInfo = new ArrayList<>();
+		GoodsInfoRequest goodsInfoRequest = new GoodsInfoRequest();
+		goodsInfoRequest.setId("981100006005901");
+		goodsInfoRequest.setSubAppId("wxcc3c9058e2b294db");
+		goodsInfoRequest.setSubOpenId("oVLur61wBKJEO7QPR1dsmzS5TSfs");
+		goodsInfoRequest.setProfitSharing("1");
+		goodsInfoRequest.setAreaInfo("520100");
+		goodsInfoRequest.setPayType("0");
+		goodsInfoRequest.setBusinessType("10408");
+		goodsInfo.add(goodsInfoRequest);
+		tradePayOff1Data.setGoodsInfo(goodsInfo);
+		PayInfo payInfo = tradePayOff1(tradePayOff1Data);
+		System.err.println(payInfo);
 		//PayInfo(retCode=000000, retMsg=success, success=true, data=PayInfoData(redirectUrl=https://qhsctest.qytzt.cn/gray/mobile/index.html?f=allCashDesk&accessToken=5nUBXayFpfZz%2FXUZiMu9LzeRXmqmlqaCS%2BHfu5udIt4%3D, payId=540000420250725000135549, status=null, payTime=null, payFee=null, paymentInfos=null), sign=8154ba2728280900b122c56352c1c7fe)
 		
 		
@@ -178,6 +179,21 @@
 	 * @return
 	 */
 	public static PayInfo tradePayOff1(TradePayOff1Data tradePayOff1Data) {
+		tradePayOff1Data.setPartnerId("5400004");
+		tradePayOff1Data.setScene("TRAFFIC");
+		tradePayOff1Data.setCurrency("RMB");
+		tradePayOff1Data.setNeedLoginFlag("N");
+		tradePayOff1Data.setAccessMode("APP");
+		tradePayOff1Data.getGoodsInfo().forEach(goodsInfoRequest -> {
+			goodsInfoRequest.setId("981100006005901");
+			goodsInfoRequest.setSubAppId("wxcc3c9058e2b294db");
+			goodsInfoRequest.setProfitSharing("1");
+			goodsInfoRequest.setAreaInfo("520100");
+			goodsInfoRequest.setPayType("0");
+			goodsInfoRequest.setBusinessType("10408");
+		});
+		
+		
 		TradeRequest request = new TradeRequest<TradePayOff1Data>();
 		request.setSceneId("1911676727023968256");
 		request.setAppId(QianYunTongProperties.appkey);
@@ -356,6 +372,24 @@
 	 * @return
 	 */
 	public static TradeOrderCreate tradeOrderCreate1(TradeOrderCreateData tradeOrderCreateData) {
+		tradeOrderCreateData.setScene("TRAFFIC");
+		tradeOrderCreateData.setPartnerId("522700");
+		tradeOrderCreateData.setOrderAppId("52270015");
+		tradeOrderCreateData.setChannelSource("GRJYCXWXXCX");
+		tradeOrderCreateData.setPayPartnerId("5400004");
+		tradeOrderCreateData.setCurrency("RMB");
+		tradeOrderCreateData.setNeedLoginFlag("N");
+		tradeOrderCreateData.setAccessMode("APP");
+		tradeOrderCreateData.getGoodsInfo().forEach(goodsInfoRequest->{
+			goodsInfoRequest.setId("981100006005901");
+			goodsInfoRequest.setSubAppId("wxcc3c9058e2b294db");
+			goodsInfoRequest.setProfitSharing("1");
+			goodsInfoRequest.setAreaInfo("520100");
+			goodsInfoRequest.setPayType("0");
+			goodsInfoRequest.setBusinessType("10408");
+		});
+		
+		
 		TradeRequest request = new TradeRequest<TradeOrderCreateData>();
 		request.setSceneId("1945688132719169536");
 		request.setAppId(QianYunTongProperties.appkey);
@@ -450,6 +484,28 @@
 	 * @return
 	 */
 	public static PayInfo tradePayOff(TradePayOffData tradePayOffData) {
+		tradePayOffData.setPartnerId("5400004");
+		tradePayOffData.setScene("TRAFFIC");
+		tradePayOffData.setCurrency("RMB");
+		tradePayOffData.setRetUrl("");
+		tradePayOffData.setClientIp(System.getProperty("http.remoteAddr"));
+		tradePayOffData.setNeedLoginFlag("N");
+		tradePayOffData.setAccessMode("APP");
+		List<PaymentInfoRequest> paymentInfoRequests = new ArrayList<>();
+		PaymentInfoRequest paymentInfoRequest = new PaymentInfoRequest();
+		paymentInfoRequest.setPayModeId("501212");
+		paymentInfoRequests.add(paymentInfoRequest);
+		tradePayOffData.setPaymentInfos(paymentInfoRequests);
+		List<GoodsInfo> goodsInfo = new ArrayList<>();
+		GoodsInfo goodsInfo1 = new GoodsInfo();
+		goodsInfo1.setMerchantCode(":B00000872");
+		goodsInfo1.setCustId("CB0000004686");
+		goodsInfo1.setCustName("证联消费平台交易客户");
+		goodsInfo1.setProfitSharing("1");
+		goodsInfo.add(goodsInfo1);
+		tradePayOffData.setGoodsInfo(goodsInfo);
+		
+		
 		TradeRequest request = new TradeRequest<TradePayOffData>();
 		request.setSceneId("1774717104844095488");
 		request.setAppId(QianYunTongProperties.appkey);
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongProperties.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongProperties.java
index dceaf17..90a4b14 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongProperties.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongProperties.java
@@ -16,6 +16,7 @@
 	/**
 	 * 私钥地址
 	 */
+//	String privateKeyPath = "C:\\Users\\39373\\Desktop\\黔云通\\private_key_test.pem";
 	String privateKeyPath = "C:\\Users\\Administrator\\Desktop\\private_key_test.pem";
 	/**
 	 * 私钥地址
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/SMSUtil.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/SMSUtil.java
index 5872231..cfe188f 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/SMSUtil.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/SMSUtil.java
@@ -70,12 +70,12 @@
 	public static void main(String[] args) {
 		SendSmsRequest request = new SendSmsRequest();
 		request.setDestAddress("15828353127");
-		request.setTemplateId("TPL202410290001");
+		request.setTemplateId("TPL202507300002");
 		Map<String, String> templateParams = new HashMap<>();
-		templateParams.put("code", "1234");
+//		templateParams.put("code", "1234");
 		request.setTemplateParams(templateParams);
-		request.setCode("code");
-		request.setSpId("T8d5hdfg");
+//		request.setCode("code");
+		request.setSpId("Y86asr7J");
 		SMSUtil.sendSms(request);
 	}
 	
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/UserUtil.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/UserUtil.java
index bcc7a30..c1e4d91 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/UserUtil.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/UserUtil.java
@@ -23,8 +23,8 @@
 	
 	
 	public static void main(String[] args) {
-		List<QYTUserInfo> userInfoByPhone = getUserInfoByPhone("15828353127", "981100006005951");
-		System.out.println(userInfoByPhone);
+//		List<QYTUserInfo> userInfoByPhone = getUserInfoByPhone("15828353127");
+//		System.out.println(userInfoByPhone);
 	}
 	
 	
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/DriverPosition.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/DriverPosition.java
index 7c1d683..b89c824 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/DriverPosition.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/DriverPosition.java
@@ -13,6 +13,10 @@
 @Document(collection = "driver_position")
 public class DriverPosition {
 	@Id
+	private String id;
+	/**
+	 * 司机id
+	 */
 	private Integer driverId;
 	/**
 	 * 点位
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/ServerCarModelWarpper.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/ServerCarModelWarpper.java
index ab9f539..abc2d20 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/ServerCarModelWarpper.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/ServerCarModelWarpper.java
@@ -64,6 +64,8 @@
     private JSONObject contentExclusive;//独享
     @ApiModelProperty("一口价规则")
     private JSONObject contentPrice;//一口价
+    @ApiModelProperty("等待费规则")
+    private JSONObject waitPrice;//等待费
 
     @ApiModelProperty("计价说明(拼车)")
     private String fareTypeNote1;
@@ -362,4 +364,13 @@
         }
         return data;
     }
+    
+    
+    public JSONObject getWaitPrice() {
+        return waitPrice;
+    }
+    
+    public void setWaitPrice(JSONObject waitPrice) {
+        this.waitPrice = waitPrice;
+    }
 }
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/model/OrderTaxi.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/model/OrderTaxi.java
index d25a643..a63b98b 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/model/OrderTaxi.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/model/OrderTaxi.java
@@ -4,7 +4,6 @@
 import com.baomidou.mybatisplus.annotations.TableId;
 import com.baomidou.mybatisplus.annotations.TableName;
 import com.baomidou.mybatisplus.enums.IdType;
-import com.stylefeng.guns.modular.system.model.BaseBean;
 
 import java.math.BigDecimal;
 import java.util.Date;
@@ -385,6 +384,24 @@
     private String splitAllocation;
 
     private Integer responsibilityType;
+    
+    
+    private Integer promotion;
+    
+    private String voice;
+    
+    
+    private Date voiceTime;
+    
+    private String promotionUser;
+    
+    private String promotionPhone;
+    
+    private String travelId;
+    /**
+     * 中台是否已创建订单(0=否,1=是)
+     */
+    private Integer isCreated;
 
     private Long promotionActivityId;
 
@@ -997,7 +1014,63 @@
     public void setSplitAllocation(String splitAllocation) {
         this.splitAllocation = splitAllocation;
     }
-
+    
+    public Integer getPromotion() {
+        return promotion;
+    }
+    
+    public void setPromotion(Integer promotion) {
+        this.promotion = promotion;
+    }
+    
+    public String getVoice() {
+        return voice;
+    }
+    
+    public void setVoice(String voice) {
+        this.voice = voice;
+    }
+    
+    public Date getVoiceTime() {
+        return voiceTime;
+    }
+    
+    public void setVoiceTime(Date voiceTime) {
+        this.voiceTime = voiceTime;
+    }
+    
+    public String getPromotionUser() {
+        return promotionUser;
+    }
+    
+    public void setPromotionUser(String promotionUser) {
+        this.promotionUser = promotionUser;
+    }
+    
+    public String getPromotionPhone() {
+        return promotionPhone;
+    }
+    
+    public void setPromotionPhone(String promotionPhone) {
+        this.promotionPhone = promotionPhone;
+    }
+    
+    public String getTravelId() {
+        return travelId;
+    }
+    
+    public void setTravelId(String travelId) {
+        this.travelId = travelId;
+    }
+    
+    public Integer getIsCreated() {
+        return isCreated;
+    }
+    
+    public void setIsCreated(Integer isCreated) {
+        this.isCreated = isCreated;
+    }
+    
     @Override
     public String toString() {
         return "OrderTaxi{" +
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/IOrderTaxiService.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/IOrderTaxiService.java
index caf8829..a3812e1 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/IOrderTaxiService.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/IOrderTaxiService.java
@@ -129,7 +129,7 @@
      * @return
      * @throws Exception
      */
-    ResultUtil payTaxiOrder1(Integer payType, Integer orderId, Integer objectId, Integer objectType, Integer type)throws Exception;
+    ResultUtil payTaxiOrder1(Integer payType, Integer orderId, Integer objectId, Integer objectType, Integer type, String path, String ip)throws Exception;
 
 
 
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java
index 839b316..800a5a2 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java
@@ -20,6 +20,8 @@
 import com.stylefeng.guns.modular.system.model.vo.UnPayOrderVO;
 import com.stylefeng.guns.modular.system.service.*;
 import com.stylefeng.guns.modular.system.util.*;
+import com.stylefeng.guns.modular.system.util.qianyuntong.OrderUtil;
+import com.stylefeng.guns.modular.system.util.qianyuntong.model.*;
 import com.stylefeng.guns.modular.system.warpper.*;
 import com.stylefeng.guns.modular.taxi.dao.OrderTaxiMapper;
 import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
@@ -146,7 +148,7 @@
 	
 	@Autowired
 	private IDriverServiceService driverServiceService;
-
+	
 	@Autowired
 	private TAbnormalPayOrderMapper abnormalPayOrderMapper;
 	
@@ -185,10 +187,11 @@
 	
 	@Value("${callbackPath}")
 	private String callbackPath;
-
-
+	
+	
 	@Autowired
 	private TDriverPromotionActivityService driverPromotionActivityService;
+	
 	/**
 	 * 出租车下单操作
 	 *
@@ -496,17 +499,71 @@
 					orderCancelService.saveData(orderPrivateCar1.getId(), 1, "无司机接单", "无司机接单", null, null, 2, 1, uid);
 					orderPrivateCar1.setState(10);
 					orderPrivateCarService.updateById(orderPrivateCar1);
+					
+					Driver driver1 = null;
+					Company company = null;
+					//中台修改订单状态
+					ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
+					request.setOrderId(orderPrivateCar1.getTravelId());
+					request.setStatus(orderPrivateCar1.getState());
+					if (null != orderPrivateCar1.getDriverId()) {
+						driver1 = driverService.selectById(orderPrivateCar1.getDriverId());
+						company = companyService.selectById(driver1.getCompanyId());
+						request.setDriverId(driver1.getEmpId().toString());
+						request.setSupplierShopId(company.getEnterCode());
+					}
+					if (2 == orderPrivateCar1.getPromotion()) {
+						Driver driver2 = driverService.selectById(orderPrivateCar1.getPromotionDriverId());
+						request.setPromoterId(driver2.getEmpId().toString());
+					}
+					OrderUtil.modifyTravelItinerary(request);
 				}
 				List<OrderTaxi> list1 = this.selectList(new EntityWrapper<OrderTaxi>().eq("type", 2).eq("crossCityOrderId", orderTaxi.getCrossCityOrderId()).eq("place", orderTaxi.getPlace()));
 				for (OrderTaxi orderTaxi1 : list1) {
 					orderCancelService.saveData(orderTaxi1.getId(), 2, "无司机接单", "无司机接单", null, null, 2, 1, uid);
 					orderTaxi1.setState(10);
 					this.updateById(orderTaxi1);
+					
+					Driver driver1 = null;
+					Company company = null;
+					//中台修改订单状态
+					ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
+					request.setOrderId(orderTaxi1.getTravelId());
+					request.setStatus(orderTaxi1.getState());
+					if (null != orderTaxi1.getDriverId()) {
+						driver1 = driverService.selectById(orderTaxi1.getDriverId());
+						company = companyService.selectById(driver1.getCompanyId());
+						request.setDriverId(driver1.getEmpId().toString());
+						request.setSupplierShopId(company.getEnterCode());
+					}
+					if (2 == orderTaxi1.getPromotion()) {
+						Driver driver2 = driverService.selectById(orderTaxi1.getPromotionDriverId());
+						request.setPromoterId(driver2.getEmpId().toString());
+					}
+					OrderUtil.modifyTravelItinerary(request);
 				}
 			} else {
 				integer = orderCancelService.saveData(id, 2, "无司机接单", "无司机接单", null, null, 2, 1, uid);
 				orderTaxi.setState(10);
 				this.updateById(orderTaxi);
+				
+				Driver driver1 = null;
+				Company company = null;
+				//中台修改订单状态
+				ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
+				request.setOrderId(orderTaxi.getTravelId());
+				request.setStatus(orderTaxi.getState());
+				if (null != orderTaxi.getDriverId()) {
+					driver1 = driverService.selectById(orderTaxi.getDriverId());
+					company = companyService.selectById(driver1.getCompanyId());
+					request.setDriverId(driver1.getEmpId().toString());
+					request.setSupplierShopId(company.getEnterCode());
+				}
+				if (2 == orderTaxi.getPromotion()) {
+					Driver driver2 = driverService.selectById(orderTaxi.getPromotionDriverId());
+					request.setPromoterId(driver2.getEmpId().toString());
+				}
+				OrderUtil.modifyTravelItinerary(request);
 			}
 		} else {
 			OpenCity openCity = openCityService.openCity1(orderTaxi.getStartLon().toString(), orderTaxi.getStartLat().toString());
@@ -523,6 +580,24 @@
 					this.updateById(orderTaxi);
 				}
 				this.deleteTask(id);//删除定时任务
+				
+				Driver driver1 = null;
+				Company company = null;
+				//中台修改订单状态
+				ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
+				request.setOrderId(orderTaxi.getTravelId());
+				request.setStatus(orderTaxi.getState());
+				if (null != orderTaxi.getDriverId()) {
+					driver1 = driverService.selectById(orderTaxi.getDriverId());
+					company = companyService.selectById(driver1.getCompanyId());
+					request.setDriverId(driver1.getEmpId().toString());
+					request.setSupplierShopId(company.getEnterCode());
+				}
+				if (2 == orderTaxi.getPromotion()) {
+					Driver driver2 = driverService.selectById(orderTaxi.getPromotionDriverId());
+					request.setPromoterId(driver2.getEmpId().toString());
+				}
+				OrderUtil.modifyTravelItinerary(request);
 				
 				new Thread(new Runnable() {
 					@Override
@@ -642,6 +717,24 @@
 				orderTaxi.setTelX("");
 				orderTaxi.setBindId("");
 				this.updateById(orderTaxi);
+				
+				Driver driver = null;
+				Company company = null;
+				//中台修改订单状态
+				ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
+				request.setOrderId(orderTaxi.getTravelId());
+				request.setStatus(orderTaxi.getState());
+				if (null != orderTaxi.getDriverId()) {
+					driver = driverService.selectById(orderTaxi.getDriverId());
+					company = companyService.selectById(driver.getCompanyId());
+					request.setDriverId(driver.getEmpId().toString());
+					request.setSupplierShopId(company.getEnterCode());
+				}
+				if (2 == orderTaxi.getPromotion()) {
+					Driver driver1 = driverService.selectById(orderTaxi.getPromotionDriverId());
+					request.setPromoterId(driver1.getEmpId().toString());
+				}
+				OrderUtil.modifyTravelItinerary(request);
 				
 				orderCancel.setState(2);
 				orderCancel.setPayType(3);
@@ -1343,7 +1436,7 @@
 	
 	@Override
 	@Transactional(propagation = Propagation.REQUIRES_NEW)
-	public ResultUtil payTaxiOrder1(Integer payType, Integer orderId, Integer objectId, Integer objectType, Integer type) throws Exception {
+	public ResultUtil payTaxiOrder1(Integer payType, Integer orderId, Integer objectId, Integer objectType, Integer type, String path, String ip) throws Exception {
 		OrderTaxi orderTaxi = this.selectById(orderId);
 		if (orderTaxi.getState() == 8 || orderTaxi.getState() == 9) {
 			return ResultUtil.error("订单已完成支付,不允许重复支付", "");
@@ -1514,8 +1607,57 @@
 			if (orderMoney == 0) {
 				return ResultUtil.error("请使用余额支付");
 			}
-			String app = type == 1 ? "APP" : "JSAPI";
-			resultUtil = payMoneyUtil.weixinpay("完成订单", "", orderId + "_2_" + UUIDUtil.getRandomCode(5), orderMoney.toString(), "/base/wxPayOrderTaxi", app, userInfo.getAppletsOpenId());
+//			String app = type == 1 ? "APP" : "JSAPI";
+//			resultUtil = payMoneyUtil.weixinpay("完成订单", "", orderId + "_2_" + UUIDUtil.getRandomCode(5), orderMoney.toString(), "/base/wxPayOrderTaxi", app, userInfo.getAppletsOpenId());
+			
+			Driver driver = driverService.selectById(orderTaxi.getDriverId());
+			if(null == orderTaxi.getIsCreated() || 0 == orderTaxi.getIsCreated()){
+				//调用中台创建订单及拉起支付接口
+				TradeOrderCreateData tradeOrderCreateData = new TradeOrderCreateData();
+				tradeOrderCreateData.setTreatShopId(driver.getEmpId().toString());
+				tradeOrderCreateData.setField1("{\"profitSharing\":\"1\",\"isPromote\":\"" + (orderTaxi.getPromotion() == 2 ? 1 : 0) + "\"}");
+				tradeOrderCreateData.setCharge(new BigDecimal(orderMoney));
+				tradeOrderCreateData.setOrderId(orderTaxi.getTravelId());
+				tradeOrderCreateData.setOrderNo("TA" + orderTaxi.getId());
+				tradeOrderCreateData.setCustomerId(userInfo.getOnconUUID());
+				tradeOrderCreateData.setPartnerPayId(orderTaxi.getTravelId());
+				tradeOrderCreateData.setTotalFee(Double.valueOf(orderMoney * 100).intValue() + "");
+				tradeOrderCreateData.setOrderDesc("完成订单");
+				tradeOrderCreateData.setRetUrl(path);
+				tradeOrderCreateData.setClientIp(ip);
+				
+				List<GoodsInfoRequest> goodsInfo = new ArrayList<>();
+				GoodsInfoRequest goodsInfoRequest = new GoodsInfoRequest();
+				goodsInfoRequest.setSubOpenId(userInfo.getAppletsOpenId());
+				goodsInfo.add(goodsInfoRequest);
+				tradeOrderCreateData.setGoodsInfo(goodsInfo);
+				TradeOrderCreate tradeOrderCreate = OrderUtil.tradeOrderCreate1(tradeOrderCreateData);
+				PayInfo payInfo = tradeOrderCreate.getPayInfo();
+				if(!"000000".equals(payInfo.getRetCode())){
+					return ResultUtil.error(payInfo.getRetMsg());
+				}
+				orderTaxi.setIsCreated(1);
+				resultUtil = ResultUtil.success(payInfo.getData().getRedirectUrl());
+			}else{
+				//拉起支付
+				TradePayOff1Data tradePayOff1Data = new TradePayOff1Data();
+				tradePayOff1Data.setPartnerPayId("PR" + orderTaxi.getId());
+				tradePayOff1Data.setTotalFee(Double.valueOf(orderMoney * 100).intValue() + "");
+				tradePayOff1Data.setRetUrl(path);
+				tradePayOff1Data.setClientIp(ip);
+				tradePayOff1Data.setOrderDesc("完成订单");
+				List<GoodsInfoRequest> goodsInfo = new ArrayList<>();
+				GoodsInfoRequest goodsInfoRequest = new GoodsInfoRequest();
+				goodsInfoRequest.setSubOpenId(userInfo.getAppletsOpenId());
+				goodsInfo.add(goodsInfoRequest);
+				tradePayOff1Data.setGoodsInfo(goodsInfo);
+				PayInfo payInfo = OrderUtil.tradePayOff1(tradePayOff1Data);
+				if(!"000000".equals(payInfo.getRetCode())){
+					return ResultUtil.error(payInfo.getRetMsg());
+				}
+				resultUtil = ResultUtil.success(payInfo.getData().getRedirectUrl());
+			}
+			
 			paymentRecordService.saveData(1, orderTaxi.getUserId(), 1, orderId, 2, 1, orderMoney, "", 1);//添加预支付数据
 		}
 		if (payType == 2) {//支付宝支付
@@ -1737,10 +1879,10 @@
 			map.put("state", map.get("oldState"));
 		}
 		
-		if(Integer.valueOf(String.valueOf(map.get("state"))) ==7 &&  (map.get("responsibilityType")==null || Integer.valueOf(String.valueOf(map.get("responsibilityType")))<4)){
+		if (Integer.valueOf(String.valueOf(map.get("state"))) == 7 && (map.get("responsibilityType") == null || Integer.valueOf(String.valueOf(map.get("responsibilityType"))) < 4)) {
 			map.put("appealButton", 1);
 		}
-		if(map.get("abnormalIntro")!=null){
+		if (map.get("abnormalIntro") != null) {
 			map.put("appealStatus", 1);
 		}
 		String driverId = (String) redisTemplate.opsForValue().get("DEVICE_" + map.get("driverId"));
@@ -2082,6 +2224,24 @@
 			orderTaxi.setTelX("");
 			this.updateById(orderTaxi);
 			
+			Driver driver = null;
+			Company company = null;
+			//中台修改订单状态
+			ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
+			request.setOrderId(orderTaxi.getTravelId());
+			request.setStatus(orderTaxi.getState());
+			if (null != orderTaxi.getDriverId()) {
+				driver = driverService.selectById(orderTaxi.getDriverId());
+				company = companyService.selectById(driver.getCompanyId());
+				request.setDriverId(driver.getEmpId().toString());
+				request.setSupplierShopId(company.getEnterCode());
+			}
+			if (2 == orderTaxi.getPromotion()) {
+				Driver driver1 = driverService.selectById(orderTaxi.getPromotionDriverId());
+				request.setPromoterId(driver1.getEmpId().toString());
+			}
+			OrderUtil.modifyTravelItinerary(request);
+			
 			query.setState(2);
 			query.setCode(order_id);
 			paymentRecordService.updateById(query);
@@ -2297,7 +2457,7 @@
 	@Override
 	public void addAppeal(Integer uid, Integer orderId, String abnormalIntro, String abnormalImg) {
 		OrderTaxi orderTaxi = this.selectById(orderId);
-		if(orderTaxi.getState()!=7 || orderTaxi.getAbnormalIntro()!=null){
+		if (orderTaxi.getState() != 7 || orderTaxi.getAbnormalIntro() != null) {
 			throw new RuntimeException("此订单无法申诉");
 		}
 		orderTaxi.setAbnormalIntro(abnormalIntro);
@@ -2305,15 +2465,15 @@
 		orderTaxi.setAbnormal(2);
 		this.baseMapper.updateById(orderTaxi);
 	}
-
+	
 	@Override
 	public void promotion(Integer orderId) {
 		OrderTaxi orderTaxi = this.baseMapper.selectById(orderId);
 		UserInfo userInfo = userInfoService.selectById(orderTaxi.getUserId());
-		if(orderTaxi.getPromotionDriverId()!=null){
+		if (orderTaxi.getPromotionDriverId() != null) {
 			String registAreaCode = userInfo.getRegistAreaCode();
 			TDriverPromotionActivity tDriverPromotionActivity = driverPromotionActivityService.selectOne(new EntityWrapper<TDriverPromotionActivity>().eq("districtCode", registAreaCode).ge("startTime", new Date()).lt("endTime", new Date()).last("AND FIND_IN_SET(" + 2 + ", bizType) limit 1"));
-			if(tDriverPromotionActivity!=null){
+			if (tDriverPromotionActivity != null) {
 				Double payMoney = orderTaxi.getPayMoney();
 				BigDecimal bigDecimal = tDriverPromotionActivity.getCommissionRatio().divide(new BigDecimal(100), 2, RoundingMode.HALF_UP).multiply(new BigDecimal(payMoney)).setScale(2, RoundingMode.HALF_UP);
 				orderTaxi.setPromotionDriverId(userInfo.getBindDriverId());
@@ -2323,7 +2483,7 @@
 			}
 		}
 		// 是否异常订单
-		if (orderTaxi.getResponsibilityType() !=null && orderTaxi.getResponsibilityType() >2) {
+		if (orderTaxi.getResponsibilityType() != null && orderTaxi.getResponsibilityType() > 2) {
 			TAbnormalPayOrder tAbnormalPayOrder = abnormalPayOrderMapper.selectList(new EntityWrapper<TAbnormalPayOrder>().eq("type", 2).eq("orderNum", orderTaxi.getOrderNum())).stream().findFirst().orElse(null);
 			if (tAbnormalPayOrder != null) {
 				tAbnormalPayOrder.setPayStatus(2);

--
Gitblit v1.7.1