From e345b36025818615eb68d37819eaff312d1fb986 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期四, 26 六月 2025 12:51:36 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/tDriver_add.html                                              |    4 
 ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCompany/tCompany_add.html                                            |   32 --
 ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tOpenCity/tOpenCity_edit.html                                         |    1 
 ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TAgreementController.java              |    3 
 ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/sysCouponRecord/sysCouponRecord_add.html                              |    1 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/IOrderCrossCityService.java                           |    6 
 ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderCrossCityServiceImpl.java              |   20 +
 ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCompany/tCompany_edit.html                                           |    7 
 ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCompany/tCompany_updateFranchisee.html                               |    6 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java                                |    9 
 ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITOrderCrossCityService.java                      |    4 
 ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/tDriver_edit.html                                             |    4 
 DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/ZiOnController.java                                              |    6 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OpenCityBusinessServiceImpl.java                   |    1 
 ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCompany/platformEdit.html                                            |    7 
 ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCar/tCar_add.html                                                    |    4 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java                                               |    3 
 ManagementOKTravel/guns-admin/src/main/webapp/static/modular/system/financialStatement/paymentOrderStatistics/paymentOrderStatistics.js |   14 +
 DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java                                             |    3 
 ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCar/tCar_edit.html                                                   |    4 
 ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TSysReformistController.java           |   18 +
 ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSysReformist/tSysReformist.html                                      |   10 
 ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TOrderCrossCityMapper.java                            |    9 
 ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCompany/tCompany_detail.html                                         |    6 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OpenCityController.java                                            |    1 
 ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/FinancialStatementController.java      |   45 +++
 ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/sysCouponRecord/sysCouponRecord.html                                  |    1 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/DateUtil.java                                              |   25 ++
 ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tAgreement/tAgreement.html                                            |   20 +
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java                                              |    2 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PayMoneyUtil.java                                          |    2 
 ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TOrderTaxiMapper.java                                 |    2 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java                                              |    5 
 ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITOrderTaxiService.java                           |    2 
 ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/home.html                                                                    |   14 +
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java                   |  237 ++++++++++++++-------
 ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderTaxiServiceImpl.java                   |    5 
 ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCompany/tCompany_addFranchisee.html                                  |    7 
 ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/financialStatement/paymentOrderStatistics/paymentOrderStatistics.html |    7 
 DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java                              |    6 
 ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCompany/tCompany_detailFranchisee.html                               |    7 
 ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/sysCouponActivity/sysCouponActivity.html                              |    1 
 ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TOrderCrossCityMapper.xml                     |   45 ++++
 ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TOrderTaxiMapper.xml                          |    4 
 ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/report/operationalData.html                                           |    1 
 ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tOpenCity/tOpenCity_add.html                                          |    1 
 46 files changed, 487 insertions(+), 135 deletions(-)

diff --git a/DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java b/DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
index 7176f91..cb6156e 100644
--- a/DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
+++ b/DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
@@ -365,6 +365,9 @@
         try {
             String[] split = orderId.split(",");
             Double aDouble = orderService.queryReassignMoney(Integer.valueOf(split[0]), orderType);
+            if(Objects.isNull(aDouble)){
+                return ResultUtil.error("未设置改派金额",null);
+            }
             BaseWarpper baseWarpper = new BaseWarpper();
             if(orderType == 3){
                 aDouble = aDouble * split.length;
diff --git a/DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/ZiOnController.java b/DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/ZiOnController.java
index e210482..2914fc6 100644
--- a/DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/ZiOnController.java
+++ b/DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/ZiOnController.java
@@ -273,6 +273,9 @@
                             case 2:
                                 historyVo.setState("订单收入");
                                 break;
+                            case 3:
+                                historyVo.setState("城际出行");
+                                break;
                             default:
                                 historyVo.setState("充值");
                                 break;
@@ -311,6 +314,9 @@
                         case 2:
                             historyVo.setState("订单收入");
                             break;
+                        case 3:
+                            historyVo.setState("城际出行");
+                            break;
                         default:
                             historyVo.setState("充值");
                             break;
diff --git a/DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java b/DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java
index 62b38a9..7c789ad 100644
--- a/DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java
+++ b/DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java
@@ -351,6 +351,12 @@
      * @return
      */
     public Map<String, String> getDistance(String origins, String destination, Integer type){
+
+        String[] split = origins.split(",");
+        String[] split1 = destination.split(",");
+        origins = split[1] + "," + split[0];
+        destination = split1[1] + "," + split1[0];
+
         String url = "https://api.map.baidu.com/directionlite/v1/driving?origin="+origins+"&destination="+destination+"&ak="+key;
         String forObject = restTemplate.getForObject(url, String.class);
         JSONObject jsonObject = JSON.parseObject(forObject);
diff --git a/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/FinancialStatementController.java b/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/FinancialStatementController.java
index 63b44a7..b738142 100644
--- a/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/FinancialStatementController.java
+++ b/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/FinancialStatementController.java
@@ -6,6 +6,7 @@
 import com.stylefeng.guns.core.util.DateUtil;
 import com.stylefeng.guns.core.util.ExcelExportUtil;
 import com.stylefeng.guns.core.util.SinataUtil;
+import com.stylefeng.guns.modular.system.service.ITOrderCrossCityService;
 import com.stylefeng.guns.modular.system.service.ITOrderTaxiService;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -15,6 +16,8 @@
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -33,7 +36,9 @@
 	
 	@Resource
 	private ITOrderTaxiService orderTaxiService;
-	
+	@Resource
+	private ITOrderCrossCityService orderCrossCityService;
+
 	
 	/**
 	 * 跳转支付订单统计页
@@ -69,9 +74,24 @@
 	@ResponseBody
 	@RequestMapping("/paymentOrderStatisticsList")
 	public Object paymentOrderStatisticsList(String paymentCode, String orderCode, String userPhone,
-	                                         String driverPhone, String createTime, String paymentTime){
+	                                         String driverPhone, String createTime, String paymentTime,Integer orderType){
 		Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage();
-		List<Map<String, Object>> list = orderTaxiService.paymentOrderStatisticsList(page, paymentCode, orderCode, userPhone, driverPhone, createTime, paymentTime);
+		List<Map<String, Object>> list = orderTaxiService.paymentOrderStatisticsList(page, paymentCode, orderCode, userPhone, driverPhone, createTime, paymentTime,orderType);
+		List<Map<String, Object>> list1 = orderCrossCityService.paymentOrderStatisticsList(page, paymentCode, orderCode, userPhone, driverPhone, createTime, paymentTime,orderType);
+		list.addAll(list1);
+		list.sort((o1, o2) -> {
+			String insertTime = o1.get("insertTime").toString();
+			String insertTime1 = o2.get("insertTime").toString();
+            Date o1Date = null;
+			Date o2Date = null;
+            try {
+                o1Date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(insertTime);
+				o2Date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(insertTime1);
+				return o2Date.compareTo(o1Date);
+			} catch (ParseException e) {
+				throw new RuntimeException(e);
+			}
+		});
 		return super.packForBT(page.setRecords(list));
 	}
 	
@@ -88,9 +108,10 @@
 	@ResponseBody
 	@RequestMapping("/paymentOrderStatisticsList_export")
 	public void paymentOrderStatisticsList_export(String paymentCode, String orderCode, String userPhone,
-	                                              String driverPhone, String createTime, String paymentTime, HttpServletRequest request, HttpServletResponse response){
+	                                              String driverPhone, String createTime, String paymentTime,Integer orderType,
+												  HttpServletRequest request, HttpServletResponse response){
 		Page<Map<String, Object>> page = new Page(1, 9999);
-		List<Map<String, Object>> list = orderTaxiService.paymentOrderStatisticsList(page, paymentCode, orderCode, userPhone, driverPhone, createTime, paymentTime);
+		List<Map<String, Object>> list = orderTaxiService.paymentOrderStatisticsList(page, paymentCode, orderCode, userPhone, driverPhone, createTime, paymentTime,orderType);
 		
 		// 表格数据【封装】
 		List<List<String>> dataList = new ArrayList<>();
@@ -99,6 +120,7 @@
 		List<String> shellList = new ArrayList<String>();
 		shellList.add("支付流水号");
 		shellList.add("订单号");
+		shellList.add("订单类型");
 		shellList.add("支付用户手机号");
 		shellList.add("支付金额");
 		shellList.add("接单司机手机号");
@@ -121,6 +143,19 @@
 			}else{
 				shellList.add("-");
 			}
+			if(SinataUtil.isNotEmpty(object.get("orderType"))){
+				int orderType1 = Integer.parseInt(object.get("orderType").toString());
+				switch (orderType1){
+					case 2:
+						shellList.add("出租车订单");
+						break;
+					case 3:
+						shellList.add("跨城出行订单");
+						break;
+				}
+			}else{
+				shellList.add("-");
+			}
 			if(SinataUtil.isNotEmpty(object.get("userPhone"))){
 				shellList.add(object.get("userPhone").toString());
 			}else{
diff --git a/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TAgreementController.java b/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TAgreementController.java
index e1e332e..52c9a43 100644
--- a/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TAgreementController.java
+++ b/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TAgreementController.java
@@ -44,9 +44,12 @@
         TAgreement two = tAgreementService.selectOne(new EntityWrapper<TAgreement>().eq("useType", 1).eq("type", 2));
         //隐私协议
         TAgreement three = tAgreementService.selectOne(new EntityWrapper<TAgreement>().eq("useType", 1).eq("type", 1));
+        //隐私协议
+        TAgreement four = tAgreementService.selectOne(new EntityWrapper<TAgreement>().eq("useType", 1).eq("type", 11));
         model.addAttribute("one",one);
         model.addAttribute("two",two);
         model.addAttribute("three",three);
+        model.addAttribute("four",four);
         return PREFIX + "tAgreement.html";
     }
 
diff --git a/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TSysReformistController.java b/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TSysReformistController.java
index 32cb704..c3c4760 100644
--- a/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TSysReformistController.java
+++ b/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TSysReformistController.java
@@ -59,10 +59,10 @@
     @RequestMapping("")
     public String index(Model model) {
         //改派设置
-        /*TSysReformist reformist = tSysReformistService.selectOne(new EntityWrapper<TSysReformist>().eq("companyId", ShiroKit.getUser().getObjectId()));
+        TSysReformist reformist = tSysReformistService.selectOne(new EntityWrapper<TSysReformist>().eq("companyId", ShiroKit.getUser().getObjectId()));
         model.addAttribute("reformist",reformist);
         //积分设置
-        TSysIntegral integral = tSysIntegralService.selectOne(new EntityWrapper<TSysIntegral>().eq("companyId", ShiroKit.getUser().getObjectId()));
+        /*TSysIntegral integral = tSysIntegralService.selectOne(new EntityWrapper<TSysIntegral>().eq("companyId", ShiroKit.getUser().getObjectId()));
         model.addAttribute("integral",integral);*/
         //人脸识别
         TSysFaceDistinguish faceDistinguish = tSysFaceDistinguishService.selectOne(new EntityWrapper<TSysFaceDistinguish>().eq("companyId", ShiroKit.getUser().getObjectId()));
@@ -134,9 +134,19 @@
                         @RequestParam Double czc4,@RequestParam Integer czc5,@RequestParam Double czc6,
                         @RequestParam Double czc7,@RequestParam Integer czc8,@RequestParam Double czc9,
                         @RequestParam String phone1,@RequestParam String phone2,@RequestParam String phone3
-            ,@RequestParam String res,@RequestParam String money
+            ,@RequestParam String res,@RequestParam String money,@RequestParam Double one
     ) {
-
+        //改派设置
+        TSysReformist reformist = tSysReformistService.selectOne(new EntityWrapper<TSysReformist>().eq("companyId", ShiroKit.getUser().getObjectId()));
+        if (SinataUtil.isNotEmpty(reformist)){
+            reformist.setMoney(new BigDecimal(one));
+            tSysReformistService.updateById(reformist);
+        }else{
+            reformist = new TSysReformist();
+            reformist.setCompanyId(ShiroKit.getUser().getObjectId());
+            reformist.setMoney(new BigDecimal(one));
+            tSysReformistService.insert(reformist);
+        }
         //人脸识别
         TSysFaceDistinguish faceDistinguish = tSysFaceDistinguishService.selectOne(new EntityWrapper<TSysFaceDistinguish>().eq("companyId", ShiroKit.getUser().getObjectId()));
         if (SinataUtil.isNotEmpty(faceDistinguish)){
diff --git a/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TOrderCrossCityMapper.java b/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TOrderCrossCityMapper.java
index ab327bb..29edad9 100644
--- a/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TOrderCrossCityMapper.java
+++ b/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TOrderCrossCityMapper.java
@@ -48,4 +48,13 @@
 
     List<TOrderCrossCity> queryOrders(@Param("driverId") Integer driverId, @Param("lineShiftDriverId") Integer lineShiftDriverId,
                                      @Param("state") List<Integer> state);
+
+    List<Map<String, Object>> paymentOrderStatisticsList(Page<Map<String, Object>> page, @Param("paymentCode") String paymentCode,
+                                                         @Param("orderCode") String orderCode, @Param("userPhone") String userPhone,
+                                                         @Param("driverPhone") String driverPhone, @Param("createTimeStart") String createTimeStart,
+                                                         @Param("createTimeEnd") String createTimeEnd, @Param("paymentTimeStart") String paymentTimeStart,
+                                                         @Param("paymentTimeEnd") String paymentTimeEnd,@Param("orderType") Integer orderType);
+
+
+
 }
diff --git a/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TOrderTaxiMapper.java b/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TOrderTaxiMapper.java
index 4a34172..6900d8a 100644
--- a/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TOrderTaxiMapper.java
+++ b/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TOrderTaxiMapper.java
@@ -95,7 +95,7 @@
                                                          @Param("orderCode") String orderCode, @Param("userPhone") String userPhone,
                                                          @Param("driverPhone") String driverPhone, @Param("createTimeStart") String createTimeStart,
                                                          @Param("createTimeEnd") String createTimeEnd, @Param("paymentTimeStart") String paymentTimeStart,
-                                                         @Param("paymentTimeEnd") String paymentTimeEnd);
+                                                         @Param("paymentTimeEnd") String paymentTimeEnd,@Param("orderType") Integer orderType);
     
     
     /**
diff --git a/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TOrderCrossCityMapper.xml b/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TOrderCrossCityMapper.xml
index 74d2fe5..2758937 100644
--- a/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TOrderCrossCityMapper.xml
+++ b/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TOrderCrossCityMapper.xml
@@ -237,4 +237,49 @@
             </foreach>
         </if>
     </select>
+
+    <select id="paymentOrderStatisticsList" resultType="map">
+        select
+        a.id,
+        b.code as paymentCode,
+        a.orderNum,
+        c.phone as userPhone,
+        b.amount,
+        d.phone as driverPhone,
+        e.name as company,
+        f.money as income,
+        b.orderType as orderType,
+        DATE_FORMAT(a.insertTime, '%Y-%m-%d %H:%i:%s') as insertTime,
+        DATE_FORMAT(b.insertTime, '%Y-%m-%d %H:%i:%s') as paymentTime
+        from t_order_cross_city a
+        left join t_payment_record b on (a.id = b.orderId and b.orderType = 3 and b.state = 2)
+        left join t_user c on (a.userId = c.id)
+        left join t_driver d on (a.driverId = d.id)
+        left join t_company e on (d.companyId = e.id)
+        left join t_pub_transaction_details f on (a.id = f.orderId and f.userType = 2 and f.state = 2)
+        where a.state in (8, 9) and a.isDelete = 1 and a.payManner = 1
+        <if test="null != paymentCode and '' != paymentCode">
+            and b.code like CONCAT('%', #{paymentCode}, '%')
+        </if>
+        <if test="null != orderCode and '' != orderCode">
+            and a.orderNum like CONCAT('%', #{orderCode}, '%')
+        </if>
+        <if test="null != orderType">
+            and b.orderType = #{orderType}
+        </if>
+        <if test="null != userPhone and '' != userPhone">
+            and c.phone like CONCAT('%', #{userPhone}, '%')
+        </if>
+        <if test="null != driverPhone and '' != driverPhone">
+            and d.phone like CONCAT('%', #{driverPhone}, '%')
+        </if>
+        <if test="null != createTimeStart and '' != createTimeStart and null != createTimeEnd and '' != createTimeEnd">
+            and a.insertTime between #{createTimeStart} and #{createTimeEnd}
+        </if>
+        <if test="null != paymentTimeStart and '' != paymentTimeStart and null != paymentTimeEnd and '' != paymentTimeEnd">
+            and b.insertTime between #{paymentTimeStart} and #{paymentTimeEnd}
+        </if>
+        order by a.insertTime desc
+    </select>
+
 </mapper>
diff --git a/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TOrderTaxiMapper.xml b/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TOrderTaxiMapper.xml
index 7b3082d..0d7b42b 100644
--- a/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TOrderTaxiMapper.xml
+++ b/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TOrderTaxiMapper.xml
@@ -273,6 +273,7 @@
             d.phone as driverPhone,
             e.name as company,
             f.money as income,
+            b.orderType as orderType,
             DATE_FORMAT(a.insertTime, '%Y-%m-%d %H:%i:%s') as insertTime,
             DATE_FORMAT(b.insertTime, '%Y-%m-%d %H:%i:%s') as paymentTime
         from t_order_taxi a
@@ -288,6 +289,9 @@
         <if test="null != orderCode and '' != orderCode">
             and a.orderNum like CONCAT('%', #{orderCode}, '%')
         </if>
+        <if test="null != orderType">
+            and b.orderType = #{orderType}
+        </if>
         <if test="null != userPhone and '' != userPhone">
             and c.phone like CONCAT('%', #{userPhone}, '%')
         </if>
diff --git a/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITOrderCrossCityService.java b/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITOrderCrossCityService.java
index 668551f..93b45b3 100644
--- a/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITOrderCrossCityService.java
+++ b/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITOrderCrossCityService.java
@@ -51,4 +51,8 @@
 
 
     String getOrderNum(Integer driverId, Integer lineShiftDriverId) throws Exception;
+
+    List<Map<String, Object>> paymentOrderStatisticsList(Page<Map<String, Object>> page, String paymentCode, String orderCode, String userPhone, String driverPhone, String createTime, String paymentTime, Integer orderType);
+
+
 }
diff --git a/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITOrderTaxiService.java b/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITOrderTaxiService.java
index 73177eb..9947a71 100644
--- a/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITOrderTaxiService.java
+++ b/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITOrderTaxiService.java
@@ -90,7 +90,7 @@
      * @return
      */
     List<Map<String, Object>> paymentOrderStatisticsList(Page<Map<String, Object>> page, String paymentCode, String orderCode, String userPhone,
-                                                         String driverPhone, String createTime, String paymentTime);
+                                                         String driverPhone, String createTime, String paymentTime,  Integer orderType);
     
     
     /**
diff --git a/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderCrossCityServiceImpl.java b/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderCrossCityServiceImpl.java
index 248b9bb..4318c0a 100644
--- a/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderCrossCityServiceImpl.java
+++ b/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderCrossCityServiceImpl.java
@@ -1,6 +1,7 @@
 package com.stylefeng.guns.modular.system.service.impl;
 
 import com.baomidou.mybatisplus.plugins.Page;
+import com.stylefeng.guns.core.util.ToolUtil;
 import com.stylefeng.guns.modular.system.model.TOrderCrossCity;
 import com.stylefeng.guns.modular.system.dao.TOrderCrossCityMapper;
 import com.stylefeng.guns.modular.system.service.ITOrderCrossCityService;
@@ -55,4 +56,23 @@
         int size = this.selectCount(null);
         return "CROSS" + String.valueOf(1000000 + size + 1).substring(1);
     }
+
+    @Override
+    public List<Map<String, Object>> paymentOrderStatisticsList(Page<Map<String, Object>> page, String paymentCode, String orderCode, String userPhone, String driverPhone, String createTime, String paymentTime, Integer orderType) {
+        String createTimeStart = null;
+        String createTimeEnd = null;
+        String paymentTimeStart = null;
+        String paymentTimeEnd = null;
+        if(ToolUtil.isNotEmpty(createTime)){
+            String[] split = createTime.split(" - ");
+            createTimeStart = split[0];
+            createTimeEnd = split[1];
+        }
+        if(ToolUtil.isNotEmpty(paymentTime)){
+            String[] split = paymentTime.split(" - ");
+            paymentTimeStart = split[0];
+            paymentTimeEnd = split[1];
+        }
+        return this.baseMapper.paymentOrderStatisticsList(page, paymentCode, orderCode, userPhone, driverPhone, createTimeStart, createTimeEnd, paymentTimeStart, paymentTimeEnd,orderType);
+    }
 }
diff --git a/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderTaxiServiceImpl.java b/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderTaxiServiceImpl.java
index 10d2742..88f3f97 100644
--- a/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderTaxiServiceImpl.java
+++ b/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderTaxiServiceImpl.java
@@ -65,7 +65,8 @@
      * @return
      */
     @Override
-	public List<Map<String, Object>> paymentOrderStatisticsList(Page<Map<String, Object>> page, String paymentCode, String orderCode, String userPhone, String driverPhone, String createTime, String paymentTime) {
+	public List<Map<String, Object>> paymentOrderStatisticsList(Page<Map<String, Object>> page, String paymentCode, String orderCode, String userPhone,
+                                                                String driverPhone, String createTime, String paymentTime,Integer orderType) {
         String createTimeStart = null;
         String createTimeEnd = null;
         String paymentTimeStart = null;
@@ -80,7 +81,7 @@
             paymentTimeStart = split[0];
             paymentTimeEnd = split[1];
         }
-		return this.baseMapper.paymentOrderStatisticsList(page, paymentCode, orderCode, userPhone, driverPhone, createTimeStart, createTimeEnd, paymentTimeStart, paymentTimeEnd);
+		return this.baseMapper.paymentOrderStatisticsList(page, paymentCode, orderCode, userPhone, driverPhone, createTimeStart, createTimeEnd, paymentTimeStart, paymentTimeEnd,orderType);
 	}
     
     /**
diff --git a/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/home.html b/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/home.html
index aeea124..9de9c09 100644
--- a/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/home.html
+++ b/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/home.html
@@ -61,6 +61,10 @@
 							<h1 class="no-margins" id="orderDetail2">0</h1>
 							<small>出租车订单</small>
 						</div>
+						<div class="ibox-content">
+							<h1 class="no-margins" id="orderDetail3">0</h1>
+							<small>跨城出行订单</small>
+						</div>
 					</div>
 				</div>
 				<div class="col-sm-3">
@@ -116,6 +120,10 @@
 							<small>出租车订单数</small>
 						</div>
 						<div class="ibox-content">
+							<h1 class="no-margins" id="orderDetail31">0</h1>
+							<small>跨城出行订单数</small>
+						</div>
+						<div class="ibox-content">
 							<h1 class="no-margins" id="paiceSum1">0</h1>
 							<small>交易总金额</small>
 						</div>
@@ -149,6 +157,12 @@
 							</h1>
 							<small>出租车订单趋势图</small>
 						</div>
+						<div class="ibox-content">
+							<h1 class="no-margins">
+								<span class="dynamicsparkline" id="orderDetail32">Loading..</span>
+							</h1>
+							<small>跨城订单趋势图</small>
+						</div>
 					</div>
 				</div>
 			</div>
diff --git a/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/financialStatement/paymentOrderStatistics/paymentOrderStatistics.html b/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/financialStatement/paymentOrderStatistics/paymentOrderStatistics.html
index 74bda2e..6d9f5ff 100644
--- a/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/financialStatement/paymentOrderStatistics/paymentOrderStatistics.html
+++ b/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/financialStatement/paymentOrderStatistics/paymentOrderStatistics.html
@@ -28,6 +28,13 @@
 								<#TimeCon id="paymentTime" name="支付时间" isTime="false"/>
 							</div>
 							<div class="col-sm-3">
+							<#SelectCon id="orderType" name="订单类型" >
+								<option value="">全部</option>
+								<option value="2">出租车订单</option>
+								<option value="3">跨城出行订单</option>
+							</#SelectCon>
+						</div>
+							<div class="col-sm-3">
 								<#button name="搜索" icon="fa-search" clickFun="PaymentOrderStatistics.search()"/>
 								<#button name="重置" icon="fa-trash" clickFun="PaymentOrderStatistics.resetSearch()" space="true"/>
 							</div>
diff --git a/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/report/operationalData.html b/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/report/operationalData.html
index 69f26c6..8d8e262 100644
--- a/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/report/operationalData.html
+++ b/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/report/operationalData.html
@@ -9,6 +9,7 @@
                             <div class="col-sm-3">
                                 <#SelectCon id="type" name="类别" >
                                     <option value="2">出租车</option>
+                                    <option value="3">跨城出行</option>
                                 </#SelectCon>
                             </div>
                             <div class="col-sm-3">
diff --git a/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/sysCouponActivity/sysCouponActivity.html b/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/sysCouponActivity/sysCouponActivity.html
index 3201058..c4e819a 100644
--- a/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/sysCouponActivity/sysCouponActivity.html
+++ b/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/sysCouponActivity/sysCouponActivity.html
@@ -16,6 +16,7 @@
                                 <#SelectCon id="couponUseType" name="优惠券类型" >
                                     <option value="">全部</option>
                                     <option value="2">出租车券</option>
+                                    <option value="3">跨城出行券</option>
                                 </#SelectCon>
                             </div>
                             <div class="col-sm-3">
diff --git a/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/sysCouponRecord/sysCouponRecord.html b/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/sysCouponRecord/sysCouponRecord.html
index 919eaa6..70ae4bf 100644
--- a/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/sysCouponRecord/sysCouponRecord.html
+++ b/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/sysCouponRecord/sysCouponRecord.html
@@ -16,6 +16,7 @@
                                 <#SelectCon id="couponUseType" name="优惠券类型" >
                                     <option value="">全部</option>
                                     <option value="2">出租车券</option>
+                                    <option value="3">跨城出行券</option>
                                 </#SelectCon>
                             </div>
                             <div class="col-sm-3">
diff --git a/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/sysCouponRecord/sysCouponRecord_add.html b/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/sysCouponRecord/sysCouponRecord_add.html
index 6a4a929..ff192d3 100644
--- a/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/sysCouponRecord/sysCouponRecord_add.html
+++ b/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/sysCouponRecord/sysCouponRecord_add.html
@@ -19,6 +19,7 @@
                     </div>
                     <#select id="couponUseType" name="服务类型" underline="true">
                         <option value="2">出租车券</option>
+						<option value="3">跨城出行券</option>
                     </#select>
                     <#input id="money" name="金额" underline="true" placeholder="最多4位数字"/>
                     <div class="form-group" id="fullMoneys" style="display: none">
diff --git a/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tAgreement/tAgreement.html b/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tAgreement/tAgreement.html
index 78fc7fb..872df4d 100644
--- a/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tAgreement/tAgreement.html
+++ b/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tAgreement/tAgreement.html
@@ -15,6 +15,7 @@
                                 <li class="active"><a data-toggle="tab" href="#tab-1" aria-expanded="true">注册协议</a></li>
                                 <li class=""><a data-toggle="tab" href="#tab-2" aria-expanded="false">用户协议</a></li>
                                 <li class=""><a data-toggle="tab" href="#tab-3" aria-expanded="false">隐私协议</a></li>
+                                <li class=""><a data-toggle="tab" href="#tab-4" aria-expanded="false">跨城出行须知</a></li>
                             </ul>
                             <div class="tab-content">
                                 <div id="tab-1" class="tab-pane active">
@@ -47,6 +48,16 @@
                                         </div>
                                     </div>
                                 </div>
+                                <div id="tab-4" class="tab-pane">
+                                    <div class="panel-body">
+                                        <textarea type="text/plain" id="editor_4" style="width:1200px;height:400px;">${four.content}</textarea>
+                                        <div class="row btn-group-m-t">
+                                            <div class="col-sm-10 col-sm-offset-5">
+                                                <#button btnCss="info" name="保存" id="ensure" icon="fa-check" clickFun="update_4(${four.id});"/>
+                                            </div>
+                                        </div>
+                                    </div>
+                                </div>
 
                             </div>
                         </div>
@@ -61,11 +72,13 @@
     var editor_1 = null;
     var editor_2 = null;
     var editor_3 = null;
+    var editor_4 = null;
     $(function () {
         //初始化编辑器
         editor_1 = UE.getEditor('editor_1');
         editor_2 = UE.getEditor('editor_2');
         editor_3 = UE.getEditor('editor_3');
+        editor_4 = UE.getEditor('editor_4');
     });
 
     function update_1(id){
@@ -89,6 +102,13 @@
         }
         submitData($("#three").val(),id);
     }
+    function update_4(id){
+        if (editor_4.getContentTxt() == ""){
+            Feng.error("内容不能为空!");
+            return;
+        }
+        submitData(editor_4.getContent(),id);
+    }
 
     function submitData(content,id) {
         //提交信息
diff --git a/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCar/tCar_add.html b/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCar/tCar_add.html
index 4016760..3453d3b 100644
--- a/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCar/tCar_add.html
+++ b/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCar/tCar_add.html
@@ -49,6 +49,10 @@
                                     <input type="checkbox" checked name="serverBox" id="serverBox2" value="2">
                                     <label for="serverBox2"> 出租车 </label>
                                 </div>
+                                <div class="checkbox checkbox-success  checkbox-inline">
+                                    <input type="checkbox" name="serverBox" id="serverBox3" value="3" onclick="TCarInfoDlg.kcServerClick()">
+                                    <label for="serverBox3"> 跨城 </label>
+                                </div>
                             </div>
                         </fieldset>
                     </div>
diff --git a/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCar/tCar_edit.html b/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCar/tCar_edit.html
index 2cb028a..2609f04 100644
--- a/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCar/tCar_edit.html
+++ b/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCar/tCar_edit.html
@@ -51,6 +51,10 @@
                                     <input type="checkbox" name="serverBox" id="serverBox2" value="2" ${2 == two ? 'checked=checked' : ''}>
                                     <label for="serverBox2"> 出租车 </label>
                                 </div>
+                                <div class="checkbox checkbox-success  checkbox-inline">
+                                    <input type="checkbox" name="serverBox" id="serverBox3" value="3" ${2 == three ? 'checked=checked' : ''} onclick="TCarInfoDlg.kcServerClick()">
+                                    <label for="serverBox3"> 跨城 </label>
+                                </div>
                             </div>
                         </fieldset>
                     </div>
diff --git a/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCompany/platformEdit.html b/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCompany/platformEdit.html
index 9ecd84b..7e31dbf 100644
--- a/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCompany/platformEdit.html
+++ b/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCompany/platformEdit.html
@@ -52,7 +52,12 @@
                                     <label for="checkbox2">
                                         出租车
                                     </label>
-
+                                </div>
+                                <div class="checkbox checkbox-success">
+                                    <input name="checkbox" id="checkbox3" type="checkbox" value="3" ${1 == item.isCross ? 'checked=checked' : ''} onclick="TCompanyInfoDlg.checkbox3()">
+                                    <label for="checkbox3">
+                                        跨城出行
+                                    </label>
                                 </div>
                             </fieldset>
                         </div>
diff --git a/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCompany/tCompany_add.html b/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCompany/tCompany_add.html
index 40ac907..afe1eb7 100644
--- a/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCompany/tCompany_add.html
+++ b/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCompany/tCompany_add.html
@@ -57,32 +57,12 @@
                                     <label for="checkbox2">
                                         出租车
                                     </label>
-<!--                                    <fieldset>-->
-<!--                                        <div class="row" style="display: none;" id="czDiv">-->
-<!--                                            <div class="col-sm-6">-->
-<!--                                                <div class="checkbox checkbox-circle">-->
-<!--                                                    <input type="radio" name="cz" id="cz1" value="1" checked="">-->
-<!--                                                    <label for="cz1">-->
-<!--                                                        <div style="position: relative;top: -8px;">-->
-<!--                                                            <span>按比例抽成,每笔订单抽取</span>-->
-<!--                                                            <input style="width: 50%;display: inline-block;" type="text" class="form-control" id="czPercent" name="czPercent">-->
-<!--                                                            <span>%</span>-->
-<!--                                                        </div>-->
-<!--                                                    </label>-->
-<!--                                                </div>-->
-<!--                                                <div class="checkbox checkbox-circle">-->
-<!--                                                    <input type="radio" name="cz" id="cz2" value="2">-->
-<!--                                                    <label for="cz2">-->
-<!--                                                        <div style="position: relative;top: -8px;">-->
-<!--                                                            <span>按固定金额抽成,每笔订单抽取</span>-->
-<!--                                                            <input style="width: 50%;display: inline-block;" type="text" class="form-control" id="czMoney" name="czMoney">-->
-<!--                                                            <span>元</span>-->
-<!--                                                        </div>-->
-<!--                                                    </label>-->
-<!--                                                </div>-->
-<!--                                            </div>-->
-<!--                                        </div>-->
-<!--                                    </fieldset>-->
+                                </div>
+                                <div class="checkbox checkbox-success">
+                                    <input name="checkbox" id="checkbox3" type="checkbox" value="3" onclick="TCompanyInfoDlg.checkbox3()">
+                                    <label for="checkbox3">
+                                        跨城
+                                    </label>
                                 </div>
                             </fieldset>
                         </div>
diff --git a/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCompany/tCompany_addFranchisee.html b/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCompany/tCompany_addFranchisee.html
index 2a01fdd..4f6b489 100644
--- a/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCompany/tCompany_addFranchisee.html
+++ b/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCompany/tCompany_addFranchisee.html
@@ -38,7 +38,12 @@
                                     <label for="checkbox2">
                                         出租车
                                     </label>
-
+                                </div>
+                                <div class="checkbox checkbox-success">
+                                    <input name="checkbox" id="checkbox3" type="checkbox" value="3" onclick="FranchiseeInfoDlg.checkbox3()">
+                                    <label for="checkbox3">
+                                        跨城
+                                    </label>
                                 </div>
                             </fieldset>
                         </div>
diff --git a/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCompany/tCompany_detail.html b/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCompany/tCompany_detail.html
index 83c16bb..0d946a9 100644
--- a/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCompany/tCompany_detail.html
+++ b/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCompany/tCompany_detail.html
@@ -99,6 +99,12 @@
                                         出租车
                                     </label>
                                 </div>
+                                <div class="checkbox checkbox-success">
+                                    <input name="checkbox" id="checkbox3" type="checkbox" disabled value="3" ${1 == item.isCross ? 'checked=checked' : ''} >
+                                    <label for="checkbox3">
+                                        跨城
+                                    </label>
+                                </div>
                             </fieldset>
                         </div>
                     </div>
diff --git a/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCompany/tCompany_detailFranchisee.html b/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCompany/tCompany_detailFranchisee.html
index 9b2581f..bfb4130 100644
--- a/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCompany/tCompany_detailFranchisee.html
+++ b/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCompany/tCompany_detailFranchisee.html
@@ -30,7 +30,12 @@
                                 <label for="checkbox2">
                                     出租车
                                 </label>
-
+                            </div>
+                            <div class="checkbox checkbox-success">
+                                <input name="checkbox" id="checkbox3" type="checkbox" disabled value="3" ${1 == item.isCross ? 'checked=checked' : ''} >
+                                <label for="checkbox3">
+                                    跨城
+                                </label>
                             </div>
                         </fieldset>
                     </div>
diff --git a/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCompany/tCompany_edit.html b/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCompany/tCompany_edit.html
index f847f0a..a67be9f 100644
--- a/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCompany/tCompany_edit.html
+++ b/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCompany/tCompany_edit.html
@@ -57,7 +57,12 @@
                                     <label for="checkbox2">
                                         出租车
                                     </label>
-
+                                </div>
+                                <div class="checkbox checkbox-success">
+                                    <input name="checkbox" id="checkbox3" type="checkbox" value="3" ${1 == item.isCross ? 'checked=checked' : ''} onclick="TCompanyInfoDlg.checkbox3()">
+                                    <label for="checkbox3">
+                                        跨城
+                                    </label>
                                 </div>
                             </fieldset>
                         </div>
diff --git a/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCompany/tCompany_updateFranchisee.html b/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCompany/tCompany_updateFranchisee.html
index 462c966..12f2ab3 100644
--- a/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCompany/tCompany_updateFranchisee.html
+++ b/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCompany/tCompany_updateFranchisee.html
@@ -39,6 +39,12 @@
                                         出租车
                                     </label>
                                 </div>
+                                <div class="checkbox checkbox-success">
+                                    <input name="checkbox" id="checkbox3" type="checkbox" value="3" ${1 == item.isCross ? 'checked=checked' : ''} onclick="FranchiseeInfoDlg.checkbox3()">
+                                    <label for="checkbox3">
+                                        跨城
+                                    </label>
+                                </div>
                             </fieldset>
                         </div>
                     </div>
diff --git a/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/tDriver_add.html b/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/tDriver_add.html
index 626b86e..80105d8 100644
--- a/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/tDriver_add.html
+++ b/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/tDriver_add.html
@@ -74,6 +74,10 @@
                                     <input type="checkbox" name="serverBox" id="serverBox2" value="2">
                                     <label for="serverBox2"> 出租车 </label>
                                 </div>
+                                <div class="checkbox checkbox-success  checkbox-inline">
+                                    <input type="checkbox" name="serverBox" id="serverBox3" value="3" onclick="YesDriverInfoDlg.checkBox()" >
+                                    <label for="serverBox3"> 跨城 </label>
+                                </div>
                             </div>
                         </fieldset>
                     </div>
diff --git a/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/tDriver_edit.html b/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/tDriver_edit.html
index c1fb728..a69b25b 100644
--- a/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/tDriver_edit.html
+++ b/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/tDriver_edit.html
@@ -77,6 +77,10 @@
                                     <input type="checkbox" name="serverBox" id="serverBox2" value="2" ${2 == two ? 'checked=checked' : ''}>
                                     <label for="serverBox2"> 出租车 </label>
                                 </div>
+                                <div class="checkbox checkbox-success  checkbox-inline">
+                                    <input type="checkbox" name="serverBox" id="serverBox3" value="3" ${2 == three ? 'checked=checked' : ''} onclick="YesDriverInfoDlg.checkBox()" >
+                                    <label for="serverBox3"> 跨城 </label>
+                                </div>
                             </div>
                         </fieldset>
                     </div>
diff --git a/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tOpenCity/tOpenCity_add.html b/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tOpenCity/tOpenCity_add.html
index 93c4d4c..a2e861c 100644
--- a/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tOpenCity/tOpenCity_add.html
+++ b/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tOpenCity/tOpenCity_add.html
@@ -27,6 +27,7 @@
                             <select class="form-control" id="businessType">
                                 <option value="">选择经营业务</option>
                                 <option value="2">出租车</option>
+                                <option value="3">跨城出行</option>
                             </select>
                         </div>
                         <div class="col-sm-3" >
diff --git a/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tOpenCity/tOpenCity_edit.html b/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tOpenCity/tOpenCity_edit.html
index 2d6e338..2c06fbf 100644
--- a/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tOpenCity/tOpenCity_edit.html
+++ b/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tOpenCity/tOpenCity_edit.html
@@ -34,6 +34,7 @@
                             <select class="form-control" id="businessType">
                                 <option value="">选择经营业务</option>
                                 <option value="2">出租车</option>
+                                <option value="3">跨城出行</option>
                             </select>
                         </div>
                         <div class="col-sm-3" >
diff --git a/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSysReformist/tSysReformist.html b/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSysReformist/tSysReformist.html
index 52c6f6f..441728a 100644
--- a/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSysReformist/tSysReformist.html
+++ b/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSysReformist/tSysReformist.html
@@ -13,7 +13,7 @@
                         <h3>系统设置:</h3>
                     </div>
 
-                    <!--<div class="form-group">
+                    <div class="form-group">
                         <label class="col-sm-2 control-label">改派设置:</label>
                         <div class="col-sm-10">
                             改派费用为&nbsp;<input type="text" oninput="checkIsDouble(this)"
@@ -26,7 +26,7 @@
                         </div>
                     </div>
 
-                    <div class="form-group">
+                    <!--<div class="form-group">
                         <label class="col-sm-2 control-label">积分设置:</label>
                         <div class="col-sm-10">
                             消费一元积&nbsp;<input type="text" oninput="checkIsInt(this)"
@@ -459,6 +459,7 @@
             }
         });
         var openValue = $("#openValue").val();
+        var one = $("#one").val().trim();
         var czc1 = $("#czc1").val().trim();
         var czc2 = $("#czc2").val().trim();
         var czc3 = $("#czc3").val().trim();
@@ -477,13 +478,13 @@
 
         if (
             "" == czc1 || "" == czc2 || "" == czc3 || "" == czc4 || "" == czc5 || "" == czc6 || "" == czc7 || "" == czc8 || "" == czc9
-            || "" == phone1 || "" == phone2 ) {
+            || "" == phone1 || "" == phone2 || "" == one) {
             Feng.info("输入框不能为空!");
             return;
         } else if (
              !regDouble.test(czc1) || !regInt.test(czc2) || !regDouble.test(czc3)
             || !regDouble.test(czc4) || !regInt.test(czc5) || !regDouble.test(czc6)
-            || !regDouble.test(czc7) || !regInt.test(czc8) || !regDouble.test(czc9)
+            || !regDouble.test(czc7) || !regInt.test(czc8) || !regDouble.test(czc9)|| !regDouble.test(one)
                 ) {
             Feng.info("格式不正确!");
             return ;
@@ -496,6 +497,7 @@
         },function(data){
             Feng.error("操作失败!" + data.responseJSON.message + "!");
         });
+        ajax.set("one", one);
         ajax.set("czc1", czc1);
         ajax.set("czc2", czc2);
         ajax.set("czc3", czc3);
diff --git a/ManagementOKTravel/guns-admin/src/main/webapp/static/modular/system/financialStatement/paymentOrderStatistics/paymentOrderStatistics.js b/ManagementOKTravel/guns-admin/src/main/webapp/static/modular/system/financialStatement/paymentOrderStatistics/paymentOrderStatistics.js
index 1b5542c..2d10f43 100644
--- a/ManagementOKTravel/guns-admin/src/main/webapp/static/modular/system/financialStatement/paymentOrderStatistics/paymentOrderStatistics.js
+++ b/ManagementOKTravel/guns-admin/src/main/webapp/static/modular/system/financialStatement/paymentOrderStatistics/paymentOrderStatistics.js
@@ -17,6 +17,15 @@
 		{title: '', field: 'id', visible: false, align: 'center', valign: 'middle'},
 		{title: '支付流水号', field: 'paymentCode', visible: true, align: 'center', valign: 'middle'},
 		{title: '订单号', field: 'orderNum', visible: true, align: 'center', valign: 'middle'},
+		{title: '订单类型', field: 'orderType', visible: true, align: 'center', valign: 'middle',
+			formatter: function (value, row) {
+				if(row.orderType == 2) {
+					return '出租车订单';
+				} else {
+					return '跨城出行订单';
+				}
+			}
+		},
 		{title: '支付用户手机号', field: 'userPhone', visible: true, align: 'center', valign: 'middle'},
 		{title: '支付金额', field: 'amount', visible: true, align: 'center', valign: 'middle'},
 		{title: '接单司机手机号', field: 'driverPhone', visible: true, align: 'center', valign: 'middle'},
@@ -85,8 +94,9 @@
 	let driverPhone = $("#driverPhone").val();
 	let createTime = $("#createTime").val();
 	let paymentTime = $("#paymentTime").val();
+	let orderType = $("#orderType").val();
 	window.location.href = Feng.ctxPath + '/financialStatement/paymentOrderStatisticsList_export?paymentCode=' + paymentCode + "&orderCode=" + orderCode +
-			"&userPhone=" + userPhone + "&driverPhone=" + driverPhone + "&createTime=" + createTime + "&paymentTime=" + paymentTime
+			"&userPhone=" + userPhone + "&driverPhone=" + driverPhone + "&createTime=" + createTime + "&paymentTime=" + paymentTime + "&orderType=" + orderType
 }
 
 
@@ -102,6 +112,7 @@
 	queryData['driverPhone'] = $("#driverPhone").val();
 	queryData['createTime'] = $("#createTime").val();
 	queryData['paymentTime'] = $("#paymentTime").val();
+	queryData['orderType'] = $("#orderType").val();
 	PaymentOrderStatistics.table.refresh({query: queryData});
 };
 
@@ -113,6 +124,7 @@
 	$("#driverPhone").val("");
 	$("#createTime").val("");
 	$("#paymentTime").val("");
+	$("#orderType").val("");
 	PaymentOrderStatistics.search();
 };
 
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
index f23851f..556f941 100644
--- a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
@@ -81,7 +81,9 @@
     })
     public ResultUtil<DriverInfoWarpper> queryDriverInfo(Integer id){
         try {
+            System.err.println(id);
             Map<String, Object> map = driverService.queryDriverInfo(id);
+            System.err.println(map);
             String name = String.valueOf(map.get("name"));
             map.put("name", name.substring(0, 1) + "师傅");
             List<BaseWarpper> list = driverService.queryBusiness(id);
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OpenCityController.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OpenCityController.java
index b6c78c2..cc528ed 100644
--- a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OpenCityController.java
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OpenCityController.java
@@ -71,6 +71,7 @@
     public ResultUtil<List<BaseWarpper>> queryBusiness(String province, String city, String district){
         try {
             List<BaseWarpper> list = openCityBusinessService.queryBusiness(province, city, district);
+            System.err.println(list);
             return ResultUtil.success(list);
         }catch (Exception e){
             e.printStackTrace();
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
index 85f6856..08a409e 100644
--- a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
@@ -1257,7 +1257,7 @@
     @PostMapping("/base/wxPayOrderTaxi")
     public void wxPayOrderTaxi(HttpServletRequest request, HttpServletResponse response){
         try {
-            System.out.println("完成订单微信支付回调");
+            System.err.println("完成订单微信支付回调");
             Map<String, String> map = payMoneyUtil.weixinpayCallback(request);
             System.out.println("wx支付信息:"+map);
 
@@ -1284,6 +1284,7 @@
                             orderTaxiService.payOrderTaxiCallback(id, order_id, 1);
                             break;
                         case 3:
+                            orderCrossCityService.payOrderCrossCityCallback(id, order_id, 1);
                             break;
                         case 4:
                             break;
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/IOrderCrossCityService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/IOrderCrossCityService.java
index 488e3a9..991d2ea 100644
--- a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/IOrderCrossCityService.java
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/IOrderCrossCityService.java
@@ -258,4 +258,10 @@
 
 
     List<OrderCrossCity> queryListOrder(Integer driverId, Integer lineShiftId, List<Integer> state, String day) throws Exception;
+
+    /**
+     * 自动取消订单
+     */
+    void autoCancelOrder();
+
 }
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
index 16dc5a7..e88c6e3 100644
--- a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
@@ -5,6 +5,7 @@
 import com.baomidou.mybatisplus.annotations.TableField;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.core.util.GpsCoordinateUtils;
 import com.stylefeng.guns.core.util.ToolUtil;
 import com.stylefeng.guns.modular.crossCity.dao.LinePriceMapper;
 import com.stylefeng.guns.modular.crossCity.dao.LineShiftDriverMapper;
@@ -43,6 +44,7 @@
 import org.springframework.transaction.annotation.Isolation;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
 import org.springframework.util.LinkedMultiValueMap;
 import org.springframework.util.MultiValueMap;
 import org.springframework.web.client.RestTemplate;
@@ -51,6 +53,7 @@
 import java.math.BigDecimal;
 import java.math.MathContext;
 import java.math.RoundingMode;
+import java.time.LocalDateTime;
 import java.util.*;
 
 import static com.stylefeng.guns.modular.taxi.service.impl.OrderTaxiServiceImpl.orderIds;
@@ -167,7 +170,10 @@
 
     @Autowired
     private IOpenCityService openCityService;
-
+    @Autowired
+    private PayMoneyUtil payMoneyUtil;
+    @Autowired
+    private ICompanyService companyService;
     @Value("${callbackPath}")
     private String callbackPath;
 
@@ -317,13 +323,16 @@
             }else{
                 appletsOpenId = userInfo.getAppletsOpenId();
             }
-            Map<String, String> map = icbcPayUtil.placeAnOrder(orderId + ",3", 9, 5, uid.toString(), "完成订单", orderMoney, callbackPath + "/base/wxPayOrderTaxi", "", type, appletsOpenId);
-            if(map.get("code").equals("200")){
-                paymentRecordService.saveData(1, orderCrossCity.getUserId(), 1, orderId, 3, 1, orderMoney, map.get("order_id"), 1);//添加预支付数据
-                resultUtil = ResultUtil.success(map.get("data"));
-            }else{
-                resultUtil = ResultUtil.error(map.get("msg"), "");
-            }
+//            Map<String, String> map = icbcPayUtil.placeAnOrder(orderId + ",3", 9, 5, uid.toString(), "完成订单", orderMoney, callbackPath + "/base/wxPayOrderTaxi", "", type, appletsOpenId);
+//            if(map.get("code").equals("200")){
+//                paymentRecordService.saveData(1, orderCrossCity.getUserId(), 1, orderId, 3, 1, orderMoney, map.get("order_id"), 1);//添加预支付数据
+//                resultUtil = ResultUtil.success(map.get("data"));
+//            }else{
+//                resultUtil = ResultUtil.error(map.get("msg"), "");
+//            }
+            String app = type == 1 ? "APP" : "JSAPI";
+            resultUtil = payMoneyUtil.weixinpay("完成订单", "", orderId + "_3_" + UUIDUtil.getRandomCode(5), orderMoney.toString(), "/base/wxPayOrderTaxi", app, userInfo.getAppletsOpenId());
+            paymentRecordService.saveData(1, orderCrossCity.getUserId(), 1, orderId, 3, 1, orderMoney, "", 1);//添加预支付数据
         }
         if(payType == 2){//支付宝支付
             Map<String, String> map = icbcPayUtil.placeAnOrder(orderId + ",3", 10, 5, uid.toString(), "完成订单", orderMoney, callbackPath + "/base/aliPayOrderTaxi", "", type, null);
@@ -407,6 +416,24 @@
         OrderCrossCity orderCrossCity = this.selectById(id);
         PaymentRecord query = paymentRecordService.query(1, orderCrossCity.getUserId(), 1, Integer.valueOf(id), 3, type, 1);
         if(null != query){
+            Integer placeOrderWay = null;
+            switch (orderCrossCity.getOrderSource()){
+                case 2:
+                    placeOrderWay = 4;
+                    break;
+                case 3:
+                    placeOrderWay = 4;
+                    break;
+                case 6:
+                    placeOrderWay = 1;
+                    break;
+                case 7:
+                    placeOrderWay = 2;
+                    break;
+                case 5:
+                    placeOrderWay = 3;
+                    break;
+            }
             //添加交易明细
             transactionDetailsService.saveData(orderCrossCity.getUserId(), "完成订单", query.getAmount(), 2, 1, 1, 3, query.getOrderId());
             orderCrossCity.setState(2);//先支付再服务
@@ -414,10 +441,10 @@
             orderCrossCity.setPayMoney(query.getAmount());
             this.updateById(orderCrossCity);
 
-            UserInfo userInfo = userInfoService.selectById(orderCrossCity.getUserId());
-            SysIntegral query1 = sysIntegralMapper.query(orderCrossCity.getCompanyId());
-            userInfo.setIntegral(userInfo.getIntegral() + (query.getAmount().intValue() * query1.getIntegral()));//积分
-            userInfoService.updateById(userInfo);
+//            UserInfo userInfo = userInfoService.selectById(orderCrossCity.getUserId());
+//            SysIntegral query1 = sysIntegralMapper.query(orderCrossCity.getCompanyId());
+//            userInfo.setIntegral(userInfo.getIntegral() + (query.getAmount().intValue() * query1.getIntegral()));//积分
+//            userInfoService.updateById(userInfo);
 
             //处理优惠券和红包
             if(null != orderCrossCity.getCouponId()){
@@ -439,16 +466,40 @@
             paymentRecordService.updateById(query);
 
             //添加已收入明细
-            Line line = lineService.selectById(orderCrossCity.getLineId());
-            Double speMoney = Double.valueOf(line.getRakeRate());
-            BigDecimal d = new BigDecimal(orderCrossCity.getOrderMoney()).multiply(new BigDecimal(speMoney).divide(new BigDecimal(100))).setScale(2, BigDecimal.ROUND_HALF_EVEN);//企业收入
-            BigDecimal c = new BigDecimal(orderCrossCity.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN);//司机收入
-            incomeService.saveData(1, orderCrossCity.getCompanyId(), 2, orderCrossCity.getId(), 3, d.doubleValue());
-            incomeService.saveData(2, orderCrossCity.getDriverId(), 2, orderCrossCity.getId(), 3, c.doubleValue());
+//            Line line = lineService.selectById(orderCrossCity.getLineId());
+//            Double speMoney = Double.valueOf(line.getRakeRate());
+//            BigDecimal d = new BigDecimal(orderCrossCity.getOrderMoney()).multiply(new BigDecimal(speMoney).divide(new BigDecimal(100))).setScale(2, BigDecimal.ROUND_HALF_EVEN);//企业收入
+//            BigDecimal c = new BigDecimal(orderCrossCity.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN);//司机收入
+//            incomeService.saveData(1, orderCrossCity.getCompanyId(), 2, orderCrossCity.getId(), 3, d.doubleValue());
+//            incomeService.saveData(2, orderCrossCity.getDriverId(), 2, orderCrossCity.getId(), 3, c.doubleValue());
             Driver driver = driverService.selectById(orderCrossCity.getDriverId());
-            driver.setBusinessMoney(new BigDecimal(null != driver.getBusinessMoney() ? driver.getBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
-            driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
-            driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+//            driver.setBusinessMoney(new BigDecimal(null != driver.getBusinessMoney() ? driver.getBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+//            driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+//            driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+//            driverService.updateById(driver);
+
+            Company company = companyService.selectById(driver.getFranchiseeId());
+            if(Objects.isNull(company)){
+                company = companyService.selectById(driver.getCompanyId());
+            }
+            // 司机收入
+            double moneyTwo;
+            // 平台收入
+            double money;
+            if(orderCrossCity.getOrderSource() == 2 || orderCrossCity.getOrderSource() == 3){
+                double v = company.getPercentageDeduction() / 100;
+                money = v * orderCrossCity.getOrderMoney();
+                moneyTwo = orderCrossCity.getOrderMoney()-money;
+            }else {
+                money = company.getFixedDeduction();
+                moneyTwo = orderCrossCity.getOrderMoney()-money;
+            }
+            driver.setBalance(driver.getBalance() + moneyTwo);
+            // 新增扣除使用费记录
+            transactionDetailsService.saveDataTaxi(driver.getId(), "软件使用费", money, 2, 1, 2, 6, orderCrossCity.getId(),placeOrderWay,company.getId());
+            // 司机订单收入
+            transactionDetailsService.saveDataTaxi(driver.getId(), "完成订单", moneyTwo, 1, 1, 2, 3, orderCrossCity.getId(),placeOrderWay,company.getId());
+
             driverService.updateById(driver);
 
             // TODO: 2020/5/24 这里需要给司机和用户推送订单状态
@@ -463,6 +514,8 @@
 
 
             systemNoticeService.addSystemNotice(1, "您已使用" + (type == 1 ? "微信" : "支付宝") + "成功完成出行订单支付,谢谢使用!", orderCrossCity.getUserId(), 1);
+            //添加司机消息提醒
+            systemNoticeService.addSystemNotice(2, "用户已线上完成支付", driver.getId(), 1);
         }else{
             System.err.println("预支付数据异常(orderId = "  + id + ")");
         }
@@ -1186,38 +1239,39 @@
         }
 
         //还原座位
-        CancleOrder query1 = cancleOrderService.query(1, 3, orderCrossCity.getCompanyId());
-        if (null != query1) {
-            integer = orderCancelService.saveData(id, 3, reason, remark, null, null, 2, 1, uid);
-            orderCrossCity.setState(10);
-            this.updateById(orderCrossCity);
+//        CancleOrder query1 = cancleOrderService.query(1, 3, orderCrossCity.getCompanyId());
+//        if (null != query1) {
+        integer = orderCancelService.saveData(id, 3, reason, remark, null, null, 2, 1, uid);
+        orderCrossCity.setState(10);
+        this.updateById(orderCrossCity);
 
-            if(orderCrossCity.getState() != 7){//已经支付的情况推送给司机提醒
-                new Thread(new Runnable() {
-                    @Override
-                    public void run() {
-                        pushUtil.pushOrderState(2, orderCrossCity.getDriverId(), orderCrossCity.getId(), 3, orderCrossCity.getState(), 0);
-                        System.err.println("推送取消操作---------------------");
-                    }
-                }).start();
-            }
-
-            //修改司机座位
-            LineShiftDriver lineShiftDriver = lineShiftDriverMapper.selectById(orderCrossCity.getLineShiftDriverId());
-            lineShiftDriver.setLaveSeat(lineShiftDriver.getLaveSeat() + orderCrossCity.getPeopleNumber());
-            lineShiftDriver.setLaveSeatNumber(lineShiftDriver.getLaveSeatNumber() + (orderCrossCity.getTravelMode() == 1 ? "," : "") + orderCrossCity.getSeatNumber());
-            lineShiftDriverMapper.updateById(lineShiftDriver);
-
-            //修改司机为空闲
-            List<OrderCrossCity> orderCrossCities = orderCrossCityMapper.queryByDriverId(orderCrossCity.getDriverId(), 2, 3, 4, 5, 11);
-            if(orderCrossCities.size() == 0){
-                Driver driver = driverService.selectById(orderCrossCity.getDriverId());
-                driver.setState(2);
-                driverService.updateById(driver);
-            }
-        }else{
-            return ResultUtil.error("请完善后台取消规则设置");
+        if(orderCrossCity.getState() != 7){//已经支付的情况推送给司机提醒
+            new Thread(new Runnable() {
+                @Override
+                public void run() {
+                    pushUtil.pushOrderState(2, orderCrossCity.getDriverId(), orderCrossCity.getId(), 3, orderCrossCity.getState(), 0);
+                    System.err.println("推送取消操作---------------------");
+                }
+            }).start();
         }
+
+        //修改司机座位
+        LineShiftDriver lineShiftDriver = lineShiftDriverMapper.selectById(orderCrossCity.getLineShiftDriverId());
+        lineShiftDriver.setLaveSeat(lineShiftDriver.getLaveSeat() + orderCrossCity.getPeopleNumber());
+        lineShiftDriver.setLaveSeatNumber(lineShiftDriver.getLaveSeatNumber() + (orderCrossCity.getTravelMode() == 1 ? "," : "") + orderCrossCity.getSeatNumber());
+        lineShiftDriverMapper.updateById(lineShiftDriver);
+
+        //修改司机为空闲
+        List<OrderCrossCity> orderCrossCities = orderCrossCityMapper.queryByDriverId(orderCrossCity.getDriverId(), 2, 3, 4, 5, 11);
+        if(orderCrossCities.size() == 0){
+            Driver driver = driverService.selectById(orderCrossCity.getDriverId());
+            driver.setState(2);
+            driverService.updateById(driver);
+        }
+//        }
+//        else{
+//            return ResultUtil.error("请完善后台取消规则设置");
+//        }
 
         //已支付的情况下进行退款操作
         if(null != orderCrossCity.getPayType() && null != orderCrossCity.getPayMoney()){
@@ -1232,39 +1286,30 @@
                 if(null == query){
                     return ResultUtil.error("订单还未进行支付");
                 }
-                Map<String, Object> merrefund = icbcPayUtil.merrefund(query.getCode(), "", query.getAmount(), id + "_3", orderCrossCity.getOrderNum());
-                if(Integer.valueOf(merrefund.get("code").toString()) == 0){
-                    Map<String, Object> refundqry = icbcPayUtil.refundqry("", query.getCode(), orderCrossCity.getOrderNum());
-                    if(Integer.valueOf(refundqry.get("code").toString()) == 0 && Integer.valueOf(refundqry.get("pay_status").toString()) == 0){//成功
-                        //添加交易明细
-                        transactionDetailsService.saveData(orderCrossCity.getUserId(), "跨城订单取消退款", query.getAmount(), 1, 1, 1, 3, id);
-                    }
-                    if(Integer.valueOf(refundqry.get("code").toString()) == 0 && Integer.valueOf(refundqry.get("pay_status").toString()) == 1){//失败
-                        return ResultUtil.error("订单取消失败(退款不成功)");
-                    }
-                    if(Integer.valueOf(refundqry.get("code").toString()) == 0 && Integer.valueOf(refundqry.get("pay_status").toString()) == 2){//未知
-                        return ResultUtil.error("退款返回未知异常");
-                    }
-                }
+                Map<String, String> merrefund = payMoneyUtil.wxRefund(query.getCode(), orderCrossCity.getOrderNum(), String.valueOf(query.getAmount()), String.valueOf(query.getAmount()), "");
+                System.err.println("跨城退款数据:::"+merrefund);
+                //添加交易明细
+                transactionDetailsService.saveData(orderCrossCity.getUserId(), "跨城订单取消退款", query.getAmount(), 1, 1, 1, 3, id);
+                integer = orderCancelService.saveData(id, 3, reason, remark, null, null, 2, 1, uid);
             }
 
             //添加负的收入明细
-            List<Income> incomes = incomeService.selectList(new EntityWrapper<Income>().eq("type", 2).eq("incomeId", id).eq("orderType", 3));
-            for(Income income : incomes){
-                if(income.getUserType() == 2){//处理司机的收入
-                    Driver driver = driverService.selectById(income.getObjectId());
-                    driver.setBalance(driver.getBalance() - income.getMoney());
-                    driver.setBusinessMoney(driver.getBusinessMoney() - income.getMoney());
-                    driver.setLaveBusinessMoney(driver.getLaveBusinessMoney() - income.getMoney());
-                    driverService.updateById(driver);
-                }
-                Income income1 = new Income();
-                BeanUtils.copyProperties(income, income1);
-                income1.setMoney(income.getMoney() * -1);
-                income1.setId(null);
-                income1.setInsertTime(new Date());
-                incomeService.insert(income1);
-            }
+//            List<Income> incomes = incomeService.selectList(new EntityWrapper<Income>().eq("type", 2).eq("incomeId", id).eq("orderType", 3));
+//            for(Income income : incomes){
+//                if(income.getUserType() == 2){//处理司机的收入
+//                    Driver driver = driverService.selectById(income.getObjectId());
+//                    driver.setBalance(driver.getBalance() - income.getMoney());
+//                    driver.setBusinessMoney(driver.getBusinessMoney() - income.getMoney());
+//                    driver.setLaveBusinessMoney(driver.getLaveBusinessMoney() - income.getMoney());
+//                    driverService.updateById(driver);
+//                }
+//                Income income1 = new Income();
+//                BeanUtils.copyProperties(income, income1);
+//                income1.setMoney(income.getMoney() * -1);
+//                income1.setId(null);
+//                income1.setInsertTime(new Date());
+//                incomeService.insert(income1);
+//            }
         }
 
         //添加消息
@@ -1303,8 +1348,8 @@
         if(null == distance){
             System.err.println("查询距离出错了");
         }else{
-            d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000)).setScale(2, BigDecimal.ROUND_HALF_EVEN).toString();
-            t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60)).setScale(2, BigDecimal.ROUND_HALF_EVEN).intValue() + "";
+            d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000),2, BigDecimal.ROUND_HALF_EVEN).toString();
+            t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60),2,BigDecimal.ROUND_HALF_EVEN).toString();
         }
         OrderServerWarpper orderServerWarpper = new OrderServerWarpper();
         orderServerWarpper.setOrderId(orderCrossCity.getId());
@@ -1312,6 +1357,18 @@
         orderServerWarpper.setState(orderCrossCity.getState());
         orderServerWarpper.setLon(null != value ? value.split(",")[0] : "0.0");
         orderServerWarpper.setLat(null != value ? value.split(",")[1] : "0.0");
+        value = value == null ? "0.0,0.0" : value;
+        double[] doubles = GpsCoordinateUtils.calBD09toGCJ02(Double.parseDouble(value.split(",")[1]), Double.parseDouble(value.split(",")[0]));
+        orderServerWarpper.setNextLongitude(String.valueOf(doubles[0]));
+        orderServerWarpper.setNextLatitude(String.valueOf(doubles[1]));
+        // 起点地址转换
+        doubles = GpsCoordinateUtils.calBD09toGCJ02(orderCrossCity.getStartLat(), orderCrossCity.getStartLon());
+        orderServerWarpper.setStartLat(String.valueOf(doubles[0]));
+        orderServerWarpper.setStartLon(String.valueOf(doubles[1]));
+        // 终点地址转换
+        doubles = GpsCoordinateUtils.calBD09toGCJ02(orderCrossCity.getEndLat(), orderCrossCity.getEndLon());
+        orderServerWarpper.setEndLat(String.valueOf(doubles[0]));
+        orderServerWarpper.setEndLon(String.valueOf(doubles[1]));
         orderServerWarpper.setReassignNotice(orderCrossCity.getReassignNotice());
         if(orderCrossCity.getState() == 2 || orderCrossCity.getState() == 3){//前往预约地
             orderServerWarpper.setReservationMileage(d);
@@ -1740,6 +1797,20 @@
         return orderCrossCityMapper.queryListOrder(driverId, lineShiftId, state, day);
     }
 
+    @Override
+    public void autoCancelOrder() {
+        LocalDateTime localDateTime = LocalDateTime.now();
+        LocalDateTime dateTime = localDateTime.minusMinutes(30);
+        String time = dateUtil.localDateTimeToStringHHmm(dateTime);
+        List<OrderCrossCity> orderCrossCities = this.selectList(new EntityWrapper<OrderCrossCity>().eq("state", 7).like("insertTime", time));
+        if(!CollectionUtils.isEmpty(orderCrossCities)){
+            for (OrderCrossCity orderCrossCity : orderCrossCities) {
+                orderCrossCity.setState(10);
+            }
+            this.updateBatchById(orderCrossCities);
+        }
+    }
+
     /**
      * 获取订单编号
      * @return
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OpenCityBusinessServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OpenCityBusinessServiceImpl.java
index 20720c1..c14690e 100644
--- a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OpenCityBusinessServiceImpl.java
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OpenCityBusinessServiceImpl.java
@@ -36,6 +36,7 @@
         if(openCityBusinesses.size() == 0){
             openCityBusinesses = openCityBusinessMapper.queryBusiness(province, null, null);
         }
+        System.err.println(openCityBusinesses);
         List<BaseWarpper> list = new ArrayList<>();
         for(OpenCityBusiness b : openCityBusinesses){
             BaseWarpper baseWarpper = new BaseWarpper();
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/DateUtil.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/DateUtil.java
index 9519160..1b6fa9c 100644
--- a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/DateUtil.java
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/DateUtil.java
@@ -5,6 +5,9 @@
 
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 
 /**
@@ -110,6 +113,28 @@
         return list;
     }
 
+    /**
+     * localdate转为字符串
+     *
+     * @param time localdate
+     * @return 字符串
+     */
+    public String localDateToString(LocalDate time) {
+        DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+        return df.format(time);
+    }
+
+    /**
+     * localdatetime转为字符串
+     *
+     * @param time localdatetime
+     * @return 字符串
+     */
+    public static String localDateTimeToStringHHmm(LocalDateTime time) {
+        DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
+        return df.format(time);
+    }
+
 
     /**
      * 获取月初和月末日期
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java
index 58322c9..d3f4a9e 100644
--- a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java
@@ -351,21 +351,24 @@
      * @return
      */
     public Map<String, String> getDistance(String origins, String destination, Integer type){
+
+        String[] split = origins.split(",");
+        String[] split1 = destination.split(",");
+        origins = split[1] + "," + split[0];
+        destination = split1[1] + "," + split1[0];
+
         String url = "https://api.map.baidu.com/directionlite/v1/driving?origin="+origins+"&destination="+destination+"&ak="+key;
         String forObject = restTemplate.getForObject(url, String.class);
         JSONObject jsonObject = JSON.parseObject(forObject);
-        System.err.println("获取距离"+jsonObject);
         String status = jsonObject.getString("status");
 //        gdInterfaceService.saveData("https://restapi.amap.com/v3/distance", "查询两点间的距离");
         if(status.equals("0")){
             JSONObject result = jsonObject.getJSONObject("result");
             JSONArray results = result.getJSONArray("routes");
-            System.err.println("路线数组"+results);
             JSONObject jsonObject1 = results.getJSONObject(0);
             Map<String, String> map = new HashMap<>();
             map.put("distance", jsonObject1.getString("distance"));//距离(米)
             map.put("duration", jsonObject1.getString("duration"));//预计时间(秒)
-            System.err.println("返回map");
             return map;
         }else{
             System.err.println(forObject);
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PayMoneyUtil.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PayMoneyUtil.java
index 5d768f1..82b0efe 100644
--- a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PayMoneyUtil.java
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PayMoneyUtil.java
@@ -527,6 +527,7 @@
 
         Map<String, String> map1 = null;
         String body1 = httpClientUtil.pushHttpRequsetXml(url, xmlString.toString(), new HashMap<>());
+        System.err.println("退款返回信息========"+body1);
         //将结果xml解析成map
         body1 = body1.replaceAll("<!\\[CDATA\\[","");
         body1 = body1.replaceAll("]]>", "");
@@ -537,6 +538,7 @@
         } catch (DocumentException e) {
             e.printStackTrace();
         }
+        System.err.println("跨城推送取消====="+map1);
         String return_code = map1.get("return_code");
         Map<String, String> map2 = new HashMap<>();
         if("SUCCESS".equals(return_code)){
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java
index 9965c15..d1445ad 100644
--- a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java
@@ -1,6 +1,7 @@
 package com.stylefeng.guns.modular.system.util;
 
 
+import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService;
 import com.stylefeng.guns.modular.system.service.IUserCouponRecordService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;
@@ -15,6 +16,8 @@
 
     @Autowired
     private IUserCouponRecordService userCouponRecordService;
+    @Autowired
+    private IOrderCrossCityService orderCrossCityService;
 
 
 
@@ -26,6 +29,8 @@
         try {
             //修改过期的优惠券
             userCouponRecordService.updateTimeOut();
+            // 自动取消未支付订单
+            orderCrossCityService.autoCancelOrder();
         } catch (Exception e) {
             e.printStackTrace();
         }

--
Gitblit v1.7.1