6.5
luodangjia
2024-06-05 06c5eda038f967dc0c0261e16eff0ad1a18e41e7
6.5
60个文件已修改
11个文件已添加
4386 ■■■■ 已修改文件
.idea/misc.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/OrderTransferMapper.java 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/OrderTransferMapper.xml 539 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/SiteMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/OrderTransferCar.java 1035 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderTransferService.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderTransferServiceImpl.java 124 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DispatchOKTravel/guns-admin/src/main/resources/application.yml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverNTTravel/.idea/workspace.xml 156 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java 54 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/OrderCrossCityController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TDriverFacialFailMapper.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TOrderTransferMapper.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TOrderTransferMapper.xml 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TDriverFacialFail.java 128 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOrderTransfer.java 563 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITOrderTransferService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderTransferServiceImpl.java 335 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiSendSms.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapGeocodingUtil.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverNTTravel/guns-admin/src/main/resources/application.yml 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/GeneralizationActivityController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementNTTravel/guns-admin/src/main/resources/application.yml 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementNTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSysReformist/tSysReformist.html 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserNTTravel/.idea/inspectionProfiles/Project_Default.xml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserNTTravel/.idea/workspace.xml 258 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserNTTravel/guns-admin/pom.xml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/model/OrderCharteredCar.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/server/impl/OrderCharteredCarServiceImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/ServerCarModelController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserCallbackController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/LineController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/OrderCrossCityController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/IOrderCrossCityService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TOpenCitySiteMapper.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/kaipiao/KaiPiaoUtil.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/kaipiao/entity/InvoiceDetails.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/kaipiao/entity/MaterialInfo.java 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/kaipiao/util/Jisuan.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOpenCitySite.java 161 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IServerCarModelService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/InvoiceServiceImpl.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OpenCityBusinessServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java 171 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/OssUploadUtil.java 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderWarpper.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/transfer/controller/OrderTransferController.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/transfer/dao/mapping/OrderTransferMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/transfer/model/SiteDto.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserNTTravel/guns-admin/src/main/resources/application.yml 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserNTTravel/guns-admin/src/main/resources/redis.properties 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserNTTravel/guns-admin/target/classes/META-INF/spring-configuration-metadata.json 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserNTTravel/guns-admin/target/classes/application.yml 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/transfer/dao/mapping/OrderTransferMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserNTTravel/guns-admin/target/classes/redis.properties 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserNTTravel/guns-core/target/classes/META-INF/spring-configuration-metadata.json 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.idea/misc.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="ProjectRootManager">
  <component name="ProjectRootManager" version="2" project-jdk-name="1.8" project-jdk-type="JavaSDK">
    <output url="file://$PROJECT_DIR$/out" />
  </component>
</project>
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
@@ -60,8 +60,8 @@
//    @Autowired
//    private ICBCPayUtil icbcPayUtil;
    @Autowired
    private IOrderTransferService orderTransferService;
    /**
     * 获取订单列表
     * @param type
@@ -100,6 +100,11 @@
            if(type == 2){//跨城
                list = orderCrossCityService.queryOrderList(search, orderSource, state, lineId, pageNum, size, uid);
            }
            if(type ==7){//接送机
                list = orderTransferService.queryOrderList(search, orderSource, state, pageNum, size, uid);
            }
            return ResultUtil.success(OrderListWarpper.getOrderListWarppers(list));
        }catch (Exception e){
            e.printStackTrace();
@@ -131,6 +136,9 @@
            if(orderType == 2){//跨城
                map = orderCrossCityService.queryOrderInfo(orderId);
            }
            if(orderType == 7){//专车
                map = orderTransferService.queryOrderInfo(orderId);
            }
            return ResultUtil.success(OrderInfoWarpper.getOrderInfoWarpper(map));
        }catch (Exception e){
            e.printStackTrace();
@@ -161,6 +169,9 @@
            if(orderType == 2){//跨城
                return orderCrossCityService.cancelOrder(orderId);
            }
            if(orderType == 7){//接送机
                return orderTransferService.cancelOrder(orderId);
            }
            return ResultUtil.success();
        }catch (Exception e){
            e.printStackTrace();
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/OrderTransferMapper.java
New file
@@ -0,0 +1,95 @@
package com.stylefeng.guns.modular.system.dao;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.stylefeng.guns.modular.system.model.OrderPrivateCar;
import com.stylefeng.guns.modular.system.model.OrderTransferCar;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
import java.util.Map;
public interface OrderTransferMapper extends BaseMapper<OrderTransferCar> {
    /**
     * 根据状态数据订单数据
     * @param uid
     * @param orderType
     * @param state
     * @return
     * @throws Exception
     */
    List<OrderTransferCar> queryByState(@Param("uid") Integer uid, @Param("orderType") Integer orderType,
                                       @Param("type") Integer type, @Param("state") Integer...state) throws Exception;
    List<OrderPrivateCar> query(@Param("start") Date start, @Param("end") Date end) throws Exception;
    List<OrderTransferCar> queryByState_(@Param("uid") Integer uid, @Param("state") Integer... state);
    /**
     * 获取用户的订单列表
     * @param uid
     * @param pageNum
     * @param size
     * @return
     */
    List<Map<String, Object>> queryMyOrderList(@Param("uid") Integer uid, @Param("pageNum") Integer pageNum,
                                               @Param("size") Integer size);
    /**
     * 获取用户单发票页面的订单列表
     * @param type          开票状态(1=未开票,2=已开票)
     * @param startTime     订单开始时间
     * @param endTime       订单结束时间
     * @param startMoney    订单金额范围
     * @param endMoney
     * @param uid
     * @return
     */
    List<Map<String, Object>> queryInvoiceOrder(@Param("type") Integer type, @Param("startTime") Date startTime,
                                                @Param("endTime") Date endTime, @Param("startMoney") Double startMoney,
                                                @Param("endMoney") Double endMoney, @Param("uid") Integer uid);
    /**
     * 获取订单详情
     * @param orderId
     * @return
     */
    Map<String, Object> queryOrderInfo(@Param("orderId") Integer orderId);
    /**
     * 获取历史消费记录
     * @param uid
     * @return
     */
    List<Map<String, Object>> queryMyTravelRecord(@Param("uid") Integer uid);
    /**
     * 获取红包使用记录
     * @param uid
     * @return
     */
    List<Map<String, Object>> queryRedEnvelope(@Param("uid") Integer uid);
    List<OrderPrivateCar> queryByDriver(@Param("driverId") Integer driverId, @Param("state") Integer...state);
    List<Map<String, Object>> queryOrderList(@Param("search") String search, @Param("orderSource") List<String> orderSource,
                                             @Param("state") List<String> state, @Param("companyId") Integer companyId,
                                             @Param("pageNum") Integer pageNum, @Param("size") Integer size);}
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/OrderTransferMapper.xml
New file
@@ -0,0 +1,539 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.stylefeng.guns.modular.system.dao.OrderTransferMapper">
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.OrderTransferCar">
        <id column="id" property="id"/>
        <result column="type" property="type"/>
        <result column="crossCityOrderId" property="crossCityOrderId"/>
        <result column="place" property="place"/>
        <result column="userId" property="userId"/>
        <result column="serverCarModelId" property="serverCarModelId"/>
        <result column="driverId" property="driverId"/>
        <result column="carId" property="carId"/>
        <result column="orderNum" property="orderNum"/>
        <result column="placementLon" property="placementLon"/>
        <result column="placementLat" property="placementLat"/>
        <result column="placementAddress" property="placementAddress"/>
        <result column="startLon" property="startLon"/>
        <result column="startLat" property="startLat"/>
        <result column="startAddress" property="startAddress"/>
        <result column="endLon" property="endLon"/>
        <result column="endLat" property="endLat"/>
        <result column="endAddress" property="endAddress"/>
        <result column="boardingLon" property="boardingLon"/>
        <result column="boardingLat" property="boardingLat"/>
        <result column="boardingAddress" property="boardingAddress"/>
        <result column="boardingTime" property="boardingTime"/>
        <result column="getoffLon" property="getoffLon"/>
        <result column="getoffLat" property="getoffLat"/>
        <result column="getoffAddress" property="getoffAddress"/>
        <result column="getoffTime" property="getoffTime"/>
        <result column="mileage" property="mileage"/>
        <result column="payManner" property="payManner"/>
        <result column="payType" property="payType"/>
        <result column="orderMoney" property="orderMoney"/>
        <result column="startMileage" property="startMileage"/>
        <result column="startMoney" property="startMoney"/>
        <result column="mileageKilometers" property="mileageKilometers"/>
        <result column="mileageMoney" property="mileageMoney"/>
        <result column="duration" property="duration"/>
        <result column="durationMoney" property="durationMoney"/>
        <result column="wait" property="wait"/>
        <result column="waitMoney" property="waitMoney"/>
        <result column="longDistance" property="longDistance"/>
        <result column="longDistanceMoney" property="longDistanceMoney"/>
        <result column="parkMoney" property="parkMoney"/>
        <result column="roadTollMoney" property="roadTollMoney"/>
        <result column="redPacketMoney" property="redPacketMoney"/>
        <result column="couponMoney" property="couponMoney"/>
        <result column="redPacketId" property="redPacketId"/>
        <result column="couponId" property="couponId"/>
        <result column="discount" property="discount"/>
        <result column="discountMoney" property="discountMoney"/>
        <result column="activityId" property="activityId"/>
        <result column="companyId" property="companyId"/>
        <result column="payMoney" property="payMoney"/>
        <result column="substitute" property="substitute"/>
        <result column="passengers" property="passengers"/>
        <result column="passengersPhone" property="passengersPhone"/>
        <result column="state" property="state"/>
        <result column="insertTime" property="insertTime"/>
        <result column="travelTime" property="travelTime"/>
        <result column="snatchOrderTime" property="snatchOrderTime"/>
        <result column="setOutTime" property="setOutTime"/>
        <result column="arriveTime" property="arriveTime"/>
        <result column="startServiceTime" property="startServiceTime"/>
        <result column="endServiceTime" property="endServiceTime"/>
        <result column="orderType" property="orderType"/>
        <result column="orderSource" property="orderSource"/>
        <result column="invoiceId" property="invoiceId"/>
        <result column="isReassign" property="isReassign"/>
        <result column="reassignNotice" property="reassignNotice"/>
        <result column="trackId" property="trackId"/>
        <result column="isDelete" property="isDelete"/>
        <result column="oldState" property="oldState"/>
        <result column="telX" property="telX"/>
        <result column="bindId" property="bindId"/>
    </resultMap>
    <select id="queryByState" resultType="OrderTransferCar">
        select
        id as id,
        `type` as `type`,
        userId as userId,
        serverCarModelId as serverCarModelId,
        driverId as driverId,
        carId as carId,
        orderNum as orderNum,
        placementLon as placementLon,
        placementLat as placementLat,
        placementAddress as placementAddress,
        startLon as startLon,
        startLat as startLat,
        startAddress as startAddress,
        endLon as endLon,
        endLat as endLat,
        endAddress as endAddress,
        boardingLon as boardingLon,
        boardingLat as boardingLat,
        boardingAddress as boardingAddress,
        boardingTime as boardingTime,
        getoffLon as getoffLon,
        getoffLat as getoffLat,
        getoffAddress as getoffAddress,
        getoffTime as getoffTime,
        mileage as mileage,
        payManner as payManner,
        payType as payType,
        orderMoney as orderMoney,
        startMileage as startMileage,
        startMoney as startMoney,
        mileageKilometers as mileageKilometers,
        mileageMoney as mileageMoney,
        duration as duration,
        durationMoney as durationMoney,
        wait as wait,
        waitMoney as waitMoney,
        longDistance as longDistance,
        longDistanceMoney as longDistanceMoney,
        parkMoney as parkMoney,
        roadTollMoney as roadTollMoney,
        redPacketMoney as redPacketMoney,
        couponMoney as couponMoney,
        redPacketId as redPacketId,
        couponId as couponId,
        discount as discount,
        discountMoney as discountMoney,
        activityId as activityId,
        companyId as companyId,
        payMoney as payMoney,
        substitute as substitute,
        passengers as passengers,
        passengersPhone as passengersPhone,
        state as state,
        insertTime as insertTime,
        travelTime as travelTime,
        snatchOrderTime as snatchOrderTime,
        setOutTime as setOutTime,
        arriveTime as arriveTime,
        startServiceTime as startServiceTime,
        endServiceTime as endServiceTime,
        orderType as orderType,
        orderSource as orderSource,
        invoiceId as invoiceId,
        isReassign as isReassign,
        reassignNotice as reassignNotice,
        trackId as trackId,
        isDelete as isDelete,
        oldState as oldState,
        telX as telX,
        bindId as bindId
        from t_order_transfer where isDelete = 1 and userId = #{uid}
        <if test="null != orderType">
            and orderType = #{orderType}
        </if>
        <if test="null != state">
            and state in
            <foreach collection="state" item="item" index="index" open="(" separator="," close=")">
                #{item}
            </foreach>
        </if>
        <if test="null != type">
            and `type` = #{type}
        </if>
    </select>
    <select id="query" resultType="OrderTransferCar">
        select
        id as id,
        `type` as `type`,
        userId as userId,
        serverCarModelId as serverCarModelId,
        driverId as driverId,
        carId as carId,
        orderNum as orderNum,
        placementLon as placementLon,
        placementLat as placementLat,
        placementAddress as placementAddress,
        startLon as startLon,
        startLat as startLat,
        startAddress as startAddress,
        endLon as endLon,
        endLat as endLat,
        endAddress as endAddress,
        boardingLon as boardingLon,
        boardingLat as boardingLat,
        boardingAddress as boardingAddress,
        boardingTime as boardingTime,
        getoffLon as getoffLon,
        getoffLat as getoffLat,
        getoffAddress as getoffAddress,
        getoffTime as getoffTime,
        mileage as mileage,
        payManner as payManner,
        payType as payType,
        orderMoney as orderMoney,
        startMileage as startMileage,
        startMoney as startMoney,
        mileageKilometers as mileageKilometers,
        mileageMoney as mileageMoney,
        duration as duration,
        durationMoney as durationMoney,
        wait as wait,
        waitMoney as waitMoney,
        longDistance as longDistance,
        longDistanceMoney as longDistanceMoney,
        parkMoney as parkMoney,
        roadTollMoney as roadTollMoney,
        redPacketMoney as redPacketMoney,
        couponMoney as couponMoney,
        redPacketId as redPacketId,
        couponId as couponId,
        discount as discount,
        discountMoney as discountMoney,
        activityId as activityId,
        companyId as companyId,
        payMoney as payMoney,
        substitute as substitute,
        passengers as passengers,
        passengersPhone as passengersPhone,
        state as state,
        insertTime as insertTime,
        travelTime as travelTime,
        snatchOrderTime as snatchOrderTime,
        setOutTime as setOutTime,
        arriveTime as arriveTime,
        startServiceTime as startServiceTime,
        endServiceTime as endServiceTime,
        orderType as orderType,
        orderSource as orderSource,
        invoiceId as invoiceId,
        isReassign as isReassign,
        reassignNotice as reassignNotice,
        trackId as trackId,
        isDelete as isDelete,
        oldState as oldState,
        telX as telX,
        bindId as bindId
        from t_order_private_car where isDelete = 1
        <if test="null != start and null != end">
            and insertTime between #{start} and #{end}
        </if>
    </select>
    <select id="queryByState_" resultType="OrderTransferCar">
        select
        id as id,
        `type` as `type`,
        userId as userId,
        serverCarModelId as serverCarModelId,
        driverId as driverId,
        carId as carId,
        orderNum as orderNum,
        placementLon as placementLon,
        placementLat as placementLat,
        placementAddress as placementAddress,
        startLon as startLon,
        startLat as startLat,
        startAddress as startAddress,
        endLon as endLon,
        endLat as endLat,
        endAddress as endAddress,
        boardingLon as boardingLon,
        boardingLat as boardingLat,
        boardingAddress as boardingAddress,
        boardingTime as boardingTime,
        getoffLon as getoffLon,
        getoffLat as getoffLat,
        getoffAddress as getoffAddress,
        getoffTime as getoffTime,
        mileage as mileage,
        payManner as payManner,
        payType as payType,
        orderMoney as orderMoney,
        startMileage as startMileage,
        startMoney as startMoney,
        mileageKilometers as mileageKilometers,
        mileageMoney as mileageMoney,
        duration as duration,
        durationMoney as durationMoney,
        wait as wait,
        waitMoney as waitMoney,
        longDistance as longDistance,
        longDistanceMoney as longDistanceMoney,
        parkMoney as parkMoney,
        roadTollMoney as roadTollMoney,
        redPacketMoney as redPacketMoney,
        couponMoney as couponMoney,
        redPacketId as redPacketId,
        couponId as couponId,
        discount as discount,
        discountMoney as discountMoney,
        activityId as activityId,
        companyId as companyId,
        payMoney as payMoney,
        substitute as substitute,
        passengers as passengers,
        passengersPhone as passengersPhone,
        state as state,
        insertTime as insertTime,
        travelTime as travelTime,
        snatchOrderTime as snatchOrderTime,
        setOutTime as setOutTime,
        arriveTime as arriveTime,
        startServiceTime as startServiceTime,
        endServiceTime as endServiceTime,
        orderType as orderType,
        orderSource as orderSource,
        invoiceId as invoiceId,
        isReassign as isReassign,
        reassignNotice as reassignNotice,
        trackId as trackId,
        isDelete as isDelete,
        oldState as oldState,
        telX as telX,
        bindId as bindId
        from t_order_transfer where isDelete = 1 and userId = #{uid}
        <if test="null != state">
            and state in
            <foreach collection="state" item="item" index="index" open="(" separator="," close=")">
                #{item}
            </foreach>
        </if>
    </select>
    <select id="queryMyOrderList" resultType="map">
        select
        id as orderId,
        DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i') as orderTime,
        DATE_FORMAT(travelTime, '%m月%d日 %H:%i') as time,
        startAddress as startAddress,
        endAddress as endAddress,
        driverId as driverId,
        (1) as orderType,
        state as state,
        oldState as oldState
        from t_order_transfer where userId = #{uid} order by insertTime desc limit #{pageNum}, #{size}
    </select>
    <select id="queryInvoiceOrder" resultType="map">
        select
        id as id,
        DATE_FORMAT(travelTime, '%Y-%m-%d %H:%i') as time,
        startAddress as startAddress,
        endAddress as endAddress,
        payMoney as payMoney,
        ('接送机订单') as orderName,
        if(invoiceId is null, 1, 2) as invoice,
        unix_timestamp(insertTime) as insertTime,
        (7) as orderType
        from t_order_transfer where state in (8, 9)
        <if test="type == 1">
            and invoiceId is null and invoiceId in (select id from t_invoice where state != 2)
        </if>
        <if test="type == 2">
            and invoiceId in (select id from t_invoice where state = 2)
        </if>
        <if test="null != startTime and null != endTime">
            and travelTime between #{startTime} and #{endTime}
        </if>
        <if test="null != startMoney and null != endMoney">
            and payMoney between #{startMoney} and #{endMoney}
        </if>
        <if test="null !=uid">
            and userId = #{uid}
        </if>
    </select>
    <select id="queryOrderInfo" resultType="map">
        select
            a.id as id,
            DATE_FORMAT(a.insertTime, '%Y/%m/%d/%H:%i') as orderTime,
            a.orderNum as orderNumber,
            DATE_FORMAT(a.travelTime, '%Y/%m/%d/%H:%i') as travelTime,
            CONCAT(b.nickName, '-', b.phone) as `user`,
            a.startAddress as startAddress,
            a.endAddress as endAddress,
            c.`name` as serverCarModel,
            a.orderMoney as orderMoney,
            CONCAT(d.`name`, '-',d.phone) as driver,
            e.carLicensePlate as car,
            CONCAT(g.`name`, '-',g.phone) as originalDriver,
            a.state as state
        from t_order_transfer a
                 left join t_user b on (a.userId = b.id)
                 left join t_server_carmodel c on (a.serverCarModelId = c.id)
                 left join t_driver d on (a.driverId = d.id)
                 left join t_car e on (a.carId = e.id)
                 left join (select * from t_reassign where orderType = 1 and orderId = #{orderId} order by insertTime desc limit 0, 1) as f on (a.id = f.orderId and f.orderType = 1)
                 left join t_driver g on (f.originalDriverId = g.id)
        where a.id = #{orderId}
    </select>
    <select id="queryMyTravelRecord" resultType="map">
        select
        (payMoney * -1) as money,
        DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i') as time,
        ('接送机订单') as name,
        UNIX_TIMESTAMP(insertTime) as insertTime
        from t_order_transfer where payMoney != 0 and userId = #{uid} and state in (8, 9, 10, 11, 12)
    </select>
    <select id="queryRedEnvelope" resultType="map">
        select
        redPacketMoney as money,
        DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i') as time,
        ('接送机订单') as name,
        UNIX_TIMESTAMP(insertTime) as insertTime
        from t_order_transfer where userId = #{uid} and state in (8, 9) and redPacketId is not null
    </select>
    <select id="queryByDriver" resultType="OrderPrivateCar">
        select
        id as id,
        `type` as `type`,
        userId as userId,
        serverCarModelId as serverCarModelId,
        driverId as driverId,
        carId as carId,
        orderNum as orderNum,
        placementLon as placementLon,
        placementLat as placementLat,
        placementAddress as placementAddress,
        startLon as startLon,
        startLat as startLat,
        startAddress as startAddress,
        endLon as endLon,
        endLat as endLat,
        endAddress as endAddress,
        boardingLon as boardingLon,
        boardingLat as boardingLat,
        boardingAddress as boardingAddress,
        boardingTime as boardingTime,
        getoffLon as getoffLon,
        getoffLat as getoffLat,
        getoffAddress as getoffAddress,
        getoffTime as getoffTime,
        mileage as mileage,
        payManner as payManner,
        payType as payType,
        orderMoney as orderMoney,
        startMileage as startMileage,
        startMoney as startMoney,
        mileageKilometers as mileageKilometers,
        mileageMoney as mileageMoney,
        duration as duration,
        durationMoney as durationMoney,
        wait as wait,
        waitMoney as waitMoney,
        longDistance as longDistance,
        longDistanceMoney as longDistanceMoney,
        parkMoney as parkMoney,
        roadTollMoney as roadTollMoney,
        redPacketMoney as redPacketMoney,
        couponMoney as couponMoney,
        redPacketId as redPacketId,
        couponId as couponId,
        discount as discount,
        discountMoney as discountMoney,
        activityId as activityId,
        companyId as companyId,
        payMoney as payMoney,
        substitute as substitute,
        passengers as passengers,
        passengersPhone as passengersPhone,
        state as state,
        insertTime as insertTime,
        travelTime as travelTime,
        snatchOrderTime as snatchOrderTime,
        setOutTime as setOutTime,
        arriveTime as arriveTime,
        startServiceTime as startServiceTime,
        endServiceTime as endServiceTime,
        orderType as orderType,
        orderSource as orderSource,
        invoiceId as invoiceId,
        isReassign as isReassign,
        reassignNotice as reassignNotice,
        trackId as trackId,
        isDelete as isDelete,
        oldState as oldState,
        telX as telX,
        bindId as bindId
        from t_order_private_car where isDelete = 1 and driverId = #{driverId} and state in
        <foreach collection="state" item="item" index="index" open="(" separator="," close=")">
            #{item}
        </foreach>
    </select>
    <select id="queryOrderList" resultType="map">
        select
        a.id as id,
        DATE_FORMAT(a.insertTime, '%Y年%m月%d日%H:%i') as orderTime,
        CONCAT(b.nickName, '-', b.phone) as `user`,
        a.startAddress as startAddress,
        a.endAddress as endAddress,
        a.state as state
        from t_order_transfer a
        left join t_user b on (a.userId = b.id)
        left join t_driver c on (a.driverId = c.id)
        left join t_car d on (a.carId = d.id)
        where a.isDelete = 1 and a.companyId = #{companyId}
        <if test="null != search and '' != search">
            and (a.passengersPhone = #{search} or c.name like CONCAT('%', #{search}, '%') or c.phone like CONCAT('%', #{search}, '%') or d.carLicensePlate like CONCAT('%', #{search}, '%'))
        </if>
        <if test="null != orderSource">
            and a.orderSource in
            <foreach collection="orderSource" item="item" index="index" open="(" separator="," close=")">
                #{item}
            </foreach>
        </if>
        <if test="null != state">
            and a.state in
            <foreach collection="state" item="item" index="index" open="(" separator="," close=")">
                #{item}
            </foreach>
        </if>
        order by a.insertTime desc
        <if test="null != pageNum and null != size">
            limit #{pageNum}, #{size}
        </if>
    </select>
</mapper>
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/SiteMapper.xml
@@ -24,7 +24,7 @@
        select * from
        (
        select si.id as id, si.`name` as `name`, si.provinceCode as cityCode, si.province as cityName from t_site si
        where si.province like '%市' and si.state = 1 and si.id in
        where si.city like '%市' and si.state = 1 and si.id in
        (
        select ls.siteId
        from t_line_site ls
@@ -37,7 +37,7 @@
        UNION ALL
        select si.id as id, si.`name` as `name`, si.cityCode as cityCode, si.city as cityName from t_site si
        where si.province not like '%市' and si.state = 1 and si.id in
        where si.city not like '%市' and si.state = 1 and si.id in
        (
        select ls.siteId from t_line_site ls
        left join t_line_company lc on (ls.lineId = lc.lineId)
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/OrderTransferCar.java
New file
@@ -0,0 +1,1035 @@
package com.stylefeng.guns.modular.system.model;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import java.util.Date;
/**
 * 专车车订单
 */
@TableName("t_order_transfer")
public class OrderTransferCar {
    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    @TableField("id")
    private Integer id;
    /**
     * 订单类型(1=普通订单,2=摆渡订单)
     */
    @TableField("type")
    private Integer type;
    /**
     * 跨城订单id(摆渡车专用)
     */
    @TableField("crossCityOrderId")
    private Integer crossCityOrderId;
    /**
     * 摆渡方位(1=跨城起点,2=跨城终点)
     */
    @TableField("place")
    private Integer place;
    /**
     * 用户id
     */
    @TableField("userId")
    private Integer userId;
    /**
     * 服务车型id
     */
    @TableField("serverCarModelId")
    private Integer serverCarModelId;
    /**
     * 司机id
     */
    @TableField("driverId")
    private Integer driverId;
    /**
     * 车辆id
     */
    @TableField("carId")
    private Integer carId;
    /**
     * 订单号
     */
    @TableField("orderNum")
    private String orderNum;
    /**
     * 下单地点经度
     */
    @TableField("placementLon")
    private Double placementLon;
    /**
     * 下单地点纬度
     */
    @TableField("placementLat")
    private Double placementLat;
    /**
     * 下单地点
     */
    @TableField("placementAddress")
    private String placementAddress;
    /**
     * 起点经度
     */
    @TableField("startLon")
    private Double startLon;
    /**
     * 起点纬度
     */
    @TableField("startLat")
    private Double startLat;
    /**
     * 起点
     */
    @TableField("startAddress")
    private String startAddress;
    /**
     * 目的地经度
     */
    @TableField("endLon")
    private Double endLon;
    /**
     * 目的地纬度
     */
    @TableField("endLat")
    private Double endLat;
    /**
     * 目的地
     */
    @TableField("endAddress")
    private String endAddress;
    /**
     * 上车点经度
     */
    @TableField("boardingLon")
    private Double boardingLon;
    /**
     * 上车点纬度
     */
    @TableField("boardingLat")
    private Double boardingLat;
    /**
     * 上车地点
     */
    @TableField("boardingAddress")
    private String boardingAddress;
    /**
     * 上车时间
     */
    @TableField("boardingTime")
    private Date boardingTime;
    /**
     * 下车点经度
     */
    @TableField("getoffLon")
    private Double getoffLon;
    /**
     * 下车点纬度
     */
    @TableField("getoffLat")
    private Double getoffLat;
    /**
     * 下车点
     */
    @TableField("getoffAddress")
    private String getoffAddress;
    /**
     * 下车时间
     */
    @TableField("getoffTime")
    private Date getoffTime;
    /**
     * 行驶里程数(米)
     */
    @TableField("mileage")
    private Double mileage;
    /**
     * 支付方式(1=OK平台支付,2=其他方式支付)
     */
    @TableField("payManner")
    private Integer payManner;
    /**
     * 支付方式(1=微信,2=支付宝,3=余额)
     */
    @TableField("payType")
    private Integer payType;
    /**
     * 订单金额
     */
    @TableField("orderMoney")
    private Double orderMoney;
    /**
     * 起步里程
     */
    @TableField("startMileage")
    private Double startMileage;
    /**
     * 起步价
     */
    @TableField("startMoney")
    private Double startMoney;
    /**
     * 里程公里
     */
    @TableField("mileageKilometers")
    private Double mileageKilometers;
    /**
     * 里程费
     */
    @TableField("mileageMoney")
    private Double mileageMoney;
    /**
     * 时长分钟
     */
    @TableField("duration")
    private Double duration;
    /**
     * 时长费
     */
    @TableField("durationMoney")
    private Double durationMoney;
    /**
     * 等待分钟
     */
    @TableField("wait")
    private Double wait;
    /**
     * 等待费
     */
    @TableField("waitMoney")
    private Double waitMoney;
    /**
     * 远途公里
     */
    @TableField("longDistance")
    private Double longDistance;
    /**
     * 远途费
     */
    @TableField("longDistanceMoney")
    private Double longDistanceMoney;
    /**
     * 停车费
     */
    @TableField("parkMoney")
    private Double parkMoney;
    /**
     * 过路费
     */
    @TableField("roadTollMoney")
    private Double roadTollMoney;
    /**
     * 红包抵扣金额
     */
    @TableField("redPacketMoney")
    private Double redPacketMoney;
    /**
     * 优惠券抵扣金额
     */
    @TableField("couponMoney")
    private Double couponMoney;
    /**
     * 红包id
     */
    @TableField("redPacketId")
    private Integer redPacketId;
    /**
     * 优惠券id
     */
    @TableField("couponId")
    private Integer couponId;
    /**
     * 折扣
     */
    @TableField("discount")
    private Double discount;
    /**
     * 折扣优惠金额
     */
    @TableField("discountMoney")
    private Double discountMoney;
    /**
     * 折扣活动id
     */
    @TableField("activityId")
    private Integer activityId;
    /**
     * 公司id
     */
    @TableField("companyId")
    private Integer companyId;
    /**
     * 支付金额
     */
    @TableField("payMoney")
    private Double payMoney;
    /**
     * 是否是代下单(0:否,1:是)
     */
    @TableField("substitute")
    private Integer substitute;
    /**
     * 乘车人姓名
     */
    @TableField("passengers")
    private String passengers;
    /**
     * 乘车人电话
     */
    @TableField("passengersPhone")
    private String passengersPhone;
    /**
     * 订单状态(1=待接单,2=待出发,3=待到达预约地点,4=待乘客上车,5=服务中,6=完成服务,7=待支付,8=待评价,9=已完成,10=已取消,11=改派中,12=取消待支付)
     */
    @TableField("state")
    private Integer state;
    /**
     * 下单时间
     */
    @TableField("insertTime")
    private Date insertTime;
    /**
     * 出行时间
     */
    @TableField("travelTime")
    private Date travelTime;
    /**
     * 抢单时间
     */
    @TableField("snatchOrderTime")
    private Date snatchOrderTime;
    /**
     * 司机点出发时间
     */
    @TableField("setOutTime")
    private Date setOutTime;
    /**
     * 司机到达预约地点时间
     */
    @TableField("arriveTime")
    private Date arriveTime;
    /**
     * 开始服务时间
     */
    @TableField("startServiceTime")
    private Date startServiceTime;
    /**
     * 结束服务时间
     */
    @TableField("endServiceTime")
    private Date endServiceTime;
    /**
     * 订单类型(1=普通,2=预约)
     */
    @TableField("orderType")
    private Integer orderType;
    /**
     * 订单来源(1:APP下单,2:扫码下单,3:小程序下单,4:司机下单,5:调度下单)
     */
    @TableField("orderSource")
    private Integer orderSource;
    /**
     * 发票id
     */
    @TableField("invoiceId")
    private Integer invoiceId;
    /**
     * 是否是改派单(1=否,=是)
     * @return
     */
    @TableField("isReassign")
    private Integer isReassign;
    /**
     * 改派通知标识(0=没有改派,1=改派中,2=已改派)用于通知前端获取新司机数据
     */
    @TableField("reassignNotice")
    private Integer reassignNotice;
    /**
     * 高德猎鹰轨迹id
     * @return
     */
    @TableField("trackId")
    private String trackId;
    /**
     * 是否删除(1=否,2=是)
     */
    @TableField("isDelete")
    private Integer isDelete;
    /**
     * 该派前的订单状态
     * @return
     */
    @TableField("oldState")
    private Integer oldState;
    /**
     * 移动小号
     * @return
     */
    @TableField("telX")
    private String telX;
    /**
     * 绑定小号关系id
     * @return
     */
    @TableField("bindId")
    private String bindId;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public Integer getType() {
        return type;
    }
    public void setType(Integer type) {
        this.type = type;
    }
    public Integer getCrossCityOrderId() {
        return crossCityOrderId;
    }
    public void setCrossCityOrderId(Integer crossCityOrderId) {
        this.crossCityOrderId = crossCityOrderId;
    }
    public Integer getPlace() {
        return place;
    }
    public void setPlace(Integer place) {
        this.place = place;
    }
    public Integer getUserId() {
        return userId;
    }
    public void setUserId(Integer userId) {
        this.userId = userId;
    }
    public Integer getServerCarModelId() {
        return serverCarModelId;
    }
    public void setServerCarModelId(Integer serverCarModelId) {
        this.serverCarModelId = serverCarModelId;
    }
    public Integer getDriverId() {
        return driverId;
    }
    public void setDriverId(Integer driverId) {
        this.driverId = driverId;
    }
    public Integer getCarId() {
        return carId;
    }
    public void setCarId(Integer carId) {
        this.carId = carId;
    }
    public String getOrderNum() {
        return orderNum;
    }
    public void setOrderNum(String orderNum) {
        this.orderNum = orderNum;
    }
    public Double getPlacementLon() {
        return placementLon;
    }
    public void setPlacementLon(Double placementLon) {
        this.placementLon = placementLon;
    }
    public Double getPlacementLat() {
        return placementLat;
    }
    public void setPlacementLat(Double placementLat) {
        this.placementLat = placementLat;
    }
    public String getPlacementAddress() {
        return placementAddress;
    }
    public void setPlacementAddress(String placementAddress) {
        this.placementAddress = placementAddress;
    }
    public Double getStartLon() {
        return startLon;
    }
    public void setStartLon(Double startLon) {
        this.startLon = startLon;
    }
    public Double getStartLat() {
        return startLat;
    }
    public void setStartLat(Double startLat) {
        this.startLat = startLat;
    }
    public String getStartAddress() {
        return startAddress;
    }
    public void setStartAddress(String startAddress) {
        this.startAddress = startAddress;
    }
    public Double getEndLon() {
        return endLon;
    }
    public void setEndLon(Double endLon) {
        this.endLon = endLon;
    }
    public Double getEndLat() {
        return endLat;
    }
    public void setEndLat(Double endLat) {
        this.endLat = endLat;
    }
    public String getEndAddress() {
        return endAddress;
    }
    public void setEndAddress(String endAddress) {
        this.endAddress = endAddress;
    }
    public Double getBoardingLon() {
        return boardingLon;
    }
    public void setBoardingLon(Double boardingLon) {
        this.boardingLon = boardingLon;
    }
    public Double getBoardingLat() {
        return boardingLat;
    }
    public void setBoardingLat(Double boardingLat) {
        this.boardingLat = boardingLat;
    }
    public String getBoardingAddress() {
        return boardingAddress;
    }
    public void setBoardingAddress(String boardingAddress) {
        this.boardingAddress = boardingAddress;
    }
    public Date getBoardingTime() {
        return boardingTime;
    }
    public void setBoardingTime(Date boardingTime) {
        this.boardingTime = boardingTime;
    }
    public Double getGetoffLon() {
        return getoffLon;
    }
    public void setGetoffLon(Double getoffLon) {
        this.getoffLon = getoffLon;
    }
    public Double getGetoffLat() {
        return getoffLat;
    }
    public void setGetoffLat(Double getoffLat) {
        this.getoffLat = getoffLat;
    }
    public String getGetoffAddress() {
        return getoffAddress;
    }
    public void setGetoffAddress(String getoffAddress) {
        this.getoffAddress = getoffAddress;
    }
    public Date getGetoffTime() {
        return getoffTime;
    }
    public void setGetoffTime(Date getoffTime) {
        this.getoffTime = getoffTime;
    }
    public Double getMileage() {
        return mileage;
    }
    public void setMileage(Double mileage) {
        this.mileage = mileage;
    }
    public Integer getPayManner() {
        return payManner;
    }
    public void setPayManner(Integer payManner) {
        this.payManner = payManner;
    }
    public Integer getPayType() {
        return payType;
    }
    public void setPayType(Integer payType) {
        this.payType = payType;
    }
    public Double getOrderMoney() {
        return orderMoney;
    }
    public void setOrderMoney(Double orderMoney) {
        this.orderMoney = orderMoney;
    }
    public Double getStartMileage() {
        return startMileage;
    }
    public void setStartMileage(Double startMileage) {
        this.startMileage = startMileage;
    }
    public Double getStartMoney() {
        return startMoney;
    }
    public void setStartMoney(Double startMoney) {
        this.startMoney = startMoney;
    }
    public Double getMileageKilometers() {
        return mileageKilometers;
    }
    public void setMileageKilometers(Double mileageKilometers) {
        this.mileageKilometers = mileageKilometers;
    }
    public Double getMileageMoney() {
        return mileageMoney;
    }
    public void setMileageMoney(Double mileageMoney) {
        this.mileageMoney = mileageMoney;
    }
    public Double getDuration() {
        return duration;
    }
    public void setDuration(Double duration) {
        this.duration = duration;
    }
    public Double getDurationMoney() {
        return durationMoney;
    }
    public void setDurationMoney(Double durationMoney) {
        this.durationMoney = durationMoney;
    }
    public Double getWait() {
        return wait;
    }
    public void setWait(Double wait) {
        this.wait = wait;
    }
    public Double getWaitMoney() {
        return waitMoney;
    }
    public void setWaitMoney(Double waitMoney) {
        this.waitMoney = waitMoney;
    }
    public Double getLongDistance() {
        return longDistance;
    }
    public void setLongDistance(Double longDistance) {
        this.longDistance = longDistance;
    }
    public Double getLongDistanceMoney() {
        return longDistanceMoney;
    }
    public void setLongDistanceMoney(Double longDistanceMoney) {
        this.longDistanceMoney = longDistanceMoney;
    }
    public Double getParkMoney() {
        return parkMoney;
    }
    public void setParkMoney(Double parkMoney) {
        this.parkMoney = parkMoney;
    }
    public Double getRoadTollMoney() {
        return roadTollMoney;
    }
    public void setRoadTollMoney(Double roadTollMoney) {
        this.roadTollMoney = roadTollMoney;
    }
    public Double getRedPacketMoney() {
        return redPacketMoney;
    }
    public void setRedPacketMoney(Double redPacketMoney) {
        this.redPacketMoney = redPacketMoney;
    }
    public Double getCouponMoney() {
        return couponMoney;
    }
    public void setCouponMoney(Double couponMoney) {
        this.couponMoney = couponMoney;
    }
    public Integer getRedPacketId() {
        return redPacketId;
    }
    public void setRedPacketId(Integer redPacketId) {
        this.redPacketId = redPacketId;
    }
    public Integer getCouponId() {
        return couponId;
    }
    public void setCouponId(Integer couponId) {
        this.couponId = couponId;
    }
    public Double getDiscount() {
        return discount;
    }
    public void setDiscount(Double discount) {
        this.discount = discount;
    }
    public Double getDiscountMoney() {
        return discountMoney;
    }
    public void setDiscountMoney(Double discountMoney) {
        this.discountMoney = discountMoney;
    }
    public Integer getActivityId() {
        return activityId;
    }
    public void setActivityId(Integer activityId) {
        this.activityId = activityId;
    }
    public Integer getCompanyId() {
        return companyId;
    }
    public void setCompanyId(Integer companyId) {
        this.companyId = companyId;
    }
    public Double getPayMoney() {
        return payMoney;
    }
    public void setPayMoney(Double payMoney) {
        this.payMoney = payMoney;
    }
    public Integer getSubstitute() {
        return substitute;
    }
    public void setSubstitute(Integer substitute) {
        this.substitute = substitute;
    }
    public String getPassengers() {
        return passengers;
    }
    public void setPassengers(String passengers) {
        this.passengers = passengers;
    }
    public String getPassengersPhone() {
        return passengersPhone;
    }
    public void setPassengersPhone(String passengersPhone) {
        this.passengersPhone = passengersPhone;
    }
    public Integer getState() {
        return state;
    }
    public void setState(Integer state) {
        this.state = state;
    }
    public Date getInsertTime() {
        return insertTime;
    }
    public void setInsertTime(Date insertTime) {
        this.insertTime = insertTime;
    }
    public Date getTravelTime() {
        return travelTime;
    }
    public void setTravelTime(Date travelTime) {
        this.travelTime = travelTime;
    }
    public Date getSnatchOrderTime() {
        return snatchOrderTime;
    }
    public void setSnatchOrderTime(Date snatchOrderTime) {
        this.snatchOrderTime = snatchOrderTime;
    }
    public Date getSetOutTime() {
        return setOutTime;
    }
    public void setSetOutTime(Date setOutTime) {
        this.setOutTime = setOutTime;
    }
    public Date getArriveTime() {
        return arriveTime;
    }
    public void setArriveTime(Date arriveTime) {
        this.arriveTime = arriveTime;
    }
    public Date getStartServiceTime() {
        return startServiceTime;
    }
    public void setStartServiceTime(Date startServiceTime) {
        this.startServiceTime = startServiceTime;
    }
    public Date getEndServiceTime() {
        return endServiceTime;
    }
    public void setEndServiceTime(Date endServiceTime) {
        this.endServiceTime = endServiceTime;
    }
    public Integer getOrderType() {
        return orderType;
    }
    public void setOrderType(Integer orderType) {
        this.orderType = orderType;
    }
    public Integer getOrderSource() {
        return orderSource;
    }
    public void setOrderSource(Integer orderSource) {
        this.orderSource = orderSource;
    }
    public Integer getInvoiceId() {
        return invoiceId;
    }
    public void setInvoiceId(Integer invoiceId) {
        this.invoiceId = invoiceId;
    }
    public Integer getIsReassign() {
        return isReassign;
    }
    public void setIsReassign(Integer isReassign) {
        this.isReassign = isReassign;
    }
    public Integer getReassignNotice() {
        return reassignNotice;
    }
    public void setReassignNotice(Integer reassignNotice) {
        this.reassignNotice = reassignNotice;
    }
    public String getTrackId() {
        return trackId;
    }
    public void setTrackId(String trackId) {
        this.trackId = trackId;
    }
    public Integer getIsDelete() {
        return isDelete;
    }
    public void setIsDelete(Integer isDelete) {
        this.isDelete = isDelete;
    }
    public Integer getOldState() {
        return oldState;
    }
    public void setOldState(Integer oldState) {
        this.oldState = oldState;
    }
    public String getTelX() {
        return telX;
    }
    public void setTelX(String telX) {
        this.telX = telX;
    }
    public String getBindId() {
        return bindId;
    }
    public void setBindId(String bindId) {
        this.bindId = bindId;
    }
    @Override
    public String toString() {
        return "OrderPrivateCar{" +
                "id=" + id +
                ", type=" + type +
                ", crossCityOrderId=" + crossCityOrderId +
                ", place=" + place +
                ", userId=" + userId +
                ", serverCarModelId=" + serverCarModelId +
                ", driverId=" + driverId +
                ", carId=" + carId +
                ", orderNum='" + orderNum + '\'' +
                ", placementLon=" + placementLon +
                ", placementLat=" + placementLat +
                ", placementAddress='" + placementAddress + '\'' +
                ", startLon=" + startLon +
                ", startLat=" + startLat +
                ", startAddress='" + startAddress + '\'' +
                ", endLon=" + endLon +
                ", endLat=" + endLat +
                ", endAddress='" + endAddress + '\'' +
                ", boardingLon=" + boardingLon +
                ", boardingLat=" + boardingLat +
                ", boardingAddress='" + boardingAddress + '\'' +
                ", boardingTime=" + boardingTime +
                ", getoffLon=" + getoffLon +
                ", getoffLat=" + getoffLat +
                ", getoffAddress='" + getoffAddress + '\'' +
                ", getoffTime=" + getoffTime +
                ", mileage=" + mileage +
                ", payManner=" + payManner +
                ", payType=" + payType +
                ", orderMoney=" + orderMoney +
                ", startMileage=" + startMileage +
                ", startMoney=" + startMoney +
                ", mileageKilometers=" + mileageKilometers +
                ", mileageMoney=" + mileageMoney +
                ", duration=" + duration +
                ", durationMoney=" + durationMoney +
                ", wait=" + wait +
                ", waitMoney=" + waitMoney +
                ", longDistance=" + longDistance +
                ", longDistanceMoney=" + longDistanceMoney +
                ", parkMoney=" + parkMoney +
                ", roadTollMoney=" + roadTollMoney +
                ", redPacketMoney=" + redPacketMoney +
                ", couponMoney=" + couponMoney +
                ", redPacketId=" + redPacketId +
                ", couponId=" + couponId +
                ", discount=" + discount +
                ", discountMoney=" + discountMoney +
                ", activityId=" + activityId +
                ", companyId=" + companyId +
                ", payMoney=" + payMoney +
                ", substitute=" + substitute +
                ", passengers='" + passengers + '\'' +
                ", passengersPhone='" + passengersPhone + '\'' +
                ", state=" + state +
                ", insertTime=" + insertTime +
                ", travelTime=" + travelTime +
                ", snatchOrderTime=" + snatchOrderTime +
                ", setOutTime=" + setOutTime +
                ", arriveTime=" + arriveTime +
                ", startServiceTime=" + startServiceTime +
                ", endServiceTime=" + endServiceTime +
                ", orderType=" + orderType +
                ", orderSource=" + orderSource +
                ", invoiceId=" + invoiceId +
                ", isReassign=" + isReassign +
                ", reassignNotice=" + reassignNotice +
                ", trackId='" + trackId + '\'' +
                ", isDelete=" + isDelete +
                ", oldState=" + oldState +
                ", telX='" + telX + '\'' +
                ", bindId='" + bindId + '\'' +
                '}';
    }
}
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderTransferService.java
New file
@@ -0,0 +1,21 @@
package com.stylefeng.guns.modular.system.service;
import com.baomidou.mybatisplus.service.IService;
import com.stylefeng.guns.modular.system.model.OrderTransferCar;
import com.stylefeng.guns.modular.system.util.ResultUtil;
import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
import java.util.Date;
import java.util.List;
import java.util.Map;
public interface IOrderTransferService extends IService<OrderTransferCar> {
    List<Map<String, Object>> queryOrderList(String search, String orderSource, String state, Integer pageNum, Integer size, Integer uid) throws Exception;
    Map<String, Object> queryOrderInfo(Integer orderId) throws Exception;
    ResultUtil cancelOrder(Integer orderId) throws Exception;
}
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderTransferServiceImpl.java
New file
@@ -0,0 +1,124 @@
package com.stylefeng.guns.modular.system.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.stylefeng.guns.core.common.constant.state.Order;
import com.stylefeng.guns.core.util.ToolUtil;
import com.stylefeng.guns.modular.system.dao.*;
import com.stylefeng.guns.modular.system.model.*;
import com.stylefeng.guns.modular.system.service.*;
import com.stylefeng.guns.modular.system.util.*;
import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Service;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.util.StringUtils;
import org.springframework.web.client.RestTemplate;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.math.MathContext;
import java.math.RoundingMode;
import java.util.*;
@Service
public class OrderTransferServiceImpl extends ServiceImpl<OrderTransferMapper, OrderTransferCar> implements IOrderTransferService {
    @Autowired
    private IDispatchService dispatchService;
    @Autowired
    private IOrderCancelService orderCancelService;
    @Autowired
    private PushUtil pushUtil;
    @Autowired
    private IDriverService driverService;
    @Autowired
    private ISystemNoticeService systemNoticeService;
    @Value("${pushMinistryOfTransport}")
    private boolean pushMinistryOfTransport;
    @Autowired
    private PushMinistryOfTransportUtil pushMinistryOfTransportUtil;
    @Override
    public List<Map<String, Object>> queryOrderList(String search, String orderSource, String state, Integer pageNum, Integer size, Integer uid) throws Exception {
        Dispatch dispatch = dispatchService.selectById(uid);
        Integer companyId = null != dispatch.getFranchiseeId() ? dispatch.getFranchiseeId() : dispatch.getCompanyId();
        pageNum = (pageNum - 1) * size;
        List<String> orderSources = null;
        if(ToolUtil.isNotEmpty(orderSource)){
            orderSources = Arrays.asList(orderSource.split(","));
        }
        List<String> states = null;
        if(ToolUtil.isNotEmpty(state)){
            states = Arrays.asList(state.split(","));
        }
        return this.baseMapper.queryOrderList(search, orderSources, states, companyId, pageNum, size);
    }
    @Override
    public Map<String, Object> queryOrderInfo(Integer orderId) throws Exception {
        return this.baseMapper.queryOrderInfo(orderId);
    }
    @Override
    public ResultUtil cancelOrder(Integer orderId) throws Exception {
        OrderTransferCar orderPrivateCar = this.selectById(orderId);
        if(orderPrivateCar.getState() == 10 || orderPrivateCar.getState() == 12){
            return ResultUtil.error("不允许重复取消");
        }
        if(orderPrivateCar.getState() == 8 || orderPrivateCar.getState() == 9){
            return ResultUtil.error("订单已完成,不允许取消");
        }
        orderPrivateCar.setState(10);
        this.updateById(orderPrivateCar);
        //添加取消记录
        OrderCancel orderCancel = new OrderCancel();
        orderCancel.setOrderId(orderId);
        orderCancel.setOrderType(1);
        orderCancel.setReason("调度端取消");
        orderCancel.setRemark("调度端取消");
        orderCancel.setState(2);
        orderCancel.setInsertTime(new Date());
        orderCancel.setUserType(2);
        orderCancelService.insert(orderCancel);
        new Thread(new Runnable() {//发送消息提醒
            @Override
            public void run() {
                pushUtil.pushOrderState(1, orderPrivateCar.getUserId(), orderId, 7, 10, 0);
                if(null != orderPrivateCar.getDriverId()){
                    //修改司机为空闲
                    Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
                    driver.setState(2);
                    driverService.updateById(driver);
                    pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderId, 7, 10, 0);
                }
            }
        }).start();
        //添加消息
        systemNoticeService.addSystemNotice(1, "调度已成功取消出行订单,谢谢使用!", orderPrivateCar.getUserId(), 1);
        new Thread(new Runnable() {
            @Override
            public void run() {
                if(pushMinistryOfTransport){//上传数据
                    pushMinistryOfTransportUtil.orderCancel(orderId);
                }
            }
        }).start();
        return ResultUtil.success();
    }
}
DispatchOKTravel/guns-admin/src/main/resources/application.yml
@@ -50,9 +50,9 @@
spring:
  datasource:
    url: jdbc:mysql://192.168.110.34:3306/nttravel?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai
    url: jdbc:mysql://127.0.0.1:10633/nttravel?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai
    username: root
    password: 123456
    password: WeiLaiChuXing@2024!
    db-name: guns #用来搜集数据库的所有表
    filters: wall,mergeStat
DriverNTTravel/.idea/workspace.xml
@@ -5,43 +5,75 @@
  </component>
  <component name="ChangeListManager">
    <list default="true" id="a7570672-bfad-4d39-9825-905c049a9d7e" name="Default Changelist" comment="">
      <change afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TOrderTapeMapper.java" afterDir="false" />
      <change afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOrderTape.java" afterDir="false" />
      <change afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITOrderTapeService.java" afterDir="false" />
      <change afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderTapeServiceImpl.java" afterDir="false" />
      <change afterPath="$PROJECT_DIR$/../UserNTTravel/.idea/inspectionProfiles/Project_Default.xml" afterDir="false" />
      <change afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/SysCouponRecordMapper.java" afterDir="false" />
      <change afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TActivityGeneralizationMapper.java" afterDir="false" />
      <change afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/AliSms.java" afterDir="false" />
      <change afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/SysCouponRecord.java" afterDir="false" />
      <change afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TActivityGeneralization.java" afterDir="false" />
      <change afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ISysCouponRecordService.java" afterDir="false" />
      <change afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITActivityGeneralizationService.java" afterDir="false" />
      <change afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SysCouponRecordServiceImpl.java" afterDir="false" />
      <change afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TActivityGeneralizationServiceImpl.java" afterDir="false" />
      <change afterPath="$PROJECT_DIR$/../DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/OrderTransferMapper.java" afterDir="false" />
      <change afterPath="$PROJECT_DIR$/../DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/OrderTransferMapper.xml" afterDir="false" />
      <change afterPath="$PROJECT_DIR$/../DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/OrderTransferCar.java" afterDir="false" />
      <change afterPath="$PROJECT_DIR$/../DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderTransferService.java" afterDir="false" />
      <change afterPath="$PROJECT_DIR$/../DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderTransferServiceImpl.java" afterDir="false" />
      <change afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TDriverFacialFailMapper.java" afterDir="false" />
      <change afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TDriverFacialFail.java" afterDir="false" />
      <change afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TOpenCitySiteMapper.java" afterDir="false" />
      <change afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/kaipiao/util/Jisuan.java" afterDir="false" />
      <change afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOpenCitySite.java" afterDir="false" />
      <change afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/transfer/model/SiteDto.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../.idea/misc.xml" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java" beforeDir="false" afterPath="$PROJECT_DIR$/../DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/SiteMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/SiteMapper.xml" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../DispatchOKTravel/guns-admin/src/main/resources/application.yml" beforeDir="false" afterPath="$PROJECT_DIR$/../DispatchOKTravel/guns-admin/src/main/resources/application.yml" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/model/OrderCrossCity.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/model/OrderCrossCity.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/IOrderPrivateCarService.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/IOrderPrivateCarService.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/OrderCrossCityController.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/OrderCrossCityController.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderService.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderService.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TOrderTransferMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TOrderTransferMapper.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TOrderTransferMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TOrderTransferMapper.xml" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOrderTransfer.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOrderTransfer.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITOrderTransferService.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITOrderTransferService.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDFalconUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDFalconUtil.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderTransferServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderTransferServiceImpl.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiSendSms.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiSendSms.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapGeocodingUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapGeocodingUtil.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/resources/application.yml" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/resources/application.yml" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../ManagementNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/GeneralizationActivityController.java" beforeDir="false" afterPath="$PROJECT_DIR$/../ManagementNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/GeneralizationActivityController.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../UserNTTravel/.idea/inspectionProfiles/Project_Default.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/.idea/inspectionProfiles/Project_Default.xml" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../UserNTTravel/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/.idea/workspace.xml" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/dto/CharteredCarDto.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/dto/CharteredCarDto.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/pom.xml" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/model/OrderCharteredCar.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/model/OrderCharteredCar.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/server/impl/OrderCharteredCarServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/server/impl/OrderCharteredCarServiceImpl.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/ServerCarModelController.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/ServerCarModelController.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserCallbackController.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserCallbackController.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/LineController.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/LineController.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/model/Line.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/model/Line.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/OrderCrossCityController.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/OrderCrossCityController.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/IOrderCrossCityService.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/IOrderCrossCityService.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/kaipiao/KaiPiaoUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/kaipiao/KaiPiaoUtil.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/kaipiao/entity/InvoiceDetails.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/kaipiao/entity/InvoiceDetails.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/kaipiao/entity/MaterialInfo.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/kaipiao/entity/MaterialInfo.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IServerCarModelService.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IServerCarModelService.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/InvoiceServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/InvoiceServiceImpl.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OpenCityBusinessServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OpenCityBusinessServiceImpl.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiSendSms.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiSendSms.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDFalconUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDFalconUtil.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapGeocodingUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapGeocodingUtil.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/OssUploadUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/OssUploadUtil.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderWarpper.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderWarpper.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/transfer/controller/OrderTransferController.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/transfer/controller/OrderTransferController.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/transfer/dao/mapping/OrderTransferMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/transfer/dao/mapping/OrderTransferMapper.xml" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/resources/application.yml" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/resources/application.yml" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/resources/redis.properties" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/resources/redis.properties" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/target/classes/META-INF/spring-configuration-metadata.json" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/target/classes/META-INF/spring-configuration-metadata.json" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/target/classes/application.yml" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/target/classes/application.yml" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/transfer/dao/mapping/OrderTransferMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/transfer/dao/mapping/OrderTransferMapper.xml" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/target/classes/redis.properties" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/target/classes/redis.properties" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-core/target/classes/META-INF/spring-configuration-metadata.json" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-core/target/classes/META-INF/spring-configuration-metadata.json" afterDir="false" />
    </list>
    <option name="SHOW_DIALOG" value="false" />
    <option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -196,15 +228,6 @@
}</component>
  <component name="MarkdownSettingsMigration">
    <option name="stateVersion" value="1" />
  </component>
  <component name="MavenImportPreferences">
    <option name="generalSettings">
      <MavenGeneralSettings>
        <option name="localRepository" value="D:\apache-maven\repository" />
        <option name="mavenHome" value="$PROJECT_DIR$/../../../apache-maven/apache-maven-3.6.1" />
        <option name="userSettingsFile" value="D:\apache-maven\apache-maven-3.6.1\conf\settings.xml" />
      </MavenGeneralSettings>
    </option>
  </component>
  <component name="MavenProjectNavigator">
    <treeState>
@@ -433,6 +456,8 @@
  </component>
  <component name="PropertiesComponent">{
  &quot;keyToString&quot;: {
    &quot;Maven.guns-admin [clean].executor&quot;: &quot;Run&quot;,
    &quot;Maven.guns-admin [package].executor&quot;: &quot;Run&quot;,
    &quot;RequestMappingsPanelOrder0&quot;: &quot;0&quot;,
    &quot;RequestMappingsPanelOrder1&quot;: &quot;1&quot;,
    &quot;RequestMappingsPanelWidth0&quot;: &quot;75&quot;,
@@ -443,12 +468,13 @@
    &quot;Spring Boot.GunsApplication.executor&quot;: &quot;Debug&quot;,
    &quot;git-widget-placeholder&quot;: &quot;master&quot;,
    &quot;kotlin-language-version-configured&quot;: &quot;true&quot;,
    &quot;last_opened_file_path&quot;: &quot;D:/study/NTTravel/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping&quot;,
    &quot;last_opened_file_path&quot;: &quot;D:/study/NTTravel/DispatchOKTravel&quot;,
    &quot;node.js.detected.package.eslint&quot;: &quot;true&quot;,
    &quot;node.js.detected.package.tslint&quot;: &quot;true&quot;,
    &quot;node.js.selected.package.eslint&quot;: &quot;(autodetect)&quot;,
    &quot;node.js.selected.package.tslint&quot;: &quot;(autodetect)&quot;,
    &quot;nodejs_package_manager_path&quot;: &quot;npm&quot;,
    &quot;settings.editor.selected.configurable&quot;: &quot;MavenSettings&quot;,
    &quot;vue.rearranger.settings.migration&quot;: &quot;true&quot;,
    &quot;应用程序.CompareFace.executor&quot;: &quot;Debug&quot;
  }
@@ -591,7 +617,14 @@
      <workItem from="1716514334090" duration="9851000" />
      <workItem from="1716774529103" duration="6847000" />
      <workItem from="1716793830661" duration="723000" />
      <workItem from="1716794972983" duration="3789000" />
      <workItem from="1716794972983" duration="26913000" />
      <workItem from="1717151399113" duration="3655000" />
      <workItem from="1717403690337" duration="561000" />
      <workItem from="1717404707718" duration="713000" />
      <workItem from="1717406236377" duration="1168000" />
      <workItem from="1717408102063" duration="10633000" />
      <workItem from="1717493148714" duration="1613000" />
      <workItem from="1717552295849" duration="3859000" />
    </task>
    <servers />
  </component>
@@ -678,13 +711,8 @@
      <breakpoints>
        <line-breakpoint enabled="true" type="java-line">
          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java</url>
          <line>711</line>
          <line>722</line>
          <option name="timeStamp" value="15" />
        </line-breakpoint>
        <line-breakpoint enabled="true" type="java-line">
          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java</url>
          <line>191</line>
          <option name="timeStamp" value="19" />
        </line-breakpoint>
        <line-breakpoint enabled="true" type="java-line">
          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineShiftDriverServiceImpl.java</url>
@@ -698,11 +726,51 @@
        </line-breakpoint>
        <line-breakpoint enabled="true" type="java-line">
          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java</url>
          <line>748</line>
          <line>790</line>
          <option name="timeStamp" value="22" />
        </line-breakpoint>
        <line-breakpoint enabled="true" type="java-line">
          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java</url>
          <line>250</line>
          <option name="timeStamp" value="23" />
        </line-breakpoint>
        <line-breakpoint enabled="true" type="java-line">
          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java</url>
          <line>227</line>
          <option name="timeStamp" value="24" />
        </line-breakpoint>
        <line-breakpoint enabled="true" type="java-line">
          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java</url>
          <line>278</line>
          <option name="timeStamp" value="26" />
        </line-breakpoint>
        <line-breakpoint enabled="true" type="java-line">
          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java</url>
          <line>71</line>
          <option name="timeStamp" value="28" />
        </line-breakpoint>
        <line-breakpoint enabled="true" type="java-line">
          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/LineSiteController.java</url>
          <line>106</line>
          <option name="timeStamp" value="30" />
        </line-breakpoint>
        <line-breakpoint enabled="true" type="java-line">
          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderTransferServiceImpl.java</url>
          <line>529</line>
          <option name="timeStamp" value="31" />
        </line-breakpoint>
        <line-breakpoint enabled="true" type="java-line">
          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java</url>
          <line>522</line>
          <option name="timeStamp" value="33" />
        </line-breakpoint>
      </breakpoints>
    </breakpoint-manager>
    <watches-manager>
      <configuration name="SpringBootApplicationConfigurationType">
        <watch expression="faceDistinguishService" language="JAVA" />
      </configuration>
    </watches-manager>
  </component>
  <component name="editorHistoryManager">
    <entry file="file://$PROJECT_DIR$/guns-admin/pom.xml">
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
@@ -1,4 +1,5 @@
package com.stylefeng.guns.modular.api;
import java.util.Date;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
@@ -9,15 +10,14 @@
import com.stylefeng.guns.modular.smallLogistics.server.IOrderLogisticsService;
import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar;
import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService;
import com.stylefeng.guns.modular.system.dao.DriverWorkMapper;
import com.stylefeng.guns.modular.system.dao.SysReformistMapper;
import com.stylefeng.guns.modular.system.dao.TDriverFacialFailMapper;
import com.stylefeng.guns.modular.system.model.*;
import com.stylefeng.guns.modular.system.util.ALiSendSms;
import com.stylefeng.guns.modular.system.util.*;
//import com.stylefeng.guns.modular.system.util.ICBCPayUtil;
import com.stylefeng.guns.modular.system.util.CompareFace;
import com.stylefeng.guns.modular.system.util.HuaWeiSMSUtil;
import com.stylefeng.guns.modular.system.warpper.ActivityWarpper;
import com.stylefeng.guns.modular.system.service.*;
import com.stylefeng.guns.modular.system.util.ResultUtil;
import com.stylefeng.guns.modular.system.warpper.*;
import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
@@ -26,8 +26,10 @@
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.text.SimpleDateFormat;
@@ -331,7 +333,16 @@
            return ResultUtil.runErr();
        }
    }
    @Resource
    private DriverWorkMapper driverWorkMapper;
    @Autowired
    private IOrderService orderService;
    @Autowired
    private PushMinistryOfTransportUtil pushMinistryOfTransportUtil;
    @Value("${pushMinistryOfTransport}")
    private boolean pushMinistryOfTransport;
    @Resource
    private TDriverFacialFailMapper driverFacialFailMapper;
    @ResponseBody
    @PostMapping("/api/driver/face")
    @ApiOperation(value = "面容识别", tags = {"司机端-登录"}, notes = "")
@@ -349,12 +360,43 @@
            //通过第三方进行识别
            if (CompareFace.faceCompare(url, driver.getFaceImgUrl())){
                driver.setLastFacialTime(new Date());
                driver.setFailCount(0);
                driverService.updateById(driver);
                return ResultUtil.success();
            }
            driver.setFailCount(driver.getFailCount()==null? 0: driver.getFailCount()+1);
            driverService.updateById(driver);
            if (driver.getFailCount()==5){
            if (driver.getFailCount()>=5){
                DriverWork driverWork = driverWorkMapper.queryNewWork(uid, null, 1);
                List<Map<String, Object>> list = orderService.queryOrderList(1, 1, 10, uid);
                if(list.size() > 0){
                    return ResultUtil.error("还有未完成的订单,不能进行下班操作");
                }
                driverWork.setEndTime(new Date());
                driverWork.setState(2);
                driverWorkMapper.updateById(driverWork);
                driver.setState(1);
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        if(pushMinistryOfTransport){//上传数据
                            pushMinistryOfTransportUtil.operateLogout(uid);
                        }
                    }
                }).start();
                TDriverFacialFail tDriverFacialFail = new TDriverFacialFail();
                tDriverFacialFail.setDriverId(driver.getId());
                tDriverFacialFail.setCity("成都市");
                tDriverFacialFail.setCityCode("510100");
                tDriverFacialFail.setFacialPicture(url);
                tDriverFacialFail.setCreateTime(new Date());
                driverFacialFailMapper.insert(tDriverFacialFail);
//                tDriverFacialFail.setIsDelete(0);
                return new ResultUtil<>(-1,"已满五次,退回主页");
            }
            //成功的话保存最后识别时间
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
@@ -98,6 +98,7 @@
            tape.setOrderType(orderType);
            tape.setInsertTime(new Date());
            tape.setAfterTime(newDate);
            tape.setOrderId(orderId);
            String[] split = fileLink.split(",");
            for (String s : split) {
                orderTapeService.insert(tape);
@@ -109,7 +110,7 @@
                    orderPrivateCar.setRouteRecord(orderPrivateCar.getRouteRecord()==null? fileLink: orderPrivateCar.getRouteRecord()+","+fileLink);
                    privateCarService.updateById(orderPrivateCar);
                    break;
                    case 5:
                    case 3:
                    OrderCrossCity orderCrossCity = crossCityService.selectById(orderId);
                        orderCrossCity.setRecordTime(new Date());
                        orderCrossCity.setRouteRecord(orderCrossCity.getRouteRecord()==null? fileLink: orderCrossCity.getRouteRecord()+","+fileLink);
@@ -353,7 +354,7 @@
    @ApiOperation(value = "获取改派支付金额", tags = {"司机端-服务中"}, notes = "返回金额为0不需要调用支付")
    @ApiImplicitParams({
            @ApiImplicitParam(value = "订单id(跨城多个订单使用逗号分隔)", name = "orderId", required = true, dataType = "string"),
            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城)", name = "orderType", required = true, dataType = "int"),
            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城 7=接送机)", name = "orderType", required = true, dataType = "int"),
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil<BaseWarpper> queryReassignMoney(String orderId, Integer orderType){
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/OrderCrossCityController.java
@@ -265,7 +265,7 @@
    public void wxPayCrossCity(HttpServletRequest request, HttpServletResponse response){
        try {
            Map<String, String> map = payMoneyUtil.weixinpayCallback(request);
//            System.err.println(JSON.toJSONString(map));
            System.err.println(JSON.toJSONString(map));
            if(null != map){
                String out_trade_no = map.get("out_trade_no");
                String transaction_id = map.get("transaction_id");
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
@@ -254,7 +254,7 @@
                orderCrossCity.setGetoffTime(new Date());
                orderCrossCity.setState(8);//跨城直接到待评价
                orderCrossCity.setEndServiceTime(new Date());
                this.updateById(orderCrossCity);
                //还原座位数
                LineShiftDriver lineShiftDriver = lineShiftDriverMapper.selectById(orderCrossCity.getLineShiftDriverId());
                lineShiftDriver.setLaveSeat(lineShiftDriver.getLaveSeat() + orderCrossCity.getPeopleNumber());
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -332,7 +332,8 @@
            }
        }).start();
        return ResultUtil.success();
    }   @Override
    }
    @Override
    public ResultUtil specail(Integer orderId, Double lon, Double lat, String endAddress) throws Exception {
        OrderPrivateCar orderPrivateCar = this.selectById(orderId);
                        orderPrivateCar.setEndLon(lon);
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TDriverFacialFailMapper.java
New file
@@ -0,0 +1,21 @@
package com.stylefeng.guns.modular.system.dao;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.stylefeng.guns.modular.system.model.TDriverFacialFail;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
 * <p>
 * 人脸识别失败记录表 Mapper 接口
 * </p>
 *
 * @author 吕雪
 * @since 2020-06-05
 */
public interface TDriverFacialFailMapper extends BaseMapper<TDriverFacialFail> {
}
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TOrderTransferMapper.java
@@ -46,5 +46,6 @@
    Map<String,Object> getTransferOrderDetailById(@Param("orderId") Integer orderId);
    List<Map<String, Object>> queryOrderList(@Param("state") Integer state, @Param("driverId") Integer driverId);
    Map<String, Object> queryOrderInfo(@Param("orderId") Integer orderId);
}
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TOrderTransferMapper.xml
@@ -167,7 +167,7 @@
        <if test="state == 1">
            select
            id as id,
            (1) as type,
            (7) as type,
            ('接送机订单') as `name`,
            DATE_FORMAT(travelTime, '%Y-%m-%d %H:%i:%s') as time,
            startAddress as startAddress,
@@ -185,7 +185,7 @@
            select
            id as id,
            (1) as type,
            (7) as type,
            ('接送机订单') as `name`,
            DATE_FORMAT(travelTime, '%Y-%m-%d %H:%i:%s') as time,
            startAddress as startAddress,
@@ -202,7 +202,7 @@
        <if test="state == 2">
            select
            id as id,
            (1) as type,
            (7) as type,
            ('接送机订单') as `name`,
            DATE_FORMAT(travelTime, '%Y-%m-%d %H:%i:%s') as time,
            startAddress as startAddress,
@@ -235,7 +235,48 @@
            orderType as orderType,
            isReassign as isReassign,
            companyId as companyId
        from t_order_private_car where id = #{orderId}
        from t_order_transfer where id = #{orderId}
    </select>
    <select id="queryOrderInfo" resultType="map">
        select
            a.id as orderId,
            a.userId as userId,
            a.driverId as driverId,
            a.state as orderState,
            DATE_FORMAT(a.travelTime, '%m月%d日 %H:%i') as travelTime_,
            DATE_FORMAT(a.travelTime, '%Y-%m-%d %H:%i:%s') as travelTime,
            DATE_FORMAT(a.arriveTime, '%Y-%m-%d %H:%i:%s') as arriveTime,
            a.startAddress as startAddress,
            a.endAddress as endAddress,
            a.startLon as startLon,
            a.startLat as startLat,
            a.endLon as endLon,
            a.endLat as endLat,
            a.orderMoney as orderMoney,
            a.payManner as payManner,
            a.trackId as trackId,
            b.nickName as nickName,
            a.passengersPhone as phone,
            a.orderType as reservation,
            a.telX as telX,
            a.bindId as bindId,
            (
                (select count(id) from t_order_private_car where userId = b.id and state in (8, 9)) +
                (select count(id) from t_order_taxi where userId = b.id and state in (8, 9)) +
                (select count(id) from t_order_cross_city where userId = b.id and state in (8, 9))
                ) as historyNum,
            (select phone from t_phone where companyId = a.companyId and `type` = 1) as emergencyCall,
            c.reason as cancelReason,
            c.remark as cancelRemark,
            c.money as cancelPayMoney,
            if(c.userType = 1, '用户取消', '平台取消') as cancelUser,
            (select isSpecialCar from t_sys_reformist where companyId = a.companyId) as reassign
        from t_order_transfer a
                 left join t_user b on (a.userId = b.id)
                 left join t_order_cancel c on (a.id = c.orderId and c.orderType = 1 and c.state = 2)
        where a.id = #{orderId}
    </select>
</mapper>
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TDriverFacialFail.java
New file
@@ -0,0 +1,128 @@
package com.stylefeng.guns.modular.system.model;
import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import java.io.Serializable;
import java.util.Date;
/**
 * <p>
 * 司机人脸识别失败记录
 * </p>
 *
 * @author 吕雪
 * @since 2020-06-05
 */
@TableName("t_driver_facial_fail")
public class TDriverFacialFail extends Model<TDriverFacialFail> {
    private static final long serialVersionUID = 1L;
    /**
     * 主键id
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    /**
     * 司机id
     */
    private Integer driverId;
    /**
     * 所属城市
     */
    private String city;
    /**
     * 城市code
     */
    private String cityCode;
    /**
     * 识别失败图片
     */
    private String facialPicture;
    /**
     * 识别时间
     */
    private Date createTime;
    /**
     * 是否删除  1=否 2=是
     */
    private Integer isDelete;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public Integer getDriverId() {
        return driverId;
    }
    public void setDriverId(Integer driverId) {
        this.driverId = driverId;
    }
    public String getCity() {
        return city;
    }
    public void setCity(String city) {
        this.city = city;
    }
    public String getCityCode() {
        return cityCode;
    }
    public void setCityCode(String cityCode) {
        this.cityCode = cityCode;
    }
    public String getFacialPicture() {
        return facialPicture;
    }
    public void setFacialPicture(String facialPicture) {
        this.facialPicture = facialPicture;
    }
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    public Integer getIsDelete() {
        return isDelete;
    }
    public void setIsDelete(Integer isDelete) {
        this.isDelete = isDelete;
    }
    @Override
    public String toString() {
        return "TDriverFacialFail{" +
                "id=" + id +
                ", driverId=" + driverId +
                ", city='" + city + '\'' +
                ", cityCode='" + cityCode + '\'' +
                ", facialPicture='" + facialPicture + '\'' +
                ", createTime='" + createTime + '\'' +
                ", isDelete='" + isDelete + '\'' +
                '}';
    }
    @Override
    protected Serializable pkVal() {
        return this.id;
    }
}
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOrderTransfer.java
@@ -1,9 +1,11 @@
package com.stylefeng.guns.modular.system.model;
import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
@@ -18,6 +20,7 @@
 * @since 2020-09-02
 */
@TableName("t_order_transfer")
@Data
public class TOrderTransfer extends Model<TOrderTransfer> {
    private static final long serialVersionUID = 1L;
@@ -30,6 +33,19 @@
    /**
     * 类型(1=普通订单,2=摆渡订单)
     */
    @TableField("startMileage")
    private Double startMileage;
    @TableField("mileageKilometers")
    private Double mileageKilometers;
    @TableField("duration")
    private Double duration;
    @TableField("wait")
    private Double wait;
    @TableField("waitMoney")
    private Double waitMoney;
    @TableField("longDistance")
    private Double longDistance;
    private Integer type;
    /**
     * 用户id
@@ -130,39 +146,39 @@
    /**
     * 订单金额
     */
    private BigDecimal orderMoney;
    private Double orderMoney;
    /**
     * 起步价
     */
    private BigDecimal startMoney;
    private Double startMoney;
    /**
     * 里程费
     */
    private BigDecimal mileageMoney;
    private Double mileageMoney;
    /**
     * 时长费
     */
    private BigDecimal durationMoney;
    private Double durationMoney;
    /**
     * 远途费
     */
    private BigDecimal longDistanceMoney;
    private Double longDistanceMoney;
    /**
     * 停车费
     */
    private BigDecimal parkMoney;
    private Double parkMoney;
    /**
     * 过路费
     */
    private BigDecimal roadTollMoney;
    private Double roadTollMoney;
    /**
     * 红包抵扣金额
     */
    private BigDecimal redPacketMoney;
    private Double redPacketMoney;
    /**
     * 优惠券抵扣金额
     */
    private BigDecimal couponMoney;
    private Double couponMoney;
    /**
     * 红包记录id
     */
@@ -190,7 +206,7 @@
    /**
     * 支付金额
     */
    private BigDecimal payMoney;
    private Double payMoney;
    /**
     * 是否是代下单(0:否,1:是)
     */
@@ -289,533 +305,6 @@
     */
    private Date recordTime;
    public Date getRecordTime() {
        return recordTime;
    }
    public void setRecordTime(Date recordTime) {
        this.recordTime = recordTime;
    }
    public String getRouteRecord() {
        return routeRecord;
    }
    public void setRouteRecord(String routeRecord) {
        this.routeRecord = routeRecord;
    }
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public Integer getType() {
        return type;
    }
    public void setType(Integer type) {
        this.type = type;
    }
    public Integer getUserId() {
        return userId;
    }
    public void setUserId(Integer userId) {
        this.userId = userId;
    }
    public Integer getDriverId() {
        return driverId;
    }
    public void setDriverId(Integer driverId) {
        this.driverId = driverId;
    }
    public Integer getCarId() {
        return carId;
    }
    public void setCarId(Integer carId) {
        this.carId = carId;
    }
    public String getOrderNum() {
        return orderNum;
    }
    public void setOrderNum(String orderNum) {
        this.orderNum = orderNum;
    }
    public Double getPlacementLon() {
        return placementLon;
    }
    public void setPlacementLon(Double placementLon) {
        this.placementLon = placementLon;
    }
    public Double getPlacementLat() {
        return placementLat;
    }
    public void setPlacementLat(Double placementLat) {
        this.placementLat = placementLat;
    }
    public String getPlacementAddress() {
        return placementAddress;
    }
    public void setPlacementAddress(String placementAddress) {
        this.placementAddress = placementAddress;
    }
    public Double getStartLon() {
        return startLon;
    }
    public void setStartLon(Double startLon) {
        this.startLon = startLon;
    }
    public Double getStartLat() {
        return startLat;
    }
    public void setStartLat(Double startLat) {
        this.startLat = startLat;
    }
    public Double getEndLon() {
        return endLon;
    }
    public void setEndLon(Double endLon) {
        this.endLon = endLon;
    }
    public String getStartAddress() {
        return startAddress;
    }
    public void setStartAddress(String startAddress) {
        this.startAddress = startAddress;
    }
    public Double getEndLat() {
        return endLat;
    }
    public void setEndLat(Double endLat) {
        this.endLat = endLat;
    }
    public String getEndAddress() {
        return endAddress;
    }
    public void setEndAddress(String endAddress) {
        this.endAddress = endAddress;
    }
    public Double getBoardingLon() {
        return boardingLon;
    }
    public void setBoardingLon(Double boardingLon) {
        this.boardingLon = boardingLon;
    }
    public Double getBoardingLat() {
        return boardingLat;
    }
    public void setBoardingLat(Double boardingLat) {
        this.boardingLat = boardingLat;
    }
    public String getBoardingAddress() {
        return boardingAddress;
    }
    public void setBoardingAddress(String boardingAddress) {
        this.boardingAddress = boardingAddress;
    }
    public Date getBoardingTime() {
        return boardingTime;
    }
    public void setBoardingTime(Date boardingTime) {
        this.boardingTime = boardingTime;
    }
    public Double getGetoffLon() {
        return getoffLon;
    }
    public void setGetoffLon(Double getoffLon) {
        this.getoffLon = getoffLon;
    }
    public Double getGetoffLat() {
        return getoffLat;
    }
    public void setGetoffLat(Double getoffLat) {
        this.getoffLat = getoffLat;
    }
    public String getGetoffAddress() {
        return getoffAddress;
    }
    public void setGetoffAddress(String getoffAddress) {
        this.getoffAddress = getoffAddress;
    }
    public Date getGetoffTime() {
        return getoffTime;
    }
    public void setGetoffTime(Date getoffTime) {
        this.getoffTime = getoffTime;
    }
    public Double getMileage() {
        return mileage;
    }
    public void setMileage(Double mileage) {
        this.mileage = mileage;
    }
    public Integer getPayManner() {
        return payManner;
    }
    public void setPayManner(Integer payManner) {
        this.payManner = payManner;
    }
    public Integer getPayType() {
        return payType;
    }
    public void setPayType(Integer payType) {
        this.payType = payType;
    }
    public BigDecimal getOrderMoney() {
        return orderMoney;
    }
    public void setOrderMoney(BigDecimal orderMoney) {
        this.orderMoney = orderMoney;
    }
    public BigDecimal getStartMoney() {
        return startMoney;
    }
    public void setStartMoney(BigDecimal startMoney) {
        this.startMoney = startMoney;
    }
    public BigDecimal getMileageMoney() {
        return mileageMoney;
    }
    public void setMileageMoney(BigDecimal mileageMoney) {
        this.mileageMoney = mileageMoney;
    }
    public BigDecimal getDurationMoney() {
        return durationMoney;
    }
    public void setDurationMoney(BigDecimal durationMoney) {
        this.durationMoney = durationMoney;
    }
    public BigDecimal getLongDistanceMoney() {
        return longDistanceMoney;
    }
    public void setLongDistanceMoney(BigDecimal longDistanceMoney) {
        this.longDistanceMoney = longDistanceMoney;
    }
    public BigDecimal getParkMoney() {
        return parkMoney;
    }
    public void setParkMoney(BigDecimal parkMoney) {
        this.parkMoney = parkMoney;
    }
    public BigDecimal getRoadTollMoney() {
        return roadTollMoney;
    }
    public void setRoadTollMoney(BigDecimal roadTollMoney) {
        this.roadTollMoney = roadTollMoney;
    }
    public BigDecimal getRedPacketMoney() {
        return redPacketMoney;
    }
    public void setRedPacketMoney(BigDecimal redPacketMoney) {
        this.redPacketMoney = redPacketMoney;
    }
    public BigDecimal getCouponMoney() {
        return couponMoney;
    }
    public void setCouponMoney(BigDecimal couponMoney) {
        this.couponMoney = couponMoney;
    }
    public Integer getRedPacketId() {
        return redPacketId;
    }
    public void setRedPacketId(Integer redPacketId) {
        this.redPacketId = redPacketId;
    }
    public Integer getCouponId() {
        return couponId;
    }
    public void setCouponId(Integer couponId) {
        this.couponId = couponId;
    }
    public Double getDiscount() {
        return discount;
    }
    public void setDiscount(Double discount) {
        this.discount = discount;
    }
    public Double getDiscountMoney() {
        return discountMoney;
    }
    public void setDiscountMoney(Double discountMoney) {
        this.discountMoney = discountMoney;
    }
    public Integer getActivityId() {
        return activityId;
    }
    public void setActivityId(Integer activityId) {
        this.activityId = activityId;
    }
    public Integer getCompanyId() {
        return companyId;
    }
    public void setCompanyId(Integer companyId) {
        this.companyId = companyId;
    }
    public BigDecimal getPayMoney() {
        return payMoney;
    }
    public void setPayMoney(BigDecimal payMoney) {
        this.payMoney = payMoney;
    }
    public Integer getSubstitute() {
        return substitute;
    }
    public void setSubstitute(Integer substitute) {
        this.substitute = substitute;
    }
    public String getPassengers() {
        return passengers;
    }
    public void setPassengers(String passengers) {
        this.passengers = passengers;
    }
    public String getPassengersPhone() {
        return passengersPhone;
    }
    public void setPassengersPhone(String passengersPhone) {
        this.passengersPhone = passengersPhone;
    }
    public Integer getState() {
        return state;
    }
    public void setState(Integer state) {
        this.state = state;
    }
    public Date getInsertTime() {
        return insertTime;
    }
    public void setInsertTime(Date insertTime) {
        this.insertTime = insertTime;
    }
    public Date getTravelTime() {
        return travelTime;
    }
    public void setTravelTime(Date travelTime) {
        this.travelTime = travelTime;
    }
    public Date getSnatchOrderTime() {
        return snatchOrderTime;
    }
    public void setSnatchOrderTime(Date snatchOrderTime) {
        this.snatchOrderTime = snatchOrderTime;
    }
    public Date getSetOutTime() {
        return setOutTime;
    }
    public void setSetOutTime(Date setOutTime) {
        this.setOutTime = setOutTime;
    }
    public Date getArriveTime() {
        return arriveTime;
    }
    public void setArriveTime(Date arriveTime) {
        this.arriveTime = arriveTime;
    }
    public Date getStartServiceTime() {
        return startServiceTime;
    }
    public void setStartServiceTime(Date startServiceTime) {
        this.startServiceTime = startServiceTime;
    }
    public Date getEndServiceTime() {
        return endServiceTime;
    }
    public void setEndServiceTime(Date endServiceTime) {
        this.endServiceTime = endServiceTime;
    }
    public Integer getOrderType() {
        return orderType;
    }
    public void setOrderType(Integer orderType) {
        this.orderType = orderType;
    }
    public Integer getOrderSource() {
        return orderSource;
    }
    public void setOrderSource(Integer orderSource) {
        this.orderSource = orderSource;
    }
    public Integer getInvoiceId() {
        return invoiceId;
    }
    public void setInvoiceId(Integer invoiceId) {
        this.invoiceId = invoiceId;
    }
    public Integer getIsReassign() {
        return isReassign;
    }
    public void setIsReassign(Integer isReassign) {
        this.isReassign = isReassign;
    }
    public Integer getReassignNotice() {
        return reassignNotice;
    }
    public void setReassignNotice(Integer reassignNotice) {
        this.reassignNotice = reassignNotice;
    }
    public String getTrackId() {
        return trackId;
    }
    public void setTrackId(String trackId) {
        this.trackId = trackId;
    }
    public Integer getIsDelete() {
        return isDelete;
    }
    public void setIsDelete(Integer isDelete) {
        this.isDelete = isDelete;
    }
    public Integer getOldState() {
        return oldState;
    }
    public void setOldState(Integer oldState) {
        this.oldState = oldState;
    }
    public String getTelX() {
        return telX;
    }
    public void setTelX(String telX) {
        this.telX = telX;
    }
    public String getBindId() {
        return bindId;
    }
    public void setBindId(String bindId) {
        this.bindId = bindId;
    }
    public Integer getServerCarModelId() {
        return serverCarModelId;
    }
    public void setServerCarModelId(Integer serverCarModelId) {
        this.serverCarModelId = serverCarModelId;
    }
    @Override
    protected Serializable pkVal() {
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITOrderTransferService.java
@@ -50,4 +50,12 @@
    Map<String,Object> getTransferOrderDetailById(@Param("orderId") Integer orderId);
    List<Map<String, Object>> queryOrderList(Integer state, Integer driverId) throws Exception;
    Map<String, Object> queryOrderInfo(Integer orderId) throws Exception;
    ResultUtil process(Integer orderId, Integer state, Double lon, Double lat, String address) throws Exception;
    Map<String, Object> queryMoneyInfo(Integer orderId) throws Exception;
    ResultUtil confirmFees(Integer orderId, Integer type, Double parkingFee, Double crossingFee) throws Exception;
}
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
@@ -172,7 +172,7 @@
                break;
        }
//        HuaWeiSMSUtil.sendSms("[\"" + authCode + "\"]", phone, "8822061324669", templateCode);
        String sData = aLiSendSms.sendSms(phone, "SMS_147415322", "{\"code\":\"" + authCode + "\"}");
        String sData = aLiSendSms.sendSms(phone, "SMS_467580138", "{\"code\":\"" + authCode + "\"}");
//        JSONObject jsonObject = JSON.parseObject(sData);
//        String message = jsonObject.getString("Message");
//        if(!"OK".equals(message)){
@@ -551,6 +551,8 @@
    }
    @Autowired
    private ITSysFaceDistinguishService faceDistinguishService;
    /**
     * 上下班操作
     * @param uid
@@ -581,6 +583,15 @@
                }
            }).start();
        }else{
            //拿到后台配置的人脸识别配置
            TSysFaceDistinguish tSysFaceDistinguish = faceDistinguishService.selectOne(null);
            //如果是关闭就结束
            if (tSysFaceDistinguish.getIsOpen()!=2){
                if (driver.getFailCount()>=5){
                    return ResultUtil.error("请进行人脸认证后重试");
                }
            }
            driverWork = new DriverWork();
            driverWork.setState(1);
            driverWork.setDriverId(uid);
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java
@@ -605,6 +605,10 @@
                break;
            case 6:
                break;
            case 7://专车
                map = orderTransferService.queryOrderInfo(orderId);
                break;
        }
        if(null != map.get("telX")){
            map.put("phone", map.get("telX"));
@@ -640,6 +644,9 @@
                break;
            case 6:
                break;
            case 7://接送机
                companyId = orderTransferService.selectById(orderId).getCompanyId();
                break;
        }
        return sysReformistMapper.queryMoney(companyId);
    }
@@ -671,6 +678,10 @@
                return orderLogisticsService.process(orderId, state, lon, lat, address);
            case 6:
                break;
            case 7://专车
                return orderTransferService.process(orderId, state, lon, lat, address);
        }
        return null;
    }
@@ -706,6 +717,8 @@
                break;
            case 6:
                break;
            case 7://接送机
                return orderTransferService.confirmFees(orderId, type, parkingFee, crossingFee);
        }
        return null;
    }
@@ -1167,6 +1180,8 @@
                return orderPrivateCarService.queryMoneyInfo(orderId);
            case 2:
                break;
            case 7:
                return orderTransferService.queryMoneyInfo(orderId);
        }
        return null;
    }
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderTransferServiceImpl.java
@@ -1,9 +1,12 @@
package com.stylefeng.guns.modular.system.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar;
import com.stylefeng.guns.modular.system.dao.SystemPriceMapper;
import com.stylefeng.guns.modular.system.dao.TOrderTransferMapper;
import com.stylefeng.guns.modular.system.model.Driver;
import com.stylefeng.guns.modular.system.model.TOrderTransfer;
@@ -20,9 +23,8 @@
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.math.BigDecimal;
import java.util.*;
/**
 * <p>
@@ -199,4 +201,331 @@
    public List<Map<String, Object>> queryOrderList(Integer state, Integer driverId) throws Exception {
        return this.baseMapper.queryOrderList(state, driverId);
    }
    @Override
    public Map<String, Object> queryOrderInfo(Integer orderId) throws Exception {
        return this.baseMapper.queryOrderInfo(orderId);
    }
    @Override
    public ResultUtil confirmFees(Integer orderId, Integer type, Double parkingFee, Double crossingFee) throws Exception {
        TOrderTransfer orderPrivateCar = this.selectById(orderId);
        orderPrivateCar = this.setMoney(orderPrivateCar, 0D, 0D);//计算费用
        orderPrivateCar.setPayManner(type);
        orderPrivateCar.setParkMoney(null == parkingFee ? 0D : parkingFee);
        orderPrivateCar.setRoadTollMoney(null == crossingFee ? 0D : crossingFee);
        orderPrivateCar.setOrderMoney(orderPrivateCar.getOrderMoney() + orderPrivateCar.getParkMoney() + orderPrivateCar.getRoadTollMoney());
        orderPrivateCar.setState(7);
        this.updateById(orderPrivateCar);
        pushUtil.removeTask(orderId, 7);//删除定时任务,结束推送数据
        systemNoticeService.addSystemNotice(1, "司机已结束本次行程,谢谢使用", orderPrivateCar.getUserId());
        //回滚司机状态为空闲
        Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
        driver.setState(2);
        driverService.updateById(driver);
        TOrderTransfer finalOrderTaxi = orderPrivateCar;
        new Thread(new Runnable() {
            @Override
            public void run() {
                pushUtil.pushOrderState(1, finalOrderTaxi.getUserId(), finalOrderTaxi.getId(), 7, finalOrderTaxi.getState());
                pushUtil.pushOrderState(2, finalOrderTaxi.getDriverId(), finalOrderTaxi.getId(), 7, finalOrderTaxi.getState());
            }
        }).start();
        TOrderTransfer finalOrderPrivateCar = orderPrivateCar;
        new Thread(new Runnable() {
            @Override
            public void run() {
                if(pushMinistryOfTransport){//上传交通数据
                    pushMinistryOfTransportUtil.baseInfoVehicleTotalMile(finalOrderPrivateCar.getCarId());
                    pushMinistryOfTransportUtil.operateArrive(orderId);
                }
            }
        }).start();
        return ResultUtil.success();
    }
    @Override
    public Map<String, Object> queryMoneyInfo(Integer orderId) throws Exception {
        TOrderTransfer orderPrivateCar = this.selectById(orderId);
        if(orderPrivateCar.getState() == 5){//服务中的时候获取实时费用数据
            this.setMoney(orderPrivateCar, 0D, 0D);
        }
        Map<String, Object> map = new HashMap<>();
        map.put("orderMoney", orderPrivateCar.getOrderMoney());//订单金额
        map.put("startMileage", orderPrivateCar.getStartMileage());//起步价
        map.put("startMoney", orderPrivateCar.getStartMoney());//起步价
        map.put("mileageKilometers", orderPrivateCar.getMileageKilometers());//里程费
        map.put("mileageMoney", orderPrivateCar.getMileageMoney());//里程费
        map.put("duration", orderPrivateCar.getDuration());//时长费
        map.put("durationMoney", orderPrivateCar.getDurationMoney());//时长费
        map.put("wait", orderPrivateCar.getWait());//等待费
        map.put("waitMoney", orderPrivateCar.getWaitMoney());//等待费
        map.put("longDistance", orderPrivateCar.getLongDistance());//远途费
        map.put("longDistanceMoney", orderPrivateCar.getLongDistanceMoney());//远途费
        map.put("parkMoney", orderPrivateCar.getParkMoney());//停车费
        map.put("roadTollMoney", orderPrivateCar.getRoadTollMoney());//过路费
        map.put("redPacketMoney", orderPrivateCar.getRedPacketMoney());//红包抵扣金额
        map.put("couponMoney", orderPrivateCar.getCouponMoney());//优惠券抵扣金额
        map.put("discountMoney", orderPrivateCar.getDiscountMoney());//折扣抵扣金额
        map.put("discount", orderPrivateCar.getDiscount());//折扣
        return map;
    }
    @Override
    public ResultUtil process(Integer orderId, Integer state, Double lon, Double lat, String address) throws Exception {
        TOrderTransfer orderPrivateCar = this.selectById(orderId);
        switch (state){
            case 3://出发前往预约点
                orderPrivateCar.setState(3);
                orderPrivateCar.setSetOutTime(new Date());
                systemNoticeService.addSystemNotice(1, "司机已出发,请耐心等待", orderPrivateCar.getUserId());
                break;
            case 4://到达预约点,等待客户上车
                orderPrivateCar.setState(4);
                orderPrivateCar.setArriveTime(new Date());
                systemNoticeService.addSystemNotice(1, "司机已到达您设置的预约地点,请及时上车", orderPrivateCar.getUserId());
                break;
            case 5://开始服务
                orderPrivateCar.setBoardingLon(lon);
                orderPrivateCar.setBoardingLat(lat);
                orderPrivateCar.setBoardingAddress(address);
                orderPrivateCar.setBoardingTime(new Date());
                orderPrivateCar.setState(5);
                orderPrivateCar.setStartServiceTime(new Date());
                pushUtil.pushDriverPosition(orderPrivateCar.getId(), 7);//主动推送司机定位
                break;
            case 6://结束服务(专车可以返回继续服务)不修改状态
                orderPrivateCar.setGetoffLon(lon);
                orderPrivateCar.setGetoffLat(lat);
                orderPrivateCar.setGetoffAddress(address);
                orderPrivateCar.setGetoffTime(new Date());
                orderPrivateCar.setEndServiceTime(new Date());
//                //设置结束的时候的经纬度
//                if (orderPrivateCar.getEndLat()!=null){
//                        orderPrivateCar.setEndLon(lon);
//                        orderPrivateCar.setEndLat(lat);
//                        orderPrivateCar.setEndAddress(address);
//                }
                break;
        }
        this.updateById(orderPrivateCar);
        // TODO: 2020/6/5 推送状态
        TOrderTransfer finalOrderPrivateCar = orderPrivateCar;
        new Thread(new Runnable() {
            @Override
            public void run() {
                pushUtil.pushOrderState(1, finalOrderPrivateCar.getUserId(), finalOrderPrivateCar.getId(), 1, finalOrderPrivateCar.getState());
                pushUtil.pushOrderState(2, finalOrderPrivateCar.getDriverId(), finalOrderPrivateCar.getId(), 1, finalOrderPrivateCar.getState());
                if(finalOrderPrivateCar.getState() == 5 && pushMinistryOfTransport){//上传数据
                    pushMinistryOfTransportUtil.operateDepart(orderId);
                }
            }
        }).start();
        return ResultUtil.success();
    }
    @Resource
    private SystemPriceMapper systemPriceMapper;
    public TOrderTransfer setMoney(TOrderTransfer orderPrivateCar, Double parkingFee, Double crossingFee) throws Exception {
        Map<String, Object> query1 = systemPriceMapper.query(orderPrivateCar.getCompanyId(), 7, orderPrivateCar.getServerCarModelId());
        //开始根据不同的方式计算金额
        double amount = 0;
        JSONObject jsonObject = JSON.parseObject(query1.get("content").toString());
        Double num1 = jsonObject.getDouble("num1");//起步价(元)
        Double num2 = jsonObject.getDouble("num2");//起步公里(公里)
        Double num3 = jsonObject.getDouble("num3");//起步时间(分钟)
        Double num4 = jsonObject.getDouble("num4");//里程费(元)
        Double num5 = jsonObject.getDouble("num5");//时长费(分钟)
        Double num6 = jsonObject.getDouble("num6");//等待费(分钟)
        Double num7 = jsonObject.getDouble("num7");//等待费(元)
        Double num8 = jsonObject.getDouble("num8");//远途费(公里)
        Double num9 = jsonObject.getDouble("num9");//远途费(公里)
        Double num10 = jsonObject.getDouble("num10");//远途费(元)
        Double num11 = jsonObject.getDouble("num11");//远途费(公里)
        Double num12 = jsonObject.getDouble("num12");//远途费(公里)
        Double num13 = jsonObject.getDouble("num13");//远途费(元)
        Double num14 = jsonObject.getDouble("num14");//远途费(公里)
        Double num15 = jsonObject.getDouble("num15");//远途费(元)
        String num16 = jsonObject.getString("num16");//夜间费(开始时间)
        Double num17 = jsonObject.getDouble("num17");//夜间费(元)
        Double num18 = jsonObject.getDouble("num18");//夜间费(元)
        Double num19 = jsonObject.getDouble("num19");//夜间费(元)
        Double num20 = jsonObject.getDouble("num20");//夜间费(元)
        Double num21 = jsonObject.getDouble("num21");//夜间费(元)
        Double num22 = jsonObject.getDouble("num22");//夜间费(元)
        String num23 = jsonObject.getString("num23");//高峰费(开始时间)
        String num24 = jsonObject.getString("num24");//高峰费(开始时间)
        Double num25 = jsonObject.getDouble("num25");//高峰费(元)
        Double num26 = jsonObject.getDouble("num26");//高峰费(元)
        Double num27 = jsonObject.getDouble("num27");//高峰费(元)
        Double num28 = jsonObject.getDouble("num28");//高峰费(元)
        Double num29 = jsonObject.getDouble("num29");//高峰费(元)
        Double num30 = jsonObject.getDouble("num30");//高峰费(元)
        Date date = new Date();
        double d = (null == orderPrivateCar.getMileage() ? 0D : orderPrivateCar.getMileage()) / 1000;//实际公里
        double t = ((orderPrivateCar.getEndServiceTime().getTime() - orderPrivateCar.getStartServiceTime().getTime()) / 60000) + 1;//实际时间(不满一分钟按一分钟算)
        double w = ((orderPrivateCar.getStartServiceTime().getTime() - orderPrivateCar.getArriveTime().getTime()) / 60000) + 1;//等待分钟(不满一分钟按一分钟算)
        double d1 = (d - num2) < 0 ? 0 : d - num2;//超出起步里程的公里
        double t1 = (t - num3) < 0 ? 0 : new BigDecimal(t - num3).setScale(0, BigDecimal.ROUND_UP).doubleValue();//超过起步分钟数的时间
        double w1 = (w - num6) < 0 ? 0 : new BigDecimal(w - num6).setScale(0, BigDecimal.ROUND_UP).doubleValue();//超出等待时间的时间
        double yt1 = 0;//远途1段
        double yt2 = 0;//远途2段
        double yt3 = 0;//远途3段
        //夜间服务处理逻辑
        Calendar s = Calendar.getInstance();
        s.setTime(date);
        s.set(Calendar.HOUR_OF_DAY, Integer.valueOf(num16.split(" - ")[0].split(":")[0]));
        s.set(Calendar.MINUTE, Integer.valueOf(num16.split(" - ")[0].split(":")[1]));
        Calendar e = Calendar.getInstance();
        e.setTime(date);
        e.set(Calendar.HOUR_OF_DAY, Integer.valueOf(num16.split(" - ")[1].split(":")[0]));
        e.set(Calendar.MINUTE, Integer.valueOf(num16.split(" - ")[1].split(":")[1]));
        if(date.getTime() > s.getTimeInMillis() && date.getTime() < e.getTimeInMillis()){
            if(d > num8.doubleValue() && d <= num9.doubleValue()){
                yt1 = num20 * (d - num8);
            }
            if(d > num9.doubleValue()){
                yt1 = num20 * (num9 - num8);
            }
            if(d > num11.doubleValue() && d <= num12.doubleValue()){
                yt2 = num21 * (d - num11);
            }
            if(d > num12.doubleValue()){
                yt2 = num21 * (num12 - num11);
            }
            if(d > num14.doubleValue()){
                yt3 = num22 * (d - num14);
            }
            amount = num17 + (d1 * num18) + (t1 * num19) + (w1 * num7) + yt1 + yt2 + yt3;
            orderPrivateCar.setStartMileage(num2);
            orderPrivateCar.setStartMoney(num17);//起步价
            orderPrivateCar.setMileageKilometers(new BigDecimal(d1).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
            orderPrivateCar.setMileageMoney(new BigDecimal(d1 * num18).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());//里程费
            orderPrivateCar.setDuration(new BigDecimal(t1).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
            orderPrivateCar.setDurationMoney(new BigDecimal(t1 * num19).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());//时长费
            orderPrivateCar.setWait(new BigDecimal(w1).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
            orderPrivateCar.setWaitMoney(new BigDecimal(w1 * num7).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());//等待费
            orderPrivateCar.setLongDistance(new BigDecimal((d > num8) ? d - num8 : 0).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
            orderPrivateCar.setLongDistanceMoney(new BigDecimal(yt1 + yt2 + yt3).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());//远途费
            orderPrivateCar.setParkMoney(parkingFee);//停车费
            orderPrivateCar.setRoadTollMoney(crossingFee);//过路费
            orderPrivateCar.setRedPacketMoney(0D);//红包抵扣
            orderPrivateCar.setCouponMoney(0D);//优惠券抵扣
            orderPrivateCar.setDiscount(0D);//优惠抵扣
            orderPrivateCar.setPayMoney(0D);//支付金额
            orderPrivateCar.setOrderMoney(new BigDecimal(amount + parkingFee + crossingFee).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
            return orderPrivateCar;
        }
        //高峰时段处理逻辑
        Calendar s1 = Calendar.getInstance();
        s1.setTime(date);
        s1.set(Calendar.HOUR_OF_DAY, Integer.valueOf(num23.split(" - ")[0].split(":")[0]));
        s1.set(Calendar.MINUTE, Integer.valueOf(num23.split(" - ")[0].split(":")[1]));
        Calendar e1 = Calendar.getInstance();
        e1.setTime(date);
        e1.set(Calendar.HOUR_OF_DAY, Integer.valueOf(num23.split(" - ")[1].split(":")[0]));
        e1.set(Calendar.MINUTE, Integer.valueOf(num23.split(" - ")[1].split(":")[1]));
        Calendar s2 = Calendar.getInstance();
        s2.setTime(date);
        s2.set(Calendar.HOUR_OF_DAY, Integer.valueOf(num24.split(" - ")[0].split(":")[0]));
        s2.set(Calendar.MINUTE, Integer.valueOf(num24.split(" - ")[0].split(":")[1]));
        Calendar e2 = Calendar.getInstance();
        e2.setTime(date);
        e2.set(Calendar.HOUR_OF_DAY, Integer.valueOf(num24.split(" - ")[1].split(":")[0]));
        e2.set(Calendar.MINUTE, Integer.valueOf(num24.split(" - ")[1].split(":")[1]));
        if((date.getTime() > s1.getTimeInMillis() && date.getTime() < e1.getTimeInMillis()) || (date.getTime() > s2.getTimeInMillis() && date.getTime() < e2.getTimeInMillis())){
            if(d > num8.doubleValue() && d <= num9.doubleValue()){
                yt1 = num28 * (d - num8);
            }
            if(d > num9.doubleValue()){
                yt1 = num28 * (num9 - num8);
            }
            if(d > num11.doubleValue() && d <= num12.doubleValue()){
                yt2 = num29 * (d - num11);
            }
            if(d > num12.doubleValue()){
                yt2 = num29 * (num12 - num11);
            }
            if(d > num14.doubleValue()){
                yt3 = num30 * (d - num14);
            }
            amount = num25 + (d1 * num26) + (t1 * num27) + (w1 * num7) + yt1 + yt2 + yt3;
            orderPrivateCar.setStartMileage(num2);
            orderPrivateCar.setStartMoney(num25);//起步价
            orderPrivateCar.setMileageKilometers(new BigDecimal(d1).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
            orderPrivateCar.setMileageMoney(new BigDecimal(d1 * num26).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());//里程费
            orderPrivateCar.setDuration(new BigDecimal(t1).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
            orderPrivateCar.setDurationMoney(new BigDecimal(t1 * num27).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());//时长费
            orderPrivateCar.setWait(new BigDecimal(w1).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
            orderPrivateCar.setWaitMoney(new BigDecimal(w1 * num7).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());//等待费
            orderPrivateCar.setLongDistance(new BigDecimal((d > num8) ? d - num8 : 0).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
            orderPrivateCar.setLongDistanceMoney(new BigDecimal(yt1 + yt2 + yt3).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());//远途费
            orderPrivateCar.setParkMoney(parkingFee);//停车费
            orderPrivateCar.setRoadTollMoney(crossingFee);//过路费
            orderPrivateCar.setRedPacketMoney(0D);//红包抵扣
            orderPrivateCar.setCouponMoney(0D);//优惠券抵扣
            orderPrivateCar.setDiscount(0D);//优惠抵扣
            orderPrivateCar.setPayMoney(0D);//支付金额
            orderPrivateCar.setOrderMoney(new BigDecimal(amount + parkingFee + crossingFee).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
            return orderPrivateCar;
        }
        //其他时间段的计算
        if(d > num8.doubleValue() && d <= num9.doubleValue()){
            yt1 = num10 * (d - num8);
        }
        if(d > num9.doubleValue()){
            yt1 = num10 * (num9 - num8);
        }
        if(d > num11.doubleValue() && d <= num12.doubleValue()){
            yt2 = num13 * (d - num11);
        }
        if(d > num12.doubleValue()){
            yt2 = num13 * (num12 - num11);
        }
        if(d > num14.doubleValue()){
            yt3 = num15 * (d - num14);
        }
        amount = num1 + (d1 * num4) + (t1 * num5) + (w1 * num7) + yt1 + yt2 + yt3;
        orderPrivateCar.setStartMileage(num2);
        orderPrivateCar.setStartMoney(num1);//起步价
        orderPrivateCar.setMileageKilometers(new BigDecimal(d1).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
        orderPrivateCar.setMileageMoney(new BigDecimal(d1 * num4).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());//里程费
        orderPrivateCar.setDuration(new BigDecimal(t1).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
        orderPrivateCar.setDurationMoney(new BigDecimal(t1 * num5).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());//时长费
        orderPrivateCar.setWait(new BigDecimal(w1).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
        orderPrivateCar.setWaitMoney(new BigDecimal(w1 * num7).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());//等待费
        orderPrivateCar.setLongDistance(new BigDecimal((d > num8) ? d - num8 : 0).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
        orderPrivateCar.setLongDistanceMoney(new BigDecimal(yt1 + yt2 + yt3).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());//远途费
        orderPrivateCar.setParkMoney(parkingFee);//停车费
        orderPrivateCar.setRoadTollMoney(crossingFee);//过路费
        orderPrivateCar.setRedPacketMoney(0D);//红包抵扣
        orderPrivateCar.setCouponMoney(0D);//优惠券抵扣
        orderPrivateCar.setDiscount(0D);//优惠抵扣
        orderPrivateCar.setPayMoney(0D);//支付金额
        orderPrivateCar.setOrderMoney(new BigDecimal(amount + parkingFee + crossingFee).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
        return orderPrivateCar;
    }
}
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiSendSms.java
@@ -21,8 +21,8 @@
    // 设置鉴权参数,初始化客户端
    private DefaultProfile profile = DefaultProfile.getProfile(
            "cn-hangzhou",// 地域ID
            "LTAI5tLz3gjFn53JyYopYoSU",// 您的AccessKey ID
            "XR1Nk7gkgpM0bsxmXcHlpQYt9VAXCE");// 您的AccessKey Secret
            "LTAI5tR4whv88Y5CUucCJEu6",// 您的AccessKey ID
            "2fObO6LE6U2OzrUfXw9YBlQWHohFvg");// 您的AccessKey Secret
    private IAcsClient client = new DefaultAcsClient(profile);
    private static void log_print(String functionName, Object result) {
@@ -70,7 +70,7 @@
        // 接收短信的手机号码
        request.putQueryParameter("PhoneNumbers", phone);
        // 短信签名名称。请在控制台签名管理页面签名名称一列查看(必须是已添加、并通过审核的短信签名)。
        request.putQueryParameter("SignName", "未来");
        request.putQueryParameter("SignName", "未来出行");
        // 短信模板ID
        request.putQueryParameter("TemplateCode", templateCode);
        // 短信模板变量对应的实际值,JSON格式。
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapGeocodingUtil.java
@@ -86,9 +86,12 @@
     */
    public Map<String, String> geocode(String lon, String lan) throws Exception{
        String url = "https://restapi.amap.com/v3/geocode/regeo?key=" + key + "&location=" + lon + "," + lan;
        System.err.println("=========="+lon+"============"+lan);
        String forObject = restTemplate.getForObject(url, String.class);
        JSONObject jsonObject = JSON.parseObject(forObject);
        Map<String, String> map = new HashMap<>();
        System.err.println("=========="+jsonObject);
//        gdInterfaceService.saveData("https://restapi.amap.com/v3/geocode/regeo", "经纬度转行政区域");
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java
@@ -84,7 +84,7 @@
            calendar.setTime(lastFacialTime);
            // 增加2分钟
            calendar.add(Calendar.MINUTE, 2);
            calendar.add(Calendar.MINUTE, tSysFaceDistinguish.getMinuteNum());
            Date updatedDate = calendar.getTime();
            int compareResult = now.compareTo(updatedDate);
            if (compareResult >= 0) {
DriverNTTravel/guns-admin/src/main/resources/application.yml
@@ -48,6 +48,14 @@
---
#spring:
#  datasource:
#    url: jdbc:mysql://127.0.0.1:10633/nttravel?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai
#    username: root
#    password: WeiLaiChuXing@2024!
#    db-name: guns #用来搜集数据库的所有表
#    filters: wall,mergeStat
spring:
  datasource:
    url: jdbc:mysql://192.168.110.34:3306/nttravel?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai
@@ -55,7 +63,6 @@
    password: 123456
    db-name: guns #用来搜集数据库的所有表
    filters: wall,mergeStat
#spring:
#  datasource:
@@ -82,12 +89,12 @@
wx:
  grantType: authorization_code #填authorization_code
  appid: wx19a713b4943f9568 #应用唯一标识,在微信开放平台提交应用审核通过后获得
  appSecret: 5d4ca951a855b1e2c86a844cd42fd133 #应用密钥AppSecret,在微信开放平台提交应用审核通过后获得
  appid: wxc89ecab90d24edd8 #应用唯一标识,在微信开放平台提交应用审核通过后获得
  appSecret: bca863174d22736a4a9758a67484947e #应用密钥AppSecret,在微信开放平台提交应用审核通过后获得
  appletsAppid: #小程序APPid
  appletsAppSecret: #
  mchId: 1514387581 #微信支付分配的商户号
  key: mIyYnFMPd2j1ki1vzUMWhKr4Ve04Mse7 #key为商户平台设置的密钥key:
  mchId: 1677823911 #微信支付分配的商户号
  key: CnqmrOgKqOiEyytQtoyxuaRgRGjcWFnD #key为商户平台设置的密钥key:
---
@@ -120,9 +127,9 @@
#支付回调地址
#正式环境
callbackPath: https://fuban.net/driver
#callbackPath: https://weilaigo.cn/driver
#测试环境
#callbackPath: http://121.37.97.220:81/driver
callbackPath: http://221.182.45.100:8999/driver
---
#交通部推送数据功能开关
ManagementNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/GeneralizationActivityController.java
@@ -142,6 +142,7 @@
        if(new Date().before(tActivityGeneralization.getStartTime())){
            tActivityGeneralization.setState(2);
        }
        tActivityGeneralization.setInsertTime(new Date());
        activityGeneralizationService.insert(tActivityGeneralization);
        // 生成二维码,上传到服务器
ManagementNTTravel/guns-admin/src/main/resources/application.yml
@@ -57,12 +57,20 @@
spring:
  datasource:
    url: jdbc:mysql://192.168.110.34:3306/nttravel?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
    url: jdbc:mysql://127.0.0.1:10633/nttravel?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai
    username: root
    password: 123456
    password: WeiLaiChuXing@2024!
    db-name: guns #用来搜集数据库的所有表
    filters: wall,mergeStat
#spring:
#  datasource:
#    url: jdbc:mysql://192.168.110.34:3306/nttravel?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
#    username: root
#    password: 123456
#    db-name: guns #用来搜集数据库的所有表
#    filters: wall,mergeStat
#spring:
#  datasource:
ManagementNTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSysReformist/tSysReformist.html
@@ -349,10 +349,10 @@
                            <br/>
                        </div>
                        <div class="col-sm-3">
                            <#avatar id="userQrCode" name="用户端客服二维码" avatarImg="${reformist.userQrCode}"/>
                            <#avatar id="userQrCode" name="用户端客服二维码" avatarImg="${reformist.userQrCode!}"/>
                        </div>
                        <div class="col-sm-3">
                            <#avatar id="driverQrCode" name="司机端客服二维码" avatarImg="${reformist.driverQrCode}"/>
                            <#avatar id="driverQrCode" name="司机端客服二维码" avatarImg="${reformist.driverQrCode!}"/>
                        </div>
                    </div>
                </div>
UserNTTravel/.idea/inspectionProfiles/Project_Default.xml
@@ -2,6 +2,13 @@
  <profile version="1.0">
    <option name="myName" value="Project Default" />
    <inspection_tool class="AliAccessStaticViaInstance" enabled="true" level="WARNING" enabled_by_default="true" />
    <inspection_tool class="AliArrayNamingShouldHaveBracket" enabled="true" level="WARNING" enabled_by_default="true" />
    <inspection_tool class="AliControlFlowStatementWithoutBraces" enabled="true" level="WARNING" enabled_by_default="true" />
    <inspection_tool class="AliDeprecation" enabled="true" level="WARNING" enabled_by_default="true" />
    <inspection_tool class="AliEqualsAvoidNull" enabled="true" level="WARNING" enabled_by_default="true" />
    <inspection_tool class="AliLongLiteralsEndingWithLowercaseL" enabled="true" level="WARNING" enabled_by_default="true" />
    <inspection_tool class="AliMissingOverrideAnnotation" enabled="true" level="WARNING" enabled_by_default="true" />
    <inspection_tool class="AliWrapperTypeEquality" enabled="true" level="WARNING" enabled_by_default="true" />
    <inspection_tool class="MapOrSetKeyShouldOverrideHashCodeEquals" enabled="true" level="WARNING" enabled_by_default="true" />
  </profile>
</component>
UserNTTravel/.idea/workspace.xml
@@ -5,43 +5,75 @@
  </component>
  <component name="ChangeListManager">
    <list default="true" id="202e88b5-454e-4bc8-8ff5-2d4680354082" name="Default Changelist" comment="Default Changelist">
      <change afterPath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TOrderTapeMapper.java" afterDir="false" />
      <change afterPath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOrderTape.java" afterDir="false" />
      <change afterPath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITOrderTapeService.java" afterDir="false" />
      <change afterPath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderTapeServiceImpl.java" afterDir="false" />
      <change afterPath="$PROJECT_DIR$/.idea/inspectionProfiles/Project_Default.xml" afterDir="false" />
      <change afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/SysCouponRecordMapper.java" afterDir="false" />
      <change afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TActivityGeneralizationMapper.java" afterDir="false" />
      <change afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/AliSms.java" afterDir="false" />
      <change afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/SysCouponRecord.java" afterDir="false" />
      <change afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TActivityGeneralization.java" afterDir="false" />
      <change afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ISysCouponRecordService.java" afterDir="false" />
      <change afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITActivityGeneralizationService.java" afterDir="false" />
      <change afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SysCouponRecordServiceImpl.java" afterDir="false" />
      <change afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TActivityGeneralizationServiceImpl.java" afterDir="false" />
      <change afterPath="$PROJECT_DIR$/../DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/OrderTransferMapper.java" afterDir="false" />
      <change afterPath="$PROJECT_DIR$/../DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/OrderTransferMapper.xml" afterDir="false" />
      <change afterPath="$PROJECT_DIR$/../DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/OrderTransferCar.java" afterDir="false" />
      <change afterPath="$PROJECT_DIR$/../DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderTransferService.java" afterDir="false" />
      <change afterPath="$PROJECT_DIR$/../DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderTransferServiceImpl.java" afterDir="false" />
      <change afterPath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TDriverFacialFailMapper.java" afterDir="false" />
      <change afterPath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TDriverFacialFail.java" afterDir="false" />
      <change afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TOpenCitySiteMapper.java" afterDir="false" />
      <change afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/kaipiao/util/Jisuan.java" afterDir="false" />
      <change afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOpenCitySite.java" afterDir="false" />
      <change afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/transfer/model/SiteDto.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../.idea/misc.xml" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java" beforeDir="false" afterPath="$PROJECT_DIR$/../DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/SiteMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/SiteMapper.xml" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../DispatchOKTravel/guns-admin/src/main/resources/application.yml" beforeDir="false" afterPath="$PROJECT_DIR$/../DispatchOKTravel/guns-admin/src/main/resources/application.yml" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../DriverNTTravel/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../DriverNTTravel/.idea/workspace.xml" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java" beforeDir="false" afterPath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java" beforeDir="false" afterPath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/model/OrderCrossCity.java" beforeDir="false" afterPath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/model/OrderCrossCity.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java" beforeDir="false" afterPath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/IOrderPrivateCarService.java" beforeDir="false" afterPath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/IOrderPrivateCarService.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/OrderCrossCityController.java" beforeDir="false" afterPath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/OrderCrossCityController.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderService.java" beforeDir="false" afterPath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderService.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TOrderTransferMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TOrderTransferMapper.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TOrderTransferMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TOrderTransferMapper.xml" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOrderTransfer.java" beforeDir="false" afterPath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOrderTransfer.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITOrderTransferService.java" beforeDir="false" afterPath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITOrderTransferService.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDFalconUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDFalconUtil.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderTransferServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderTransferServiceImpl.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiSendSms.java" beforeDir="false" afterPath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiSendSms.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapGeocodingUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapGeocodingUtil.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/resources/application.yml" beforeDir="false" afterPath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/resources/application.yml" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/../ManagementNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/GeneralizationActivityController.java" beforeDir="false" afterPath="$PROJECT_DIR$/../ManagementNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/GeneralizationActivityController.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/.idea/inspectionProfiles/Project_Default.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/inspectionProfiles/Project_Default.xml" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/dto/CharteredCarDto.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/dto/CharteredCarDto.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/pom.xml" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/model/OrderCharteredCar.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/model/OrderCharteredCar.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/server/impl/OrderCharteredCarServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/server/impl/OrderCharteredCarServiceImpl.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/api/ServerCarModelController.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/api/ServerCarModelController.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserCallbackController.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserCallbackController.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/LineController.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/LineController.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/model/Line.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/model/Line.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/OrderCrossCityController.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/OrderCrossCityController.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/IOrderCrossCityService.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/IOrderCrossCityService.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/kaipiao/KaiPiaoUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/kaipiao/KaiPiaoUtil.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/kaipiao/entity/InvoiceDetails.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/kaipiao/entity/InvoiceDetails.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/kaipiao/entity/MaterialInfo.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/kaipiao/entity/MaterialInfo.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IServerCarModelService.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IServerCarModelService.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/InvoiceServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/InvoiceServiceImpl.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OpenCityBusinessServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OpenCityBusinessServiceImpl.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiSendSms.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiSendSms.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDFalconUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDFalconUtil.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapGeocodingUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapGeocodingUtil.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/OssUploadUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/OssUploadUtil.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderWarpper.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderWarpper.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/transfer/controller/OrderTransferController.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/transfer/controller/OrderTransferController.java" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/transfer/dao/mapping/OrderTransferMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/transfer/dao/mapping/OrderTransferMapper.xml" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/resources/application.yml" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/resources/application.yml" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/resources/redis.properties" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/resources/redis.properties" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/target/classes/META-INF/spring-configuration-metadata.json" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/target/classes/META-INF/spring-configuration-metadata.json" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/target/classes/application.yml" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/target/classes/application.yml" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/target/classes/com/stylefeng/guns/modular/transfer/dao/mapping/OrderTransferMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/target/classes/com/stylefeng/guns/modular/transfer/dao/mapping/OrderTransferMapper.xml" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-admin/target/classes/redis.properties" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/target/classes/redis.properties" afterDir="false" />
      <change beforePath="$PROJECT_DIR$/guns-core/target/classes/META-INF/spring-configuration-metadata.json" beforeDir="false" afterPath="$PROJECT_DIR$/guns-core/target/classes/META-INF/spring-configuration-metadata.json" afterDir="false" />
    </list>
    <option name="SHOW_DIALOG" value="false" />
    <option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -153,6 +185,9 @@
  <component name="GitToolBoxStore">
    <option name="projectConfigVersion" value="5" />
  </component>
  <component name="HighlightingSettingsPerFile">
    <setting file="file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java" root0="FORCE_HIGHLIGHTING" />
  </component>
  <component name="IdeDocumentHistory">
    <option name="CHANGED_PATHS">
      <list>
@@ -221,14 +256,6 @@
}</component>
  <component name="MarkdownSettingsMigration">
    <option name="stateVersion" value="1" />
  </component>
  <component name="MavenImportPreferences">
    <option name="generalSettings">
      <MavenGeneralSettings>
        <option name="mavenHome" value="$PROJECT_DIR$/../../../apache-maven/apache-maven-3.6.1" />
        <option name="userSettingsFile" value="D:\apache-maven\apache-maven-3.6.1\conf\settings.xml" />
      </MavenGeneralSettings>
    </option>
  </component>
  <component name="MavenProjectNavigator">
    <treeState>
@@ -378,6 +405,9 @@
  <component name="PropertiesComponent"><![CDATA[{
  "keyToString": {
    "Maven.guns-admin [clean].executor": "Run",
    "Maven.guns-admin [package].executor": "Run",
    "Maven.guns-parent [clean].executor": "Run",
    "Maven.guns-parent [package].executor": "Run",
    "RequestMappingsPanelOrder0": "0",
    "RequestMappingsPanelOrder1": "1",
    "RequestMappingsPanelWidth0": "75",
@@ -388,22 +418,26 @@
    "Spring Boot.GunsRestApplication.executor": "Debug",
    "git-widget-placeholder": "master",
    "kotlin-language-version-configured": "true",
    "last_opened_file_path": "D:/study/NTTravel/ManagementNTTravel",
    "last_opened_file_path": "D:/study/NTTravel/DispatchOKTravel",
    "node.js.detected.package.eslint": "true",
    "node.js.detected.package.tslint": "true",
    "node.js.selected.package.eslint": "(autodetect)",
    "node.js.selected.package.tslint": "(autodetect)",
    "nodejs_package_manager_path": "npm",
    "settings.editor.selected.configurable": "MavenSettings",
    "vue.rearranger.settings.migration": "true",
    "应用程序.ALiSendSms.executor": "Debug"
    "应用程序.ALiSendSms.executor": "Debug",
    "应用程序.KaiPiaoUtil.executor": "Debug",
    "应用程序.Main.executor": "Debug"
  }
}]]></component>
  <component name="RecentsManager">
    <key name="CopyFile.RECENT_KEYS">
      <recent name="D:\study\NTTravel\UserNTTravel\guns-admin\src\main\java\com\stylefeng\guns\modular\system\util" />
      <recent name="D:\study\NTTravel\UserNTTravel\guns-admin\src\main\java\com\stylefeng\guns\modular\system\kaipiao" />
      <recent name="D:\study\NTTravel\UserNTTravel\guns-admin\src\main\java\com\stylefeng\guns\modular\system\dao\mapping" />
      <recent name="D:\study\NTTravel\UserNTTravel\guns-admin\src\main\java\com\stylefeng\guns\modular" />
      <recent name="D:\study\NTTravel\UserNTTravel\guns-admin\src\main\java\com\stylefeng\guns\modular\CharteredCar\dao\mapping" />
      <recent name="E:\IDEA Workspaces\KYTravel\UserOKTravel\guns-admin\src\test" />
    </key>
    <key name="CopyClassDialog.RECENTS_KEY">
      <recent name="com.stylefeng.guns.modular.system.dao" />
@@ -420,13 +454,39 @@
      </set>
    </option>
  </component>
  <component name="RunManager" selected="应用程序.ALiSendSms">
  <component name="RunManager" selected="Spring Boot.GunsRestApplication">
    <configuration name="ALiSendSms" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
      <option name="MAIN_CLASS_NAME" value="com.stylefeng.guns.modular.system.util.ALiSendSms" />
      <module name="guns-admin" />
      <extension name="coverage">
        <pattern>
          <option name="PATTERN" value="com.stylefeng.guns.modular.system.util.*" />
          <option name="PATTERN" value="com.stylefeng.guns.modular.system.kaipiao.*" />
          <option name="ENABLED" value="true" />
        </pattern>
      </extension>
      <method v="2">
        <option name="Make" enabled="true" />
      </method>
    </configuration>
    <configuration name="Jisuan" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
      <option name="MAIN_CLASS_NAME" value="com.stylefeng.guns.modular.system.kaipiao.util.Jisuan" />
      <module name="guns-admin" />
      <extension name="coverage">
        <pattern>
          <option name="PATTERN" value="com.stylefeng.guns.modular.system.kaipiao.util.*" />
          <option name="ENABLED" value="true" />
        </pattern>
      </extension>
      <method v="2">
        <option name="Make" enabled="true" />
      </method>
    </configuration>
    <configuration name="KaiPiaoUtil" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
      <option name="MAIN_CLASS_NAME" value="com.stylefeng.guns.modular.system.kaipiao.KaiPiaoUtil" />
      <module name="guns-admin" />
      <extension name="coverage">
        <pattern>
          <option name="PATTERN" value="com.stylefeng.guns.modular.system.kaipiao.*" />
          <option name="ENABLED" value="true" />
        </pattern>
      </extension>
@@ -468,10 +528,14 @@
      <item itemvalue="JUnit.GunsApplicationTest.queryVipLevelList" />
      <item itemvalue="Spring Boot.GunsRestApplication" />
      <item itemvalue="Spring Boot.GunsApplication" />
      <item itemvalue="应用程序.Jisuan" />
      <item itemvalue="应用程序.KaiPiaoUtil" />
      <item itemvalue="应用程序.ALiSendSms" />
    </list>
    <recent_temporary>
      <list>
        <item itemvalue="应用程序.KaiPiaoUtil" />
        <item itemvalue="应用程序.Jisuan" />
        <item itemvalue="应用程序.ALiSendSms" />
        <item itemvalue="JUnit.GunsApplicationTest.queryVipLevelList" />
      </list>
@@ -551,7 +615,14 @@
      <workItem from="1716514345062" duration="7625000" />
      <workItem from="1716774493061" duration="7494000" />
      <workItem from="1716793828497" duration="893000" />
      <workItem from="1716794971520" duration="16681000" />
      <workItem from="1716794971520" duration="72052000" />
      <workItem from="1717151384772" duration="15866000" />
      <workItem from="1717403686403" duration="564000" />
      <workItem from="1717404706479" duration="1109000" />
      <workItem from="1717406233505" duration="1384000" />
      <workItem from="1717408091600" duration="20202000" />
      <workItem from="1717493135960" duration="4451000" />
      <workItem from="1717552313971" duration="5726000" />
    </task>
    <servers />
  </component>
@@ -648,49 +719,94 @@
    <breakpoint-manager>
      <breakpoints>
        <line-breakpoint enabled="true" type="java-line">
          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java</url>
          <line>523</line>
          <option name="timeStamp" value="8" />
          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/transfer/server/impl/OrderTransferServiceImpl.java</url>
          <line>787</line>
          <option name="timeStamp" value="35" />
        </line-breakpoint>
        <line-breakpoint enabled="true" type="java-line">
          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/controller/OrderCharteredCarController.java</url>
          <line>48</line>
          <option name="timeStamp" value="10" />
          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/transfer/server/impl/OrderTransferServiceImpl.java</url>
          <line>778</line>
          <option name="timeStamp" value="36" />
        </line-breakpoint>
        <line-breakpoint enabled="true" type="java-line">
          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/transfer/server/impl/OrderTransferServiceImpl.java</url>
          <line>581</line>
          <option name="timeStamp" value="37" />
        </line-breakpoint>
        <line-breakpoint enabled="true" type="java-line">
          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserCallbackController.java</url>
          <line>132</line>
          <option name="timeStamp" value="39" />
        </line-breakpoint>
        <line-breakpoint enabled="true" type="java-line">
          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/kaipiao/email/KaiPiaoEmail.java</url>
          <line>61</line>
          <option name="timeStamp" value="43" />
        </line-breakpoint>
        <line-breakpoint enabled="true" type="java-line">
          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java</url>
          <line>1425</line>
          <option name="timeStamp" value="56" />
        </line-breakpoint>
        <line-breakpoint enabled="true" type="java-line">
          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java</url>
          <line>503</line>
          <option name="timeStamp" value="57" />
        </line-breakpoint>
        <line-breakpoint enabled="true" type="java-line">
          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java</url>
          <line>1696</line>
          <option name="timeStamp" value="66" />
        </line-breakpoint>
        <line-breakpoint enabled="true" type="java-line">
          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java</url>
          <line>489</line>
          <option name="timeStamp" value="76" />
        </line-breakpoint>
        <line-breakpoint enabled="true" type="java-line">
          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java</url>
          <line>226</line>
          <option name="timeStamp" value="81" />
        </line-breakpoint>
        <line-breakpoint enabled="true" type="java-line">
          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java</url>
          <line>85</line>
          <option name="timeStamp" value="16" />
          <line>89</line>
          <option name="timeStamp" value="85" />
        </line-breakpoint>
        <line-breakpoint enabled="true" type="java-line">
          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/transfer/controller/OrderTransferController.java</url>
          <line>92</line>
          <option name="timeStamp" value="86" />
        </line-breakpoint>
        <line-breakpoint enabled="true" type="java-line">
          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/transfer/server/impl/OrderTransferServiceImpl.java</url>
          <line>361</line>
          <option name="timeStamp" value="87" />
        </line-breakpoint>
        <line-breakpoint enabled="true" type="java-line">
          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/OrderCrossCityController.java</url>
          <line>127</line>
          <option name="timeStamp" value="88" />
        </line-breakpoint>
        <line-breakpoint enabled="true" type="java-line">
          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java</url>
          <line>124</line>
          <option name="timeStamp" value="92" />
        </line-breakpoint>
        <line-breakpoint enabled="true" type="java-line">
          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java</url>
          <line>71</line>
          <option name="timeStamp" value="18" />
          <line>81</line>
          <option name="timeStamp" value="95" />
        </line-breakpoint>
        <line-breakpoint enabled="true" type="java-line">
          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java</url>
          <line>239</line>
          <option name="timeStamp" value="19" />
          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/api/ServerCarModelController.java</url>
          <line>92</line>
          <option name="timeStamp" value="97" />
        </line-breakpoint>
        <line-breakpoint enabled="true" type="java-line">
          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java</url>
          <line>233</line>
          <option name="timeStamp" value="20" />
        </line-breakpoint>
        <line-breakpoint enabled="true" type="java-line">
          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java</url>
          <line>200</line>
          <option name="timeStamp" value="21" />
        </line-breakpoint>
        <line-breakpoint enabled="true" type="java-line">
          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java</url>
          <line>1346</line>
          <option name="timeStamp" value="22" />
        </line-breakpoint>
        <line-breakpoint enabled="true" type="java-line">
          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java</url>
          <line>1334</line>
          <option name="timeStamp" value="23" />
          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java</url>
          <line>272</line>
          <option name="timeStamp" value="98" />
        </line-breakpoint>
      </breakpoints>
    </breakpoint-manager>
UserNTTravel/guns-admin/pom.xml
@@ -17,6 +17,13 @@
    <dependencies>
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.7.17</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/model/OrderCharteredCar.java
@@ -160,7 +160,7 @@
    }
    public void setCarTime(Integer carTime) {
    public void setCarTime(double carTime) {
        this.carTime = carTime;
    }
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/server/impl/OrderCharteredCarServiceImpl.java
@@ -151,7 +151,9 @@
            orderCharteredCar.setOrderNumber(this.getOrderNum());
            orderCharteredCar.setCompanyId(1);
            orderCharteredCar.setIsDelete(1);
            orderCharteredCar.setState(1);
            orderCharteredCar.setInsertTime(new Date());
            orderCharteredCar.setCarTime(charteredCarDto.getCarTime());
            String strDateTime = charteredCarDto.getTraveltime();
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-M-d H:m");
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
@@ -49,7 +49,7 @@
    @PostMapping("/base/driver/queryIdleDriver")
    @ApiOperation(value = "获取5公里范围内空闲司机数量", tags = {"用户端-首页"}, notes = "")
    @ApiImplicitParams({
            @ApiImplicitParam(value = "业务类型(1=专车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城,6=包车)", name = "type", required = true, dataType = "int"),
            @ApiImplicitParam(value = "业务类型(1=专车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城,6=包车 7=接送机)", name = "type", required = true, dataType = "int"),
            @ApiImplicitParam(value = "乘客当前定位经度", name = "lon", required = true, dataType = "double"),
            @ApiImplicitParam(value = "乘客当前定位纬度", name = "lat", required = true, dataType = "double")
    })
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/ServerCarModelController.java
@@ -88,10 +88,10 @@
    @ApiOperation(value = "获取业务对应的所有车型", tags = {"用户端-接送机"}, notes = "")
    @ApiImplicitParams({
    })
    public ResultUtil<List<ServerCarModelWarpper>> queryServerCarModelsTrans(){
    public ResultUtil<List<ServerCarModelWarpper>> queryServerCarModelsTrans(String startLonLat, String endLonLat){
        try {
            List<Map<String, Object>> list = serverCarModelService.queryServerCarModels(7);
            return ResultUtil.success(ServerCarModelWarpper.getServerCarModelWarppers(list));
            return serverCarModelService.queryServerCarModel1(startLonLat, endLonLat);
        }catch (Exception e){
            e.printStackTrace();
            return ResultUtil.runErr();
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserCallbackController.java
@@ -130,7 +130,7 @@
        //判断验证码是否正确
        //判断该手机号是否注册
        UserInfo byAccount = userInfoService.selectList(new EntityWrapper<UserInfo>().ne("flag",3)).get(0);
        UserInfo byAccount = userInfoService.selectList(new EntityWrapper<UserInfo>().eq("phone",phone).ne("flag",3)).get(0);
        //已注册直接添加优惠卷
        TActivityGeneralization tActivityGeneralization = activityGeneralizationService.selectById(acId);
        SysCouponRecord sysCouponRecord = sysCouponRecordService.selectById(tActivityGeneralization.getCouponId());
@@ -153,7 +153,7 @@
            userCouponRecord.setCouponType(Integer.valueOf(String.valueOf(sysCouponRecord.getCouponType())));
            userCouponRecord.setCouponUseType(sysCouponRecord.getCouponUseType());
            userCouponRecord.setInsertTime(date);
            userCouponRecord.setFullMoney(Double.valueOf(String.valueOf(sysCouponRecord.getFullMoney())));
            userCouponRecord.setFullMoney(Double.valueOf(String.valueOf(sysCouponRecord.getFullMoney()==null?0:sysCouponRecord.getFullMoney())));
            userCouponRecord.setMoney(Double.valueOf(String.valueOf(sysCouponRecord.getMoney())));
            userCouponRecord.setCompanyId(byAccount.getCompanyId());
            userCouponRecord.setUserId(byAccount.getId());
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/LineController.java
@@ -68,7 +68,7 @@
    @RequestMapping(value = "/base/line/recomand", method = RequestMethod.POST)
    @ApiOperation(value = "获取热门路线", tags = {"用户端-跨城"}, notes = "")
    public ResultUtil<List<Line>> recomand(){
        List<Line> isOpen = lineService.selectList(new EntityWrapper<Line>().eq("isOpen", 1));
        List<Line> isOpen = lineService.selectList(new EntityWrapper<Line>().eq("isOpen", 1).eq("state",1));
        for (Line line : isOpen) {
            List<LineSite> lineId = lineSiteService.selectList(new EntityWrapper<LineSite>().eq("lineId", line.getId()));
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/OrderCrossCityController.java
@@ -118,16 +118,18 @@
            @ApiImplicitParam(value = "跨城订单id", name = "crossCityOrderId", required = true, dataType = "int"),
            @ApiImplicitParam(value = "摆渡方位(1=跨城起点,2=跨城终点)", name = "place", required = true, dataType = "int"),
            @ApiImplicitParam(value = "订单来源(1:APP下单,2:扫码下单,3:小程序下单,4:司机下单,5:调度下单)", name = "orderSource", required = true, dataType = "int"),
            @ApiImplicitParam(value = "乘客姓名(代下单必传)", name = "passengers", required = false, dataType = "string"),
            @ApiImplicitParam(value = "乘客电话(代下单必传)", name = "passengersPhone", required = false, dataType = "string"),
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil<BaseWarpper> saveOrderFerry(String serverCarModelIds, Date travelTime, String placementLon, String placementLat, String startLon,
                                                  String startLat, String startAddress, String endLon, String endLat, String endAddress, Integer crossCityOrderId, Integer place, Integer orderSource, HttpServletRequest request){
                                                  String startLat, String startAddress, String endLon, String endLat, String endAddress, Integer crossCityOrderId, Integer place, Integer orderSource,String passengers,String passengersPhone, HttpServletRequest request){
        try {
            Integer uid = userInfoService.getUserIdFormRedis(request);
            if(null == uid){
                return ResultUtil.tokenErr();
            }
            return orderCrossCityService.saveOrderFerry(serverCarModelIds, travelTime, placementLon, placementLat, startLon, startLat, startAddress, endLon, endLat, endAddress, crossCityOrderId, place, orderSource, uid);
            return orderCrossCityService.saveOrderFerry(serverCarModelIds, travelTime, placementLon, placementLat, startLon, startLat, startAddress, endLon, endLat, endAddress, crossCityOrderId, place, orderSource, uid,passengers,passengersPhone);
        }catch (Exception e){
            e.printStackTrace();
            return ResultUtil.runErr();
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/IOrderCrossCityService.java
@@ -249,7 +249,7 @@
     */
    ResultUtil<BaseWarpper> saveOrderFerry(String serverCarModelIds, Date travelTime, String placementLon, String placementLat, String startLon,
                                           String startLat, String startAddress, String endLon, String endLat, String endAddress,
                                           Integer crossCityOrderId, Integer place, Integer orderSource, Integer uid) throws Exception;
                                           Integer crossCityOrderId, Integer place, Integer orderSource, Integer uid,String name ,String phone) throws Exception;
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java
@@ -72,7 +72,6 @@
        if(c.getTimeInMillis() > sdf.parse(day).getTime()){
            throw new SystemException("日期不能小于当天");
        }
        List<Map<String, Object>> list = new ArrayList<>();
        List<LineShift> lineShifts = lineShiftMapper.queryByLineId(lineId);
        List<Map<String, Object>> s = lineSiteMapper.queryDriver(lineId, sdf.parse(day), driverId);
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
@@ -33,6 +33,7 @@
import com.stylefeng.guns.modular.taxi.service.IPaymentRecordService;
import com.stylefeng.guns.modular.taxi.service.ITransactionDetailsService;
import com.stylefeng.guns.modular.taxi.service.impl.OrderTaxiServiceImpl;
import io.swagger.models.auth.In;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@@ -302,17 +303,17 @@
        }
        //计算折扣
        UserActivityDiscount1 query2 = userActivityDiscount1Mapper.query(orderCrossCity.getCompanyId());
        if(null != query2){
            Double special = query2.getSpecial();
            orderCrossCity.setDiscount(special);
            double v = new BigDecimal(orderMoney).multiply(new BigDecimal(special / 10)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
            if(orderMoney.compareTo(v) > 0){
                orderCrossCity.setDiscountMoney(orderMoney - v);
                orderCrossCity.setActivityId(query2.getId());
                orderMoney = v;
            }
        }
//        UserActivityDiscount1 query2 = userActivityDiscount1Mapper.query(orderCrossCity.getCompanyId());
//        if(null != query2){
//            Double special = query2.getSpecial();
//            orderCrossCity.setDiscount(special);
//            double v = new BigDecimal(orderMoney).multiply(new BigDecimal(special / 10)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
//            if(orderMoney.compareTo(v) > 0){
//                orderCrossCity.setDiscountMoney(orderMoney - v);
//                orderCrossCity.setActivityId(query2.getId());
//                orderMoney = v;
//            }
//        }
        if(payType == 1){//微信支付
            String app = type == 1 ? "APP" : "JSAPI";
@@ -1389,7 +1390,7 @@
            if(null == distance){
                System.err.println("查询距离出错了");
            }else{
                d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000), new MathContext(2, RoundingMode.HALF_EVEN)).toString();
                d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000), new MathContext(2, RoundingMode.HALF_EVEN)).toPlainString();
                t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60), new MathContext(2, RoundingMode.HALF_EVEN)).intValue() + "";
            }
            orderServerWarpper.setReservationMileage("0");
@@ -1421,7 +1422,7 @@
    @Override
    public ResultUtil<BaseWarpper> saveOrderFerry(String serverCarModelIds, Date travelTime, String placementLon, String placementLat, String startLon,
                                              String startLat, String startAddress, String endLon, String endLat, String endAddress, Integer crossCityOrderId,
                                                  Integer place, Integer orderSource, Integer uid) throws Exception {
                                                  Integer place, Integer orderSource, Integer uid,String name,String phone) throws Exception {
        if(ToolUtil.isEmpty(serverCarModelIds)){
            return ResultUtil.error("请选择服务车型");
        }
@@ -1444,7 +1445,7 @@
                map.put("orderType", 2);
                map.put("orderId", resultUtil.getData().getId());
            }else{
                ResultUtil<BaseWarpper> resultUtil = this.orderPrivateCar(Integer.valueOf(serverModelId), travelTime, placementLon, placementLat, startLon, startLat, startAddress, endLon, endLat, endAddress, crossCityOrderId, place, orderSource, uid);
                ResultUtil<BaseWarpper> resultUtil = this.orderPrivateCar(Integer.valueOf(serverModelId), travelTime, placementLon, placementLat, startLon, startLat, startAddress, endLon, endLat, endAddress, crossCityOrderId, place, orderSource, uid,name,phone);
                if(resultUtil.getCode() != 200){
                    return resultUtil;
                }
@@ -1571,7 +1572,7 @@
     * @throws Exception
     */
    private synchronized ResultUtil<BaseWarpper> orderPrivateCar(Integer serverCarModelId, Date travelTime, String placementLon, String placementLat, String startLon, String startLat,
                                       String startAddress, String endLon, String endLat, String endAddress, Integer crossCityOrderId, Integer place, Integer orderSource, Integer uid) throws Exception{
                                       String startAddress, String endLon, String endLat, String endAddress, Integer crossCityOrderId, Integer place, Integer orderSource, Integer uid,String name,String phone) throws Exception{
        //如果出行时间大于当前10分钟则默认为预约单
        Integer reservation = 1;
        if(travelTime.getTime() > (System.currentTimeMillis() + 600000)){
@@ -1604,6 +1605,8 @@
        orderPrivateCar.setEndLat(Double.valueOf(endLat));
        orderPrivateCar.setEndAddress(endAddress);
        orderPrivateCar.setSubstitute(0);
        orderPrivateCar.setPassengers(name);
        orderPrivateCar.setPassengersPhone(phone);
        if(orderPrivateCar.getSubstitute() == 0 || ToolUtil.isEmpty(orderPrivateCar.getPassengers())){
            UserInfo userInfo = userInfoService.selectById(uid);
            if(ToolUtil.isEmpty(userInfo.getPhone())){
@@ -1622,8 +1625,7 @@
        orderPrivateCar.setIsDelete(1);
        orderPrivateCarMapper.insert(orderPrivateCar);
        //添加消息
        systemNoticeService.addSystemNotice(1, "您的专车订单已下单成功,我们正在为您指派司机,请稍后!", orderPrivateCar.getUserId(), 1);
        //添加消息        systemNoticeService.addSystemNotice(1, "您的专车订单已下单成功,我们正在为您指派司机,请稍后!", orderPrivateCar.getUserId(), 1);
        BaseWarpper baseWarpper = new BaseWarpper();
        baseWarpper.setId(orderPrivateCar.getId());
@@ -1637,13 +1639,15 @@
     * @throws Exception
     */
    public void pushOrder(List<Map<String, Integer>> list) throws Exception{
        System.err.println("====="+list);
        for(Map<String, Integer> map : list){
            Integer orderType = map.get("orderType");
            Integer orderId = map.get("orderId");
            Integer orderId1 = map.get("orderId");
            Thread thread = new Thread(new Runnable() {
                @Override
                public void run() {
                    List<Map<String, Integer>> datas = list;
                    final Integer orderId = orderId1;
                    String vehicle = redisUtil.getValue("VEHICLE");
                    List<Integer> integers = new ArrayList<>();
                    if(ToolUtil.isNotEmpty(vehicle)){
@@ -1651,7 +1655,10 @@
                    }
                    try {
                        if(orderType == 1){//专车
                            Thread.sleep(1000);
                            System.err.println("====="+orderId);
                            OrderPrivateCar orderPrivateCar = orderPrivateCarMapper.selectById(orderId);
                            System.err.println("====="+orderPrivateCar);
                            OrderPrivateCarServiceImpl.orderIds.add(orderPrivateCar.getId());//添加记录,防止调用接口重复提醒无人接单
                            Company query = companyCityService.query(String.valueOf(orderPrivateCar.getStartLon()), String.valueOf(orderPrivateCar.getStartLat()));//获取起点所属分公司
                            List<PushOrder> querys = pushOrderService.querys(null, 1, query.getId());//获取需要推送的次数
@@ -1673,12 +1680,12 @@
                                    //删除其他无效数据
                                    for(Map<String, Integer> map : datas){
                                        Integer orderType = map.get("orderType");
                                        Integer orderId = map.get("orderId");
                                        Integer orderId1 = map.get("orderId");
                                        if(orderType == 1 && orderId != orderPrivateCar.getId()){
                                            orderPrivateCarMapper.deleteById(orderId);
                                            orderPrivateCarMapper.deleteById(orderId1);
                                        }
                                        if(orderType == 2){
                                            orderTaxiMapper.deleteById(orderId);
                                            orderTaxiMapper.deleteById(orderId1);
                                        }
                                    }
                                    break;
@@ -1742,12 +1749,12 @@
                                    //删除其他无效数据
                                    for(Map<String, Integer> map : datas){
                                        Integer orderType = map.get("orderType");
                                        Integer orderId = map.get("orderId");
                                        Integer orderId1 = map.get("orderId");
                                        if(orderType == 1){
                                            orderPrivateCarMapper.deleteById(orderId);
                                            orderPrivateCarMapper.deleteById(orderId1);
                                        }
                                        if(orderType == 2 && orderId != orderTaxi.getId()){
                                            orderTaxiMapper.deleteById(orderId);
                                        if(orderType == 2 && orderId1 != orderTaxi.getId()){
                                            orderTaxiMapper.deleteById(orderId1);
                                        }
                                    }
                                    break;
@@ -1794,7 +1801,7 @@
                }
            });
            thread.start();
            threadMap.put(orderId + "_" + orderType, thread);
            threadMap.put(orderId1 + "_" + orderType, thread);
        }
    }
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -522,16 +522,16 @@
                map.put("orderId", orderPrivateCar1.getId());
                orders.add(map);
            }
            List<OrderTaxi> list1 = orderTaxiService.selectList(new EntityWrapper<OrderTaxi>().eq("type", 2).eq("crossCityOrderId", orderPrivateCar.getCrossCityOrderId()).eq("place", orderPrivateCar.getPlace()));
            for(OrderTaxi orderTaxi : list1){
                if(orderTaxi.getState() != 1){
                    return ResultUtil.error("订单已被司机接单,推单取消");
                }
                Map<String, Integer> map = new HashMap<>();
                map.put("orderType", 2);
                map.put("orderId", orderTaxi.getId());
                orders.add(map);
            }
//            List<OrderTaxi> list1 = orderTaxiService.selectList(new EntityWrapper<OrderTaxi>().eq("type", 2).eq("crossCityOrderId", orderPrivateCar.getCrossCityOrderId()).eq("place", orderPrivateCar.getPlace()));
//            for(OrderTaxi orderTaxi : list1){
//                if(orderTaxi.getState() != 1){
//                    return ResultUtil.error("订单已被司机接单,推单取消");
//                }
//                Map<String, Integer> map = new HashMap<>();
//                map.put("orderType", 2);
//                map.put("orderId", orderTaxi.getId());
//                orders.add(map);
//            }
            //开始重新推单
            orderCrossCityService.pushOrder(orders);
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TOpenCitySiteMapper.java
New file
@@ -0,0 +1,19 @@
package com.stylefeng.guns.modular.system.dao;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.stylefeng.guns.modular.system.model.TOpenCitySite;
import org.apache.ibatis.annotations.Mapper;
/**
 * <p>
 * 开通城市表 Mapper 接口
 * </p>
 *
 * @author 吕雪
 * @since 2020-06-02
 */
@Mapper
public interface TOpenCitySiteMapper extends BaseMapper<TOpenCitySite> {
}
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml
@@ -290,6 +290,9 @@
        <if test="orderType == 5">
            left join t_order_logistics b on (a.id = b.driverId)
        </if>
        <if test="orderType == 7">
            left join t_order_transfer b on (a.id = b.driverId)
        </if>
        left join t_car c on (b.carId = c.id)
        left join t_car_model d on (c.carModelId = d.id)
        left join t_car_brand f on (d.brandId = f.id)
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/kaipiao/KaiPiaoUtil.java
@@ -6,76 +6,88 @@
import com.stylefeng.guns.modular.system.kaipiao.entity.InvoiceDetails;
import com.stylefeng.guns.modular.system.kaipiao.entity.MaterialInfo;
import com.stylefeng.guns.modular.system.kaipiao.entity.ReturnData;
import com.stylefeng.guns.modular.system.kaipiao.util.Jisuan;
import java.util.ArrayList;
import java.util.List;
public class KaiPiaoUtil {
    public static void main(String[] args) {
        String money = "1.00";
        InvoiceData invoiceData  = new InvoiceData();
        //设置纳税人识别号
        invoiceData.setNsrsbh("");
        invoiceData.setNsrsbh("91320682MADJQBFY3G");
        InvoiceDetails invoiceDetails = new InvoiceDetails();
        //设置订单号
        invoiceDetails.setOrderNo("");
        invoiceDetails.setOrderNo("9d957b7229de4496ae487d1asdf15snwasc");
        //设置发票种类 01专票 02普票
        invoiceDetails.setFppzDm("02");
//        invoiceDetails.setFppzDm("02");
        //设置销售方税号
        invoiceDetails.setXsfnsrsbh("");
//        invoiceDetails.setXsfnsrsbh("");
        //设置销售方名称
        invoiceDetails.setXsfmc("");
//        invoiceDetails.setXsfmc("");
        //设置销售方地址
        invoiceDetails.setXsfdz("");
//        invoiceDetails.setXsfdz("");
        //设置销售方电话
        invoiceDetails.setXsflxdh("");
//        invoiceDetails.setXsflxdh("");
        //设置销售方开户行
        invoiceDetails.setXsfkhh("");
//        invoiceDetails.setXsfkhh("");
        //设置销售方银行账号
        invoiceDetails.setXsfyhzh("");
//        invoiceDetails.setXsfyhzh("");
        //设置购买方税号
        invoiceDetails.setGmfnsrsbh("");
        invoiceDetails.setGmfnsrsbh("91110105101781969R");
        //设置购买方名称
        invoiceDetails.setGmfmc("");
        invoiceDetails.setGmfmc("北京市红牛维他命饮料有限责任公司");
        //设置合计金额
        invoiceDetails.setHjje("");
        invoiceDetails.setHjje(Jisuan.jszjToJe(money));
        //设置合计税额
        invoiceDetails.setHjse("");
        invoiceDetails.setHjse(Jisuan.jianfa(money,Jisuan.jszjToJe(money)));
        //设置价税总计
        invoiceDetails.setJshj("");
        invoiceDetails.setJshj(money);
        //设置开票方纳税人识别号
        invoiceDetails.setKpfnsrsbh("");
//        invoiceDetails.setKpfnsrsbh("");
        //设置明细行数
        invoiceDetails.setSpsl("1");
//        invoiceDetails.setSpsl("1");
        //设置含税标识
        invoiceDetails.setHsbz("2");
//        invoiceDetails.setHsbz("2");
        //新建一个明细表
        List<MaterialInfo> materialInfos = new ArrayList<>();
        MaterialInfo materialInfo = new MaterialInfo();
//        materialInfo.setXmmc("运输服务*客运服务费");
//        materialInfo.setHwhyslwfwmc("运输服务*客运服务费");
        //设置含税单价
        materialInfo.setHsdj("1.00");
        //设置不含税金额
        materialInfo.setJe("0.97");
        //设置含税金额
        materialInfo.setHsje("1.00");
        //设置税率
        materialInfo.setSlv("0.03");
        //设置税额
        materialInfo.setSe(Jisuan.jianfa("1.00",Jisuan.jszjToJe("1.00")));
        materialInfos.add(materialInfo);
        invoiceDetails.setMxzbList(materialInfos);
        invoiceData.setData(invoiceDetails);
        System.err.println(JSONUtil.parse(invoiceData));
        //开票
//        String testData = "{\"nsrsbh\": \"91440400MA4WKU0K8A\", \"data\": {\"orderNo\": \"9d957b7229de4496ae487d1041415bbwasc\",\"fppzDm\": \"02\",\"tdyslxDm\":\"\",\"xsfnsrsbh\": \"91440400MA4WKU0K8A\",\"xsfmc\": \"广东欣档科技有限公司\",\"xsfdz\": \"珠海市高新区唐家湾镇大学路101号3栋102号\",\"xsflxdh\": \"13902872568\",\"xsfkhh\": \"中国建设银行股份有限公司珠海市分行营业部\",\"xsfyhzh\": \"22050164864700000347\",\"gmfnsrsbh\": \"91110105101781969R\",\"gmfmc\": \"北京市红牛维他命饮料有限责任公司\",\"gmfdz\": \"北京市朝阳区建国门外大街永安东里8号\",\"gmflxdh\": \"010-85288069\",\"gmfkhh\": \"中国工商银行北京商务中心区支行国贸大厦分理处\",\"gmfyhzh\": \"0200041609067021427\",\"kpr\": \"\",\"skr\": \"\",\"fhr\": \"\",\"hjje\": 69.29,\"hjse\": 9.01,\"jehj\": 0,\"jshj\": \"78.30\",\"kce\": 0,\"kpfnsrsbh\": \"91440400MA4WKU0K8A\",\"spsl\": 1,\"bz\": \"\",\"hsbz\": \"2\",\"sfzsgmfyhzh\": \"N\",\"sfzsxsfyhzh\": \"N\",\"mxzbList\": [{\"xh\": 1,\"fphxzDm\": \"0\",\"xmmc\": \"唯他可可椰子水/凤梨口味/330ML\",\"hwhyslwfwmc\": \"*软饮料*唯他可可椰子水/凤梨口味/330ML\",\"sphfwssflhbbm\": \"1030307020000000000\",\"spfwjc\": \"软饮料\",\"ggxh\": \"12瓶/箱\",\"dw\": \"箱\",\"spsl\": \"1\",\"dj\": 69.29,\"je\": 69.29,\"hsje\": 78.3,\"slv\": \"0.13\",\"se\": 9.01,\"kce\": \"\",\"hsdj\": 78.3,\"bhsdj\": 69.29,\"bhsje\": 69.29}]}}";
//        SptBlueInvOpenDemo blueInvOpenDemo = new SptBlueInvOpenDemo();
//        ReturnData returnData = blueInvOpenDemo.blueInvOpen(testData, "43b9ef0799534e298ca2b6b73a6cab48", "31s1m151s161");
//        System.out.println(returnData);
        String testData = JSONUtil.toJsonStr(invoiceData);
        SptBlueInvOpenDemo blueInvOpenDemo = new SptBlueInvOpenDemo();
        System.err.println(invoiceData);
        ReturnData returnData = blueInvOpenDemo.blueInvOpen(testData, "43b9ef0799534e298ca2b6b73a6cab48", "31s1m151s161");
        System.out.println(returnData);
        //拿文件地址
//        String testData = "{\n" +
//                "\t\"nsrsbh\": \"91440400MA4WKU0K8A\",\n" +
//                "\t\"fphm\": \"24442000000000372439\",\n" +
//                "\t\"fphm\": \"24442000000000391916\",\n" +
//                "\t\"kprq\": \"2024-05-29 11:52:25\"\n" +
//                "}";
//        SptBlueInvOpenDemo blueInvOpenDemo = new SptBlueInvOpenDemo();
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/kaipiao/entity/InvoiceDetails.java
@@ -8,15 +8,21 @@
    public  class InvoiceDetails {
        private String orderNo ="";
        private String fppzDm ="";
//        private String tdyslxDm ="";
        private String fppzDm ="02";
        private String tdyslxDm ="09";
//        private String cezslxDm ="";
        private String xsfnsrsbh = "";
        private String xsfmc ="";
        private String xsfdz ="";
        private String xsflxdh ="";
        private String xsfkhh = "";
        private String xsfyhzh = "";
        //销售方税号
        private String xsfnsrsbh = "91320682MADJQBFY3G";
        //销售方名称
        private String xsfmc ="江苏未来出行服务有限公司";
        //设置销售方地址
        private String xsfdz ="如皋市城南街道幸福河西路9号10幢三层3101室";
        //设置销售方电话
        private String xsflxdh ="13902872568";
        //设置销售方开户行
        private String xsfkhh = "中国银行如皋海阳中路支行";
        //销售方银行账号
        private String xsfyhzh = "466380715791";
        private String gmfnsrsbh = "";
        private String gmfmc = "";
//        private String gmfdz = "";
@@ -31,10 +37,10 @@
//        private String jehj = "";
        private String jshj = "";
//        private String kce = "";
        private String kpfnsrsbh = "";
        private String spsl = "";
        private String kpfnsrsbh = "91320682MADJQBFY3G";
        private String spsl = "1";
//        private String bz = "";
        private String hsbz = "";
        private String hsbz = "2";
//        private String sfwzzfp ;
//        private String zpFppzDm ;
        private String fpdm = "";
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/kaipiao/entity/MaterialInfo.java
@@ -5,16 +5,16 @@
@Data
public  class MaterialInfo {
        private String xh ="";
        private String fphxzDm = "";
        private String xmmc = "";
        private String spfwjc = "";
        private String sphfwssflhbbm = "";
        private String hwhyslwfwmc = "";
        private String ggxh = "";
        private String dw = "";
        private String spsl = "";
        private String dj = "";
        private String xh ="1";
        private String fphxzDm = "0";
        private String xmmc = "客运服务费";
        private String spfwjc = "运输服务";
        private String sphfwssflhbbm = "3010101020203000000";
        private String hwhyslwfwmc = "运输服务*客运服务费";
//        private String ggxh = "";
//        private String dw = "";
//        private String spsl = "";
//        private String dj = "";
        private String hsdj = "";
        private String je = "";
        private String hsje = "";
@@ -23,8 +23,8 @@
        private String kce = "";
        private String lslbz = "";
        private String xsyhzcbz = "";
        private String ssyhzclxDm = "";
        private String tdzsfsDm = "";
        private String zzstsgl = "";
        private String ssyhzclxDm = "01";
        private String tdzsfsDm = "05";
        private String zzstsgl = "01";
    }
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/kaipiao/util/Jisuan.java
New file
@@ -0,0 +1,22 @@
package com.stylefeng.guns.modular.system.kaipiao.util;
import java.math.BigDecimal;
public class Jisuan {
    public static String jszjToJe(String inputStr) {
        BigDecimal input = new BigDecimal(inputStr);
        BigDecimal divisor = new BigDecimal("1.03");
        BigDecimal result = input.divide(divisor, 2, BigDecimal.ROUND_HALF_DOWN);
       return result.toPlainString();  // 输出:0.97
    }
    public static String jianfa(String num1Str,String num2Str) {
        BigDecimal num1 = new BigDecimal(num1Str);
        BigDecimal num2 = new BigDecimal(num2Str);
        BigDecimal result = num1.subtract(num2);
        result = result.setScale(2, BigDecimal.ROUND_HALF_DOWN);  // 保留两位小数并向下取整
        return result.toPlainString();  // 输出:0.97
    }
}
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOpenCitySite.java
New file
@@ -0,0 +1,161 @@
package com.stylefeng.guns.modular.system.model;
import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.DataSource;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import io.swagger.models.auth.In;
import java.io.Serializable;
import java.util.Date;
import java.util.Objects;
/**
 * <p>
 * 开通城市表
 * </p>
 *
 * @author 吕雪
 * @since 2020-06-02
 */
@TableName("t_open_city_site")
public class TOpenCitySite extends Model<TOpenCitySite> {
    private static final long serialVersionUID = 1L;
    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        TOpenCitySite that = (TOpenCitySite) o;
        return Objects.equals(id, that.id) && Objects.equals(lon, that.lon) && Objects.equals(lat, that.lat) && Objects.equals(name, that.name) && Objects.equals(insertTime, that.insertTime) && Objects.equals(openCityId, that.openCityId);
    }
    @Override
    public int hashCode() {
        return Objects.hash(id, lon, lat, name, insertTime, openCityId);
    }
    public String getInsertTime1() {
        return insertTime1;
    }
    public void setInsertTime1(String insertTime1) {
        this.insertTime1 = insertTime1;
    }
    @Override
    public String toString() {
        return "TOpenCitySite{" +
                "id=" + id +
                ", lon='" + lon + '\'' +
                ", lat='" + lat + '\'' +
                ", name='" + name + '\'' +
                ", insertTime=" + insertTime +
                ", openCityId=" + openCityId +
                '}';
    }
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getLon() {
        return lon;
    }
    public void setLon(String lon) {
        this.lon = lon;
    }
    public String getLat() {
        return lat;
    }
    public void setLat(String lat) {
        this.lat = lat;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Date getInsertTime() {
        return insertTime;
    }
    public void setInsertTime(Date insertTime) {
        this.insertTime = insertTime;
    }
    public Integer getOpenCityId() {
        return openCityId;
    }
    public void setOpenCityId(Integer openCityId) {
        this.openCityId = openCityId;
    }
    /**
     * 主键id
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    /**
     * 经度
     */
    private String lon;
    /**
     * 纬度
     */
    private String lat;
    public Integer getFlag() {
        return flag;
    }
    public void setFlag(Integer flag) {
        this.flag = flag;
    }
    private Integer flag;
    /**
     * 类型 1机场2站点
     */
    private Integer type;
    public Integer getType() {
        return type;
    }
    public void setType(Integer type) {
        this.type = type;
    }
    /**
     * 站点名称
     */
    private String name;
    private Date insertTime;
    @TableField(exist = false)
    private String insertTime1;
    private Integer openCityId;
    @Override
    protected Serializable pkVal() {
        return this.id;
    }
}
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IServerCarModelService.java
@@ -20,6 +20,7 @@
     * @throws Exception
     */
    ResultUtil<List<ServerCarModelWarpper>> queryServerCarModel(String startLonLat, String endLonLat, Integer type) throws Exception;
    ResultUtil<List<ServerCarModelWarpper>> queryServerCarModel1(String startLonLat, String endLonLat) throws Exception;
    /**
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
@@ -83,7 +83,10 @@
     */
    @Override
    public List<Driver> queryIdleDriver(Integer type, Integer serverCarModelId, Double lon, Double lat, Double distance, Integer companyId) throws Exception {
        System.err.println("type"+type+"serverCarModelId"+serverCarModelId);
        List<Driver> drivers = driverMapper.queryIdleDriver_(type, serverCarModelId, companyId);
        System.err.println("当前获取的司机:"+drivers);
        List<Driver> list = new ArrayList<>();
        for(Driver driver : drivers){
            String value = redisUtil.getValue("DRIVER" + String.valueOf(driver.getId()));
@@ -96,6 +99,7 @@
                }
            }
        }
        System.err.println("符合距离的司机:"+list);
        return list;
    }
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/InvoiceServiceImpl.java
@@ -91,28 +91,8 @@
        invoice.setState(1);
        this.insert(invoice);
        // TODO: 2020/6/9 调用开发票第三方SDK
        String.valueOf(invoice.getMoney());
        for(int i = 0; i < jsonArray.size(); i++){
            JSONObject jsonObject = jsonArray.getJSONObject(i);
            Integer orderType = jsonObject.getIntValue("type");
            Integer orderId = jsonObject.getIntValue("id");
            switch (orderType){
                case 1://专车
                    break;
                case 2://出租车
                    OrderTaxi orderTaxi = orderTaxiService.selectById(orderId);
                    orderTaxi.setInvoiceId(invoice.getId());
                    orderTaxiService.updateById(orderTaxi);
                    break;
                case 3://跨城出行
                    break;
                case 4://同城小件物流
                    break;
                case 5://跨城小件物流
                    break;
            }
        }
    }
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OpenCityBusinessServiceImpl.java
@@ -49,7 +49,7 @@
                    baseWarpper.setId(2);
                    break;
                case 3:
                    baseWarpper.setName("直通车");
                    baseWarpper.setName("城际拼车");
                    baseWarpper.setId(3);
                    break;
                case 4:
@@ -65,7 +65,7 @@
                    baseWarpper.setId(6);
                    break;
                    case 7:
                    baseWarpper.setName("接送机");
                    baseWarpper.setName("接送机/站");
                    baseWarpper.setId(7);
                    break;
            }
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java
@@ -76,6 +76,30 @@
        return ResultUtil.success(price);
    }
    @Override
    public ResultUtil<List<ServerCarModelWarpper>> queryServerCarModel1(String startLonLat, String endLonLat) throws Exception {
        //查找与起点匹配的企业(经营范围)
        Map<String, String> geocode = gdMapGeocodingUtil.geocode(startLonLat.split(",")[0], startLonLat.split(",")[1]);
        Company query = companyCityService.query(geocode.get("districtCode"));
        if(null == query){
            return ResultUtil.error("起点暂无企业提供服务", new ArrayList<>());
        }
        Map<String, String> distance = gdMapElectricFenceUtil.getDistance(startLonLat, endLonLat, 1);
        if(null == distance){
            return ResultUtil.error("获取预估距离出错", new ArrayList<>());
        }
        String distance1 = distance.get("distance");//距离(米)
        double distance1_ = Double.valueOf(distance1).doubleValue();
        String duration = distance.get("duration");//时间(秒)
        long duration_ = Long.valueOf(duration).longValue();
        List<ServerCarModelWarpper> price = this.getPrice1(query.getId(), distance1_, duration_, 0, 7);
        if(price.size() == 0){
            return ResultUtil.error("未获取到可服务的车型", new ArrayList<>());
        }
        return ResultUtil.success(price);
    }
    /**
     * 获取业务类型对应的所有服务车型
@@ -245,4 +269,151 @@
        return data;
    }
    public List<ServerCarModelWarpper> getPrice1(Integer companyId, double distance, long duration, long wait, Integer type) throws Exception {
        List<Map<String, Object>> list = serverCarModelMapper.queryServerCarModel(type);
        List<ServerCarModelWarpper> data = new ArrayList<>();
        for(Map<String, Object> map : list){
            Map<String, Object> query1 = systemPriceMapper.query(companyId, type, Integer.valueOf(map.get("id").toString()));
            if(null == query1){//排除没有设置价格的车型
                continue;
            }
            //开始根据不同的方式计算金额
            double amount = 0;
            if(type == 7){//专车
                JSONObject jsonObject = JSON.parseObject(query1.get("content").toString());
                Double num1 = jsonObject.getDouble("num1");//起步价(元)
                Double num2 = jsonObject.getDouble("num2");//起步公里(公里)
                Double num3 = jsonObject.getDouble("num3");//起步时间(分钟)
                Double num4 = jsonObject.getDouble("num4");//里程费(元)
                Double num5 = jsonObject.getDouble("num5");//时长费(分钟)
                Double num6 = jsonObject.getDouble("num6");//等待费(分钟)
                Double num7 = jsonObject.getDouble("num7");//等待费(元)
                Double num8 = jsonObject.getDouble("num8");//远途费(公里)
                Double num9 = jsonObject.getDouble("num9");//远途费(公里)
                Double num10 = jsonObject.getDouble("num10");//远途费(元)
                Double num11 = jsonObject.getDouble("num11");//远途费(公里)
                Double num12 = jsonObject.getDouble("num12");//远途费(公里)
                Double num13 = jsonObject.getDouble("num13");//远途费(元)
                Double num14 = jsonObject.getDouble("num14");//远途费(公里)
                Double num15 = jsonObject.getDouble("num15");//远途费(元)
                String num16 = jsonObject.getString("num16");//夜间费(开始时间)
                Double num17 = jsonObject.getDouble("num17");//夜间费(元)
                Double num18 = jsonObject.getDouble("num18");//夜间费(元)
                Double num19 = jsonObject.getDouble("num19");//夜间费(元)
                Double num20 = jsonObject.getDouble("num20");//夜间费(元)
                Double num21 = jsonObject.getDouble("num21");//夜间费(元)
                Double num22 = jsonObject.getDouble("num22");//夜间费(元)
                String num23 = jsonObject.getString("num23");//高峰费(开始时间)
                String num24 = jsonObject.getString("num24");//高峰费(开始时间)
                Double num25 = jsonObject.getDouble("num25");//高峰费(元)
                Double num26 = jsonObject.getDouble("num26");//高峰费(元)
                Double num27 = jsonObject.getDouble("num27");//高峰费(元)
                Double num28 = jsonObject.getDouble("num28");//高峰费(元)
                Double num29 = jsonObject.getDouble("num29");//高峰费(元)
                Double num30 = jsonObject.getDouble("num30");//高峰费(元)
                Date date = new Date();
                double d = distance / 1000;//实际公里
                double t = duration / 60;//实际时间
                double d1 = (d - num2) < 0 ? 0 : d - num2;//超出起步里程的公里
                double t1 = (t - num3) < 0 ? 0 : t - num3;//超过起步分钟数的时间
                double yt1 = 0;//远途1段
                double yt2 = 0;//远途2段
                double yt3 = 0;//远途3段
                //夜间服务处理逻辑
                Calendar s = Calendar.getInstance();
                s.setTime(date);
                s.set(Calendar.HOUR_OF_DAY, Integer.valueOf(num16.split(" - ")[0].split(":")[0]));
                s.set(Calendar.MINUTE, Integer.valueOf(num16.split(" - ")[0].split(":")[1]));
                Calendar e = Calendar.getInstance();
                e.setTime(date);
                e.set(Calendar.HOUR_OF_DAY, Integer.valueOf(num16.split(" - ")[1].split(":")[0]));
                e.set(Calendar.MINUTE, Integer.valueOf(num16.split(" - ")[1].split(":")[1]));
                if(date.getTime() > s.getTimeInMillis() && date.getTime() < e.getTimeInMillis()){
                    if(d > num8.doubleValue()){
                        yt1 = num20 * (num9 - num8);
                    }
                    if(d > num11.doubleValue()){
                        yt2 = num21 * (num12 - num11);
                    }
                    if(d > num14.doubleValue()){
                        yt3 = num22 * (d - num14);
                    }
                    amount = num17 + (d1 * num18) + (t1 * num19) + (wait * num7) + yt1 + yt2 + yt3;
                    ServerCarModelWarpper serverCarModelWarpper = ServerCarModelWarpper.getServerCarModelWarpper(map);
                    serverCarModelWarpper.setAmount(new BigDecimal(amount).setScale(BigDecimal.ROUND_HALF_EVEN, 2).doubleValue());
                    serverCarModelWarpper.setMileage(d);
                    serverCarModelWarpper.setDuration(t);
                    data.add(serverCarModelWarpper);
                    continue;
                }
                //高峰时段处理逻辑
                Calendar s1 = Calendar.getInstance();
                s1.setTime(date);
                s1.set(Calendar.HOUR_OF_DAY, Integer.valueOf(num23.split(" - ")[0].split(":")[0]));
                s1.set(Calendar.MINUTE, Integer.valueOf(num23.split(" - ")[0].split(":")[1]));
                Calendar e1 = Calendar.getInstance();
                e1.setTime(date);
                e1.set(Calendar.HOUR_OF_DAY, Integer.valueOf(num23.split(" - ")[1].split(":")[0]));
                e1.set(Calendar.MINUTE, Integer.valueOf(num23.split(" - ")[1].split(":")[1]));
                Calendar s2 = Calendar.getInstance();
                s2.setTime(date);
                s2.set(Calendar.HOUR_OF_DAY, Integer.valueOf(num24.split(" - ")[0].split(":")[0]));
                s2.set(Calendar.MINUTE, Integer.valueOf(num24.split(" - ")[0].split(":")[1]));
                Calendar e2 = Calendar.getInstance();
                e2.setTime(date);
                e2.set(Calendar.HOUR_OF_DAY, Integer.valueOf(num24.split(" - ")[1].split(":")[0]));
                e2.set(Calendar.MINUTE, Integer.valueOf(num24.split(" - ")[1].split(":")[1]));
                if((date.getTime() > s1.getTimeInMillis() && date.getTime() < e1.getTimeInMillis()) || (date.getTime() > s2.getTimeInMillis() && date.getTime() < e2.getTimeInMillis())){
                    if(d > num8.doubleValue()){
                        yt1 = num28 * (num9 - num8);
                    }
                    if(d > num11.doubleValue()){
                        yt2 = num29 * (num12 - num11);
                    }
                    if(d > num14.doubleValue()){
                        yt3 = num30 * (d - num14);
                    }
                    amount = num25 + (d1 * num26) + (t1 * num27) + (wait * num7) + yt1 + yt2 + yt3;
                    ServerCarModelWarpper serverCarModelWarpper = ServerCarModelWarpper.getServerCarModelWarpper(map);
                    serverCarModelWarpper.setAmount(new BigDecimal(amount).setScale(BigDecimal.ROUND_HALF_EVEN, 2).doubleValue());
                    serverCarModelWarpper.setMileage(d);
                    serverCarModelWarpper.setDuration(t);
                    data.add(serverCarModelWarpper);
                    continue;
                }
                //其他时间段的计算
                if(d > num8.doubleValue()){
                    yt1 = num10 * (num9 - num8);
                }
                if(d > num11.doubleValue()){
                    yt2 = num13 * (num12 - num11);
                }
                if(d > num14.doubleValue()){
                    yt3 = num15 * (d - num14);
                }
                amount = num1 + (d1 * num4) + (t1 * num5) + (wait * num7) + yt1 + yt2 + yt3;
                ServerCarModelWarpper serverCarModelWarpper = ServerCarModelWarpper.getServerCarModelWarpper(map);
                serverCarModelWarpper.setAmount(new BigDecimal(amount).setScale(BigDecimal.ROUND_HALF_EVEN, 2).doubleValue());
                serverCarModelWarpper.setMileage(d);
                serverCarModelWarpper.setDuration(t);
                data.add(serverCarModelWarpper);
                continue;
            }
        }
        return data;
    }
}
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java
@@ -150,7 +150,7 @@
                templateCode = "c230a6b92504473c97c17741e1cc0b9d";//修改密码
                break;
        }
        aLiSendSms.sendSms(phone, "SMS_147415322", "{\"code\":\"" + authCode + "\"}");
        aLiSendSms.sendSms(phone, "SMS_467580138", "{\"code\":\"" + authCode + "\"}");
//        HuaWeiSMSUtil.sendSms("[\"" + authCode + "\"]", phone, "8822061324669", templateCode);
//        String sData = aLiSendSms.sendSms(phone, templateCode, "{\"code\":\"" + authCode + "\"}");
////        JSONObject jsonObject = JSON.parseObject(sData);
@@ -223,6 +223,7 @@
            userInfo.setConsumption(0D);
            userInfo.setBalance(0D);
            userInfo.setState(1);
            userInfo.setAvatar("http://bao-weiqing.oss-cn-hangzhou.aliyuncs.com/img/a9fb2816e36644b292515ffdd6ebb411.jpg");
            //用户所属企业
            if(null != registAreaCode){
@@ -276,7 +277,11 @@
    @Autowired
    private ISysCouponRecordService sysCouponRecordService;
    public void addnewCoupoun(String phone,UserInfo userInfo){
        if (redisUtil.getValue("counpon:" + phone)==null){
            return;
        }
        Integer acId = Integer.valueOf(redisUtil.getValue("counpon:" + phone));
        TActivityGeneralization tActivityGeneralization = activityGeneralizationService.selectById(acId);
        SysCouponRecord sysCouponRecord = sysCouponRecordService.selectById(tActivityGeneralization.getCouponId());
        Date date = new Date();
@@ -336,6 +341,7 @@
            userInfo.setConsumption(0D);
            userInfo.setBalance(0D);
            userInfo.setState(1);
            userInfo.setAvatar("http://bao-weiqing.oss-cn-hangzhou.aliyuncs.com/img/a9fb2816e36644b292515ffdd6ebb411.jpg");
            //用户所属企业
            if(null != registAreaCode){
@@ -1205,7 +1211,7 @@
     */
    public String getDefaultName(){
        int num = this.selectCount(new EntityWrapper<UserInfo>().ne("flag", 3)) + 1000001;
        return "FB" + String.valueOf(num).substring(1);
        return "WL" + String.valueOf(num).substring(1);
    }
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/OssUploadUtil.java
@@ -11,11 +11,11 @@
public class OssUploadUtil {
    //OSS图片访问域名
    public static String oss_domain = "https://fuban.oss-cn-chengdu.aliyuncs.com/";
    public static String accessKeyId = "LTAI5tLz3gjFn53JyYopYoSU";
    public static String accessKeySecret = "XR1Nk7gkgpM0bsxmXcHlpQYt9VAXCE";
    public static String bucketName="fuban";
    public static String endpoint = "oss-cn-chengdu.aliyuncs.com";
    public static String oss_domain = "http://bao-weiqing.oss-cn-hangzhou.aliyuncs.com/";
    public static String accessKeyId = "LTAI5tR4whv88Y5CUucCJEu6";
    public static String accessKeySecret = "2fObO6LE6U2OzrUfXw9YBlQWHohFvg";
    public static String bucketName="bao-weiqing";
    public static String endpoint = "oss-cn-hangzhou.aliyuncs.com";
    
    public static OSSClient ossClient = new OSSClient(endpoint, accessKeyId,accessKeySecret);
    
@@ -36,4 +36,22 @@
            }
        return fileName;
    }
    public static String ossUpload(MultipartFile file) throws IOException{
        //CommonsMultipartFile file = (CommonsMultipartFile)multipartFile;
        String fileName = "";
        if(file!=null && !"".equals(file.getOriginalFilename()) && file.getOriginalFilename()!=null){
            InputStream content = file.getInputStream();//获得指定文件的输入流
            ObjectMetadata meta = new ObjectMetadata();// 创建上传Object的Metadata
            meta.setContentLength(file.getSize());  // 必须设置ContentLength
            String originalFilename = file.getOriginalFilename();
            fileName =  UUID.randomUUID().toString().replaceAll("-","") + originalFilename.subSequence(originalFilename.lastIndexOf("."), originalFilename.length());
            ossClient.putObject(bucketName,"img/"+fileName,content,meta);// 上传Object.
            if(fileName != null && !"".equals(fileName)){
                System.out.println(fileName);
                fileName = oss_domain+"img/"+fileName;
            }
        }
        return fileName;
    }
}
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderWarpper.java
@@ -34,7 +34,7 @@
    @ApiModelProperty("货物类型(小件物流)")
    private String cargoType;
    @ApiModelProperty("用车时长")
    private Integer carTime;
    private Double carTime;
    @ApiModelProperty("车型")
    private String serverCarModel;
    @ApiModelProperty("订单金额")
@@ -163,11 +163,11 @@
        this.cargoType = cargoType;
    }
    public Integer getCarTime() {
    public Double getCarTime() {
        return carTime;
    }
    public void setCarTime(Integer carTime) {
    public void setCarTime(Double carTime) {
        this.carTime = carTime;
    }
@@ -237,7 +237,7 @@
                orderWarpper.setOrderType(null != map.get("orderType") ? Integer.valueOf(String.valueOf(map.get("orderType"))) : 0);
                orderWarpper.setDriverId(null != map.get("driverId") ? Integer.valueOf(String.valueOf(map.get("driverId"))) : 0);
                orderWarpper.setCargoType(null != map.get("cargoType") ? String.valueOf(map.get("cargoType")) : "");
                orderWarpper.setCarTime(null != map.get("carTime") ? Integer.valueOf(String.valueOf(map.get("carTime"))) : 0);
                orderWarpper.setCarTime(null != map.get("carTime") ? Double.parseDouble(String.valueOf(map.get("carTime"))) : 0);
                orderWarpper.setServerCarModel(null != map.get("serverCarModel") ? String.valueOf(map.get("serverCarModel")) : "");
                orderWarpper.setDifferenceMoney(null != map.get("differenceMoney") ? Double.valueOf(map.get("differenceMoney").toString()) : 0D);
                list.add(orderWarpper);
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/transfer/controller/OrderTransferController.java
@@ -1,11 +1,18 @@
package com.stylefeng.guns.modular.transfer.controller;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService;
import com.stylefeng.guns.modular.system.dao.TOpenCitySiteMapper;
import com.stylefeng.guns.modular.system.model.OpenCity;
import com.stylefeng.guns.modular.system.model.TOpenCitySite;
import com.stylefeng.guns.modular.system.service.IOpenCityService;
import com.stylefeng.guns.modular.system.service.IOrderService;
import com.stylefeng.guns.modular.system.service.IUserInfoService;
import com.stylefeng.guns.modular.system.util.AmapGeocoding;
import com.stylefeng.guns.modular.system.util.ResultUtil;
import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
import com.stylefeng.guns.modular.transfer.model.SiteDto;
import com.stylefeng.guns.modular.transfer.server.IOrderTransferService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@@ -18,7 +25,9 @@
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@Api
@RestController
@@ -153,15 +162,46 @@
        }
    }
    @Autowired
    private IOpenCityService openCityService;
    @Autowired
    private TOpenCitySiteMapper openCitySiteMapper;
    @ResponseBody
    @PostMapping("/get/site")
    @PostMapping("/api/get/site")
    @ApiOperation(value = "获取站点", tags = {"用户端-接送机"}, notes = "")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil site(double latitude, double longitude){
    public ResultUtil site(double latitude, double longitude) throws Exception {
        //获取当前城市名称
        String cityName = AmapGeocoding.getCityName(latitude, longitude);
        //查询ids
        List<OpenCity> cityName1 = openCityService.selectList(new EntityWrapper<OpenCity>().eq("cityName", cityName).ne("flag",3));
        List<Integer> ids = new ArrayList<>();
        for (OpenCity openCity : cityName1) {
            ids.add(openCity.getId());
        }
        if (ids.isEmpty()){
            return ResultUtil.error("当前城市暂无开通站点");
        }
        List<TOpenCitySite> tOpenCitySites = openCitySiteMapper.selectList(new EntityWrapper<TOpenCitySite>().in("openCityId",ids).ne("flag",3));
        List<TOpenCitySite> jichang = new ArrayList<>();
        List<TOpenCitySite> dongche = new ArrayList<>();
        for (TOpenCitySite tOpenCitySite : tOpenCitySites) {
            if (tOpenCitySite.getType()==1){
                jichang.add(tOpenCitySite);
            }
            if (tOpenCitySite.getType()==2){
                dongche.add(tOpenCitySite);
            }
        }
        SiteDto siteDto = new SiteDto();
        siteDto.setDongche(dongche);
        siteDto.setJichang(jichang);
        return ResultUtil.success(siteDto);
    }
}
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/transfer/dao/mapping/OrderTransferMapper.xml
@@ -354,10 +354,10 @@
        startAddress as startAddress,
        endAddress as endAddress,
        payMoney as payMoney,
        ('专车订单') as orderName,
        ('接送机订单') as orderName,
        if(invoiceId is null, 1, 2) as invoice,
        unix_timestamp(insertTime) as insertTime,
        (1) as orderType
        (7) as orderType
        from t_order_transfer where state in (8, 9)
        <if test="type == 1">
            and invoiceId is null and invoiceId in (select id from t_invoice where state != 2)
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/transfer/model/SiteDto.java
New file
@@ -0,0 +1,12 @@
package com.stylefeng.guns.modular.transfer.model;
import com.stylefeng.guns.modular.system.model.TOpenCitySite;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
@Data
public class SiteDto {
   private   List<TOpenCitySite> jichang ;
   private List<TOpenCitySite> dongche ;
}
UserNTTravel/guns-admin/src/main/resources/application.yml
@@ -54,6 +54,14 @@
  base-package: com.stylefeng.guns.modular
#spring:
#  datasource:
#    url: jdbc:mysql://127.0.0.1:10633/nttravel?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai
#    username: root
#    password: WeiLaiChuXing@2024!
#    db-name: guns #用来搜集数据库的所有表
#    filters: wall,mergeStat
spring:
  datasource:
    url: jdbc:mysql://192.168.110.34:3306/nttravel?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai
@@ -87,12 +95,12 @@
wx:
  grantType: authorization_code #填authorization_code
  appid: wx8a8b041a12743151 #应用唯一标识,在微信开放平台提交应用审核通过后获得
  appSecret: 9e49b99856528f934b51e5e280c7c803 #应用密钥AppSecret,在微信开放平台提交应用审核通过后获得
  appletsAppid: wxf6c3f324ed4fed7b #小程序APPid
  appletsAppSecret: e7af3de565406edb55e177eb8d66c525 #
  mchId: 1514387581 #微信支付分配的商户号
  key: mIyYnFMPd2j1ki1vzUMWhKr4Ve04Mse7 #key为商户平台设置的密钥key:
  appid: wxc89ecab90d24edd8 #应用唯一标识,在微信开放平台提交应用审核通过后获得
  appSecret: bca863174d22736a4a9758a67484947e #应用密钥AppSecret,在微信开放平台提交应用审核通过后获得
  appletsAppid: wxc89ecab90d24edd8 #小程序APPid
  appletsAppSecret: bca863174d22736a4a9758a67484947e #
  mchId: 1677823911 #微信支付分配的商户号
  key: CnqmrOgKqOiEyytQtoyxuaRgRGjcWFnD #key为商户平台设置的密钥key:
---
@@ -115,7 +123,7 @@
#支付回调地址
#正式环境
callbackPath: https://fuban.net/user
callbackPath: https://weilaigo.cn/user
#测试环境
#callbackPath: http://121.37.97.220:81/user
UserNTTravel/guns-admin/src/main/resources/redis.properties
@@ -6,6 +6,7 @@
# Redis·þÎñÆ÷Á¬½Ó¶Ë¿Ú
spring.redis.port=6379
# Redis·þÎñÆ÷Á¬½ÓÃÜÂ루ĬÈÏΪ¿Õ£©
#spring.redis.password=WeiLaiChuXing@2024!
spring.redis.password=123456
#spring.redis.password=
# Á¬½Ó³Ø×î´óÁ¬½ÓÊý£¨Ê¹ÓøºÖµ±íʾûÓÐÏÞÖÆ£©
UserNTTravel/guns-admin/target/classes/META-INF/spring-configuration-metadata.json
@@ -67,37 +67,7 @@
    },
    {
      "sourceType": "com.stylefeng.guns.core.config.properties.MutiDataSourceProperties",
      "name": "guns.muti-datasource.data-source-names",
      "type": "java.lang.String[]"
    },
    {
      "sourceType": "com.stylefeng.guns.core.config.properties.MutiDataSourceProperties",
      "name": "guns.muti-datasource.data-source-names",
      "type": "java.lang.String[]"
    },
    {
      "sourceType": "com.stylefeng.guns.core.config.properties.MutiDataSourceProperties",
      "name": "guns.muti-datasource.driver-class-name",
      "type": "java.lang.String"
    },
    {
      "sourceType": "com.stylefeng.guns.core.config.properties.MutiDataSourceProperties",
      "name": "guns.muti-datasource.driver-class-name",
      "type": "java.lang.String"
    },
    {
      "sourceType": "com.stylefeng.guns.core.config.properties.MutiDataSourceProperties",
      "name": "guns.muti-datasource.driver-class-name",
      "type": "java.lang.String"
    },
    {
      "sourceType": "com.stylefeng.guns.core.config.properties.MutiDataSourceProperties",
      "name": "guns.muti-datasource.password",
      "type": "java.lang.String"
    },
    {
      "sourceType": "com.stylefeng.guns.core.config.properties.MutiDataSourceProperties",
      "name": "guns.muti-datasource.password",
      "type": "java.lang.String"
    },
    {
@@ -112,37 +82,7 @@
    },
    {
      "sourceType": "com.stylefeng.guns.core.config.properties.MutiDataSourceProperties",
      "name": "guns.muti-datasource.url",
      "type": "java.lang.String"
    },
    {
      "sourceType": "com.stylefeng.guns.core.config.properties.MutiDataSourceProperties",
      "name": "guns.muti-datasource.url",
      "type": "java.lang.String"
    },
    {
      "sourceType": "com.stylefeng.guns.core.config.properties.MutiDataSourceProperties",
      "name": "guns.muti-datasource.username",
      "type": "java.lang.String"
    },
    {
      "sourceType": "com.stylefeng.guns.core.config.properties.MutiDataSourceProperties",
      "name": "guns.muti-datasource.username",
      "type": "java.lang.String"
    },
    {
      "sourceType": "com.stylefeng.guns.core.config.properties.MutiDataSourceProperties",
      "name": "guns.muti-datasource.username",
      "type": "java.lang.String"
    },
    {
      "sourceType": "com.stylefeng.guns.core.config.properties.MutiDataSourceProperties",
      "name": "guns.muti-datasource.validation-query",
      "type": "java.lang.String"
    },
    {
      "sourceType": "com.stylefeng.guns.core.config.properties.MutiDataSourceProperties",
      "name": "guns.muti-datasource.validation-query",
      "type": "java.lang.String"
    },
    {
UserNTTravel/guns-admin/target/classes/application.yml
@@ -54,6 +54,14 @@
  base-package: com.stylefeng.guns.modular
#spring:
#  datasource:
#    url: jdbc:mysql://127.0.0.1:10633/nttravel?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai
#    username: root
#    password: WeiLaiChuXing@2024!
#    db-name: guns #用来搜集数据库的所有表
#    filters: wall,mergeStat
spring:
  datasource:
    url: jdbc:mysql://192.168.110.34:3306/nttravel?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai
@@ -87,12 +95,12 @@
wx:
  grantType: authorization_code #填authorization_code
  appid: wx8a8b041a12743151 #应用唯一标识,在微信开放平台提交应用审核通过后获得
  appSecret: 9e49b99856528f934b51e5e280c7c803 #应用密钥AppSecret,在微信开放平台提交应用审核通过后获得
  appletsAppid: wxf6c3f324ed4fed7b #小程序APPid
  appletsAppSecret: e7af3de565406edb55e177eb8d66c525 #
  mchId: 1514387581 #微信支付分配的商户号
  key: mIyYnFMPd2j1ki1vzUMWhKr4Ve04Mse7 #key为商户平台设置的密钥key:
  appid: wxc89ecab90d24edd8 #应用唯一标识,在微信开放平台提交应用审核通过后获得
  appSecret: bca863174d22736a4a9758a67484947e #应用密钥AppSecret,在微信开放平台提交应用审核通过后获得
  appletsAppid: wxc89ecab90d24edd8 #小程序APPid
  appletsAppSecret: bca863174d22736a4a9758a67484947e #
  mchId: 1677823911 #微信支付分配的商户号
  key: CnqmrOgKqOiEyytQtoyxuaRgRGjcWFnD #key为商户平台设置的密钥key:
---
@@ -115,7 +123,7 @@
#支付回调地址
#正式环境
callbackPath: https://fuban.net/user
callbackPath: https://weilaigo.cn/user
#测试环境
#callbackPath: http://121.37.97.220:81/user
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml
@@ -290,6 +290,9 @@
        <if test="orderType == 5">
            left join t_order_logistics b on (a.id = b.driverId)
        </if>
        <if test="orderType == 7">
            left join t_order_transfer b on (a.id = b.driverId)
        </if>
        left join t_car c on (b.carId = c.id)
        left join t_car_model d on (c.carModelId = d.id)
        left join t_car_brand f on (d.brandId = f.id)
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/transfer/dao/mapping/OrderTransferMapper.xml
@@ -354,10 +354,10 @@
        startAddress as startAddress,
        endAddress as endAddress,
        payMoney as payMoney,
        ('专车订单') as orderName,
        ('接送机订单') as orderName,
        if(invoiceId is null, 1, 2) as invoice,
        unix_timestamp(insertTime) as insertTime,
        (1) as orderType
        (7) as orderType
        from t_order_transfer where state in (8, 9)
        <if test="type == 1">
            and invoiceId is null and invoiceId in (select id from t_invoice where state != 2)
UserNTTravel/guns-admin/target/classes/redis.properties
@@ -6,6 +6,7 @@
# Redis���������Ӷ˿�
spring.redis.port=6379
# Redis�������������루Ĭ��Ϊ�գ�
#spring.redis.password=WeiLaiChuXing@2024!
spring.redis.password=123456
#spring.redis.password=
# ���ӳ������������ʹ�ø�ֵ��ʾû�����ƣ�
UserNTTravel/guns-core/target/classes/META-INF/spring-configuration-metadata.json
@@ -11,86 +11,103 @@
  "properties": [
    {
      "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
      "defaultValue": "com.mysql.cj.jdbc.Driver",
      "name": "spring.datasource.driver-class-name",
      "type": "java.lang.String"
    },
    {
      "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
      "defaultValue": "stat",
      "name": "spring.datasource.filters",
      "type": "java.lang.String"
    },
    {
      "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
      "defaultValue": 2,
      "name": "spring.datasource.initial-size",
      "type": "java.lang.Integer"
    },
    {
      "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
      "defaultValue": 20,
      "name": "spring.datasource.max-active",
      "type": "java.lang.Integer"
    },
    {
      "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
      "defaultValue": 20,
      "name": "spring.datasource.max-pool-prepared-statement-per-connection-size",
      "type": "java.lang.Integer"
    },
    {
      "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
      "defaultValue": 60000,
      "name": "spring.datasource.max-wait",
      "type": "java.lang.Integer"
    },
    {
      "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
      "defaultValue": 300000,
      "name": "spring.datasource.min-evictable-idle-time-millis",
      "type": "java.lang.Integer"
    },
    {
      "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
      "defaultValue": 1,
      "name": "spring.datasource.min-idle",
      "type": "java.lang.Integer"
    },
    {
      "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
      "defaultValue": "root",
      "name": "spring.datasource.password",
      "type": "java.lang.String"
    },
    {
      "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
      "defaultValue": true,
      "name": "spring.datasource.pool-prepared-statements",
      "type": "java.lang.Boolean"
    },
    {
      "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
      "defaultValue": false,
      "name": "spring.datasource.test-on-borrow",
      "type": "java.lang.Boolean"
    },
    {
      "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
      "defaultValue": false,
      "name": "spring.datasource.test-on-return",
      "type": "java.lang.Boolean"
    },
    {
      "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
      "defaultValue": true,
      "name": "spring.datasource.test-while-idle",
      "type": "java.lang.Boolean"
    },
    {
      "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
      "defaultValue": 60000,
      "name": "spring.datasource.time-between-eviction-runs-millis",
      "type": "java.lang.Integer"
    },
    {
      "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
      "defaultValue": "jdbc:mysql:\/\/127.0.0.1:3306\/guns?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull",
      "name": "spring.datasource.url",
      "type": "java.lang.String"
    },
    {
      "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
      "defaultValue": "root",
      "name": "spring.datasource.username",
      "type": "java.lang.String"
    },
    {
      "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
      "defaultValue": "SELECT 'x'",
      "name": "spring.datasource.validation-query",
      "type": "java.lang.String"
    }