zhibing.pu
2024-08-27 8f39e870ca9519d8a8190c038d15a030149de98e
修改2.0 bug
34个文件已修改
410 ■■■■ 已修改文件
UserIGOTravel/guns-admin/pom.xml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/server/impl/OrderCharteredCarServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/AdvertisementController.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OpenCityController.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/PhoneController.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/ServerCarModelController.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/controller/OrderLogisticsController.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/IOrderLogisticsService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java 52 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/ServerCarModelMapper.xml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/ServerCarModel.java 50 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IAdvertisementService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ICompanyCityService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IDriverService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOpenCityBusinessService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOpenCityService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IPhoneService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IServerCarModelService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/AdvertisementServiceImpl.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CompanyCityServiceImpl.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OpenCityBusinessServiceImpl.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OpenCityServiceImpl.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/PhoneServiceImpl.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserCouponRecordServiceImpl.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/GoogleMapUtil.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/pom.xml
@@ -205,13 +205,19 @@
        <dependency>
            <groupId>com.google.maps</groupId>
            <artifactId>google-maps-services</artifactId>
            <version>2.0.0</version>
            <version>2.2.0</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <version>1.7.25</version>
        </dependency>
        <dependency>
            <groupId>com.google.appengine</groupId>
            <artifactId>appengine-api-1.0-sdk</artifactId>
            <version>2.0.29</version>
        </dependency>
        <dependency>
            <groupId>org.jsoup</groupId>
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/server/impl/OrderCharteredCarServiceImpl.java
@@ -64,7 +64,7 @@
                                        String contactPerson, String contactPhone, String placeLonLat, Integer uid, Integer language) throws Exception {
        OrderCharteredCar orderCharteredCar = new OrderCharteredCar();
        orderCharteredCar.setUserId(uid);
        Company query = companyCityService.query1(placeLonLat.split(",")[0], placeLonLat.split(",")[1]);
        Company query = companyCityService.query1(uid, placeLonLat.split(",")[0], placeLonLat.split(",")[1]);
        if(null == query){
            return ResultUtil.error(language == 1 ? "该地点暂无企业服务" : language == 2 ? "No service yet at this area" : "Pas encore de service dans cette zone");
        }
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/AdvertisementController.java
@@ -1,6 +1,7 @@
package com.stylefeng.guns.modular.api;
import com.stylefeng.guns.modular.system.service.IAdvertisementService;
import com.stylefeng.guns.modular.system.service.IUserInfoService;
import com.stylefeng.guns.modular.system.util.ResultUtil;
import com.stylefeng.guns.modular.system.warpper.AdvertisementWarpper;
import io.swagger.annotations.Api;
@@ -13,6 +14,7 @@
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
/**
@@ -25,6 +27,9 @@
    @Autowired
    private IAdvertisementService advertisementService;
    @Autowired
    private IUserInfoService userInfoService;
@@ -36,9 +41,10 @@
            @ApiImplicitParam(value = "当前定位纬度", name = "lat", required = true, dataType = "double"),
            @ApiImplicitParam(value = "当前定位经度", name = "lnt", required = true, dataType = "double")
    })
    public ResultUtil<List<AdvertisementWarpper>> queryAdvertisement(Double lat, Double lnt, Integer type){
    public ResultUtil<List<AdvertisementWarpper>> queryAdvertisement(Double lat, Double lnt, Integer type, HttpServletRequest request){
        try {
            List<AdvertisementWarpper> advertisementWarpper = advertisementService.queryAdvertisement(lat, lnt, type);
            Integer uid = userInfoService.getUserIdFormRedis(request);
            List<AdvertisementWarpper> advertisementWarpper = advertisementService.queryAdvertisement(uid, lat, lnt, type);
            return ResultUtil.success(advertisementWarpper);
        }catch (Exception e){
            e.printStackTrace();
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OpenCityController.java
@@ -86,9 +86,10 @@
            @ApiImplicitParam(value = "经度", name = "lnt", required = true, dataType = "double"),
            @ApiImplicitParam(value = "语言类型(1=简体中文,2=英语,3=法语)", name = "language", required = false, dataType = "int"),
    })
    public ResultUtil<List<BaseWarpper>> queryBusiness(Double lat, Double lnt, Integer language){
    public ResultUtil<List<BaseWarpper>> queryBusiness(Double lat, Double lnt, Integer language, HttpServletRequest request){
        try {
            List<BaseWarpper> list = openCityBusinessService.queryBusiness(lat, lnt, language);
            Integer uid = userInfoService.getUserIdFormRedis(request);
            List<BaseWarpper> list = openCityBusinessService.queryBusiness(uid, lat, lnt, language);
            return ResultUtil.success(list);
        }catch (Exception e){
            e.printStackTrace();
@@ -130,9 +131,10 @@
            @ApiImplicitParam(value = "纬度", name = "lat", required = true, dataType = "String"),
            @ApiImplicitParam(value = "经度", name = "lnt", required = true, dataType = "String")
    })
    public ResultUtil openCity(Double lat, Double lnt, Integer language){
    public ResultUtil openCity(Double lat, Double lnt, Integer language, HttpServletRequest request){
        try {
            City city = openCityService.openCity(lat, lnt, language);
            Integer uid = userInfoService.getUserIdFormRedis(request);
            City city = openCityService.openCity(uid, lat, lnt, language);
            if(null == city){
                return ResultUtil.error("");
            }
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
@@ -118,6 +118,14 @@
    
    @Resource
    private UserActivityDiscount1Mapper userActivityDiscount1Mapper;
    @Resource
    private RedisUtil redisUtil;
    /**
     * 获取正在进行中的订单
@@ -849,9 +857,10 @@
            @ApiImplicitParam(value = "终点经度", name = "elon", required = true, dataType = "double"),
            @ApiImplicitParam(value = "终点纬度", name = "elat", required = true, dataType = "double")
    })
    public ResultUtil<BaseWarpper> queryExpectedTime(Double slon, Double slat, Double elon, Double elat){
    public ResultUtil<BaseWarpper> queryExpectedTime(Double slon, Double slat, Double elon, Double elat, HttpServletRequest request){
        try {
            return orderService.queryExpectedTime(slon, slat, elon, elat);
            Integer uid = userInfoService.getUserIdFormRedis(request);
            return orderService.queryExpectedTime(uid, slon, slat, elon, elat);
        }catch (Exception e){
            e.printStackTrace();
            return ResultUtil.runErr();
@@ -1810,4 +1819,26 @@
            return ResultUtil.runErr();
        }
    }
    @ResponseBody
    @PostMapping("/api/order/getNewTripId")
    @ApiOperation(value = "获取google预定tripid【2.0】", tags = {"用户端-首页"}, notes = "")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil<String> getNewTripId(HttpServletRequest request){
        try {
            Integer uid = userInfoService.getUserIdFormRedis(request);
            if(null == uid){
                return ResultUtil.tokenErr();
            }
            String randomCode = UUIDUtil.getRandomCode();
            redisUtil.setStrValue("trip" + uid, randomCode);
            return ResultUtil.success(randomCode);
        }catch (Exception e){
            e.printStackTrace();
            return ResultUtil.runErr();
        }
    }
}
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/PhoneController.java
@@ -2,6 +2,7 @@
import com.stylefeng.guns.modular.system.model.Phone;
import com.stylefeng.guns.modular.system.service.IPhoneService;
import com.stylefeng.guns.modular.system.service.IUserInfoService;
import com.stylefeng.guns.modular.system.util.ResultUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@@ -13,6 +14,7 @@
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;
@@ -26,6 +28,13 @@
    @Autowired
    private IPhoneService phoneService;
    @Autowired
    private IUserInfoService userInfoService;
    /**
     * 获取系统所有电话
@@ -38,9 +47,10 @@
            @ApiImplicitParam(value = "定位经度", name = "lat", required = true, dataType = "double"),
            @ApiImplicitParam(value = "定位维度", name = "lnt", required = true, dataType = "double")
    })
    public ResultUtil queryPhones(Double lat, Double lnt){
    public ResultUtil queryPhones(Double lat, Double lnt, HttpServletRequest request){
        try {
            List<Phone> phones = phoneService.queryPhones(lat, lnt);
            Integer uid = userInfoService.getUserIdFormRedis(request);
            List<Phone> phones = phoneService.queryPhones(uid, lat, lnt);
            return ResultUtil.success(phones);
        }catch (Exception e){
            e.printStackTrace();
@@ -61,9 +71,10 @@
            @ApiImplicitParam(value = "定位维度", name = "lnt", required = true, dataType = "double"),
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil queryCustomerPhone(Double lat, Double lnt){
    public ResultUtil queryCustomerPhone(Double lat, Double lnt, HttpServletRequest request){
        try {
            Map<String, Object> map = phoneService.queryCustomerPhone(lat, lnt);
            Integer uid = userInfoService.getUserIdFormRedis(request);
            Map<String, Object> map = phoneService.queryCustomerPhone(uid, lat, lnt);
            return ResultUtil.success(map);
        }catch (Exception e){
            e.printStackTrace();
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/ServerCarModelController.java
@@ -2,6 +2,7 @@
import com.stylefeng.guns.modular.system.service.IServerCarModelService;
import com.stylefeng.guns.modular.system.service.IUserInfoService;
import com.stylefeng.guns.modular.system.util.ResultUtil;
import com.stylefeng.guns.modular.system.warpper.ServerCarModelWarpper;
import io.swagger.annotations.Api;
@@ -14,6 +15,7 @@
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;
@@ -25,6 +27,9 @@
    @Autowired
    private IServerCarModelService serverCarModelService;
    @Autowired
    private IUserInfoService userInfoService;
    /**
@@ -43,9 +48,10 @@
            @ApiImplicitParam(value = "语言类型(1=简体中文,2=英语,3=法语)", name = "language", required = false, dataType = "int"),
            @ApiImplicitParam(value = "业务类型(1=专车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城,6=包车)", name = "type", required = true, dataType = "int")
    })
    public ResultUtil<List<ServerCarModelWarpper>> queryServerCarModel(String startLonLat, String endLonLat, Integer type, Integer language){
    public ResultUtil<List<ServerCarModelWarpper>> queryServerCarModel(String startLonLat, String endLonLat, Integer type, Integer language, HttpServletRequest request){
        try {
            return serverCarModelService.queryServerCarModel(startLonLat, endLonLat, type, language);
            Integer uid = userInfoService.getUserIdFormRedis(request);
            return serverCarModelService.queryServerCarModel(uid, startLonLat, endLonLat, type, language);
        }catch (Exception e){
            e.printStackTrace();
            return ResultUtil.runErr();
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
@@ -1454,7 +1454,7 @@
        //定义用户所属公司
        OrderTaxi orderTaxi = new OrderTaxi();
        UserInfo userInfo1 = userInfoService.selectById(uid);
        Company query = companyCityService.query1(startLon, startLat);
        Company query = companyCityService.query1(uid, startLon, startLat);
        if(null == query){
            return ResultUtil.error("出发点暂未开通");
        }
@@ -1624,7 +1624,7 @@
                        if(orderType == 1){//专车
                            OrderPrivateCar orderPrivateCar = orderPrivateCarMapper.selectById(orderId);
                            OrderPrivateCarServiceImpl.orderIds.add(orderPrivateCar.getId());//添加记录,防止调用接口重复提醒无人接单
                            Company query = companyCityService.query1(String.valueOf(orderPrivateCar.getStartLon()), String.valueOf(orderPrivateCar.getStartLat()));//获取起点所属分公司
                            Company query = companyCityService.query1(orderPrivateCar.getUserId(), String.valueOf(orderPrivateCar.getStartLon()), String.valueOf(orderPrivateCar.getStartLat()));//获取起点所属分公司
                            List<PushOrder> querys = pushOrderService.querys(null, 1, query.getId());//获取需要推送的次数
                            for(int i = 1; i <= querys.size(); i++){
                                //订单被抢后的处理
@@ -1658,7 +1658,7 @@
                                //开始进行推送的处理
                                PushOrder pushOrder = pushOrderService.querys(i, 1, query.getId()).get(0);
                                //获取空闲司机
                                List<Driver> list = driverService.queryIdleDriver(1, orderPrivateCar.getServerCarModelId(), orderPrivateCar.getStartLon(), orderPrivateCar.getStartLat(), pushOrder.getPushDistance(), null);//所有附近空闲司机
                                List<Driver> list = driverService.queryIdleDriver(orderPrivateCar.getUserId(), 1, orderPrivateCar.getServerCarModelId(), orderPrivateCar.getStartLon(), orderPrivateCar.getStartLat(), pushOrder.getPushDistance(), null);//所有附近空闲司机
                                if(list.size() > 0){
                                    double driverProportion = pushOrder.getDriverProportion() / 100;//推送占比计算成小数
                                    int lastIndex = Double.valueOf(list.size() * driverProportion).intValue();//计算占比转成整数(下标截取)
@@ -1693,7 +1693,7 @@
                        if(orderType == 2){//出租车
                            OrderTaxi orderTaxi = orderTaxiMapper.selectById(orderId);
                            OrderTaxiServiceImpl.orderIds.add(orderTaxi.getId());//添加记录,防止调用接口重复提醒无人接单
                            Company query = companyCityService.query1(String.valueOf(orderTaxi.getStartLon()), String.valueOf(orderTaxi.getStartLat()));//获取起点所属分公司
                            Company query = companyCityService.query1(orderTaxi.getUserId(), String.valueOf(orderTaxi.getStartLon()), String.valueOf(orderTaxi.getStartLat()));//获取起点所属分公司
                            List<PushOrder> querys = pushOrderService.querys(null, 2, query.getId());//获取需要推送的次数
                            for(int i = 1; i <= querys.size(); i++){
                                //处理订单被抢
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/controller/OrderLogisticsController.java
@@ -119,9 +119,10 @@
            @ApiImplicitParam(value = "终点经纬度(103.23265,30.2312)", name = "endLonLat", required = true, paramType = "query", dataType = "string"),
            @ApiImplicitParam(value = "终点详细地址", name = "endAddress", required = true, paramType = "query", dataType = "string")
    })
    public ResultUtil queryPayMoney(Integer number, Integer type, String startLonLat, String endLonLat, String endAddress, Integer language){
    public ResultUtil queryPayMoney(Integer number, Integer type, String startLonLat, String endLonLat, String endAddress, Integer language, HttpServletRequest request){
        try {
            return orderLogisticsService.queryPayMoney(number, type, startLonLat, endLonLat, endAddress, language);
            Integer uid = userInfoService.getUserIdFormRedis(request);
            return orderLogisticsService.queryPayMoney(uid, number, type, startLonLat, endLonLat, endAddress, language);
        }catch (Exception e){
            e.printStackTrace();
            return ResultUtil.runErr();
@@ -317,8 +318,12 @@
            @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil<OrderTimeInfo> queryTimeInfo(Integer orderId, Integer language){
    public ResultUtil<OrderTimeInfo> queryTimeInfo(Integer orderId, Integer language, HttpServletRequest request){
        try {
            Integer uid = userInfoService.getUserIdFormRedis(request);
            if(null == uid) {
                return ResultUtil.tokenErr();
            }
            OrderLogistics orderLogistics = orderLogisticsService.selectById(orderId);
            OrderTimeInfo orderTimeInfo = new OrderTimeInfo();
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@@ -340,21 +345,22 @@
                usedTime = language == 1 ? h + "小时" + m + "分钟" : language == 2 ? h + "-hour" + m + "-minute(s)" : h + "-hour" + m + "-minute";
            }
            orderTimeInfo.setUsedTime(usedTime);
            String tripId = redisUtil.getValue("trip" + uid);
            if(null != orderLogistics.getEndServiceTime()){
                orderTimeInfo.setEndServiceTime(DateUtil.conversionFormat(language, sdf.format(orderLogistics.getEndServiceTime())));
            }else{
                DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderLogistics.getStartLat(), orderLogistics.getStartLon(), orderLogistics.getEndLat(), orderLogistics.getEndLon());
                DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderLogistics.getStartLat(), orderLogistics.getStartLon(), orderLogistics.getEndLat(), orderLogistics.getEndLon(), tripId);
                Long duration = distancematrix.getDuration();
                orderTimeInfo.setEndServiceTime(DateUtil.conversionFormat(language, sdf.format(new Date(System.currentTimeMillis() + duration * 1000))));
            }
            DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderLogistics.getStartLat(), orderLogistics.getStartLon(), orderLogistics.getEndLat(), orderLogistics.getEndLon());
            DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderLogistics.getStartLat(), orderLogistics.getStartLon(), orderLogistics.getEndLat(), orderLogistics.getEndLon(), tripId);
            Long distance = distancematrix.getDistance();
            orderTimeInfo.setAllMileage(Double.valueOf(distance / 1000));
            orderTimeInfo.setMileage(orderLogistics.getMileage() / 1000);
            String value = redisUtil.getValue("DRIVER" + orderLogistics.getDriverId());
            if(ToolUtil.isNotEmpty(value)){
                String[] split = value.split(",");
                distancematrix = GoogleMapUtil.getDistancematrix(Double.valueOf(split[1]), Double.valueOf(split[0]), orderLogistics.getEndLat(), orderLogistics.getEndLon());
                distancematrix = GoogleMapUtil.getDistancematrix(Double.valueOf(split[1]), Double.valueOf(split[0]), orderLogistics.getEndLat(), orderLogistics.getEndLon(), tripId);
                //分钟
                Long duration = distancematrix.getDuration() / 60;
                h = Double.valueOf(duration / 60).intValue();
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/IOrderLogisticsService.java
@@ -45,7 +45,7 @@
     * @return
     * @throws Exception
     */
    ResultUtil queryPayMoney(Integer number, Integer type, String startLonLat, String endLonLat, String endAddress, Integer language) throws Exception;
    ResultUtil queryPayMoney(Integer uid, Integer number, Integer type, String startLonLat, String endLonLat, String endAddress, Integer language) throws Exception;
    /**
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java
@@ -254,7 +254,7 @@
        String[] split = endLonLat.split(",");
        Double lng = Double.valueOf(split[0]);
        Double lat = Double.valueOf(split[1]);
        ResultUtil<Map<String, Object>> price = this.getPrice1(type, startLonLat.split(",")[0], startLonLat.split(",")[1], lng.toString(), lat.toString(), language);
        ResultUtil<Map<String, Object>> price = this.getPrice1(uid, type, startLonLat.split(",")[0], startLonLat.split(",")[1], lng.toString(), lat.toString(), language);
        if(price.getCode() != 200){
            return price;
        }
@@ -273,11 +273,11 @@
     * @return
     * @throws Exception
     */
    public ResultUtil queryPayMoney(Integer number, Integer type, String startLonLat, String endLonLat, String endAddress, Integer language) throws Exception{
    public ResultUtil queryPayMoney(Integer uid, Integer number, Integer type, String startLonLat, String endLonLat, String endAddress, Integer language) throws Exception{
        String[] split = endLonLat.split(",");
        Double lng = Double.valueOf(split[0]);
        Double lat = Double.valueOf(split[1]);
        ResultUtil<Map<String, Object>> price = this.getPrice1(type, startLonLat.split(",")[0], startLonLat.split(",")[1], lng.toString(), lat.toString(), language);
        ResultUtil<Map<String, Object>> price = this.getPrice1(uid, type, startLonLat.split(",")[0], startLonLat.split(",")[1], lng.toString(), lat.toString(), language);
        if(price.getCode() == 200 && type == 5){
            Map<String, Object> data = price.getData();
            Double ordinary = Double.valueOf(data.get("ordinary").toString());
@@ -327,7 +327,7 @@
        endAddress = endAddress.replaceAll("& #40;", "(");
        endAddress = endAddress.replaceAll("& #41;", ")");
        OrderLogistics orderLogistics = new OrderLogistics();
        Company query = companyCityService.query1(placementLon, placementLat);
        Company query = companyCityService.query1(uid, placementLon, placementLat);
        if(null == query){
            return ResultUtil.error(language == 1 ? "该地点暂无企业服务" : language == 2 ? "No service yet at this area" : "Pas encore de service dans cette zone");
        }
@@ -340,7 +340,8 @@
        orderLogistics.setRemark(remark);
        orderLogistics.setPlacementLon(Double.valueOf(placementLon));
        orderLogistics.setPlacementLat(Double.valueOf(placementLat));
        ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(Double.valueOf(placementLat), Double.valueOf(placementLon));
        String tripId = redisUtil.getValue("trip" + uid);
        ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(Double.valueOf(placementLat), Double.valueOf(placementLon), tripId);
        if(null == reverseGeocode){
            return ResultUtil.error(language == 1 ? "解析地址出错" : language == 2 ? "Address resolution error" : "Erreur de résolution d’adresse");
        }
@@ -363,7 +364,7 @@
        orderLogistics.setMileage(0D);
        orderLogistics.setIsReassign(1);
        orderLogistics.setReassignNotice(0);
        ResultUtil<Map<String, Object>> price = this.getPrice1(type, String.valueOf(startLon), String.valueOf(startLat), lng.toString(), lat.toString(), language);
        ResultUtil<Map<String, Object>> price = this.getPrice1(uid, type, String.valueOf(startLon), String.valueOf(startLat), lng.toString(), lat.toString(), language);
        if(price.getCode() != 200){
            return price;
        }
@@ -412,8 +413,8 @@
     * @return
     * @throws Exception
     */
    public ResultUtil<Map<String, Double>> getPrice(Integer type, String startLon, String startLat, String endLon, String endLat) throws Exception{
        Company query = companyCityService.query1(startLon, startLat);
    public ResultUtil<Map<String, Double>> getPrice(Integer uid, Integer type, String startLon, String startLat, String endLon, String endLat) throws Exception{
        Company query = companyCityService.query1(uid, startLon, startLat);
        if(null == query){
            return ResultUtil.error("预约取货点暂无企业服务");
        }
@@ -456,8 +457,8 @@
    public ResultUtil<Map<String, Object>> getPrice1(Integer type, String startLon, String startLat, String endLon, String endLat, Integer language) throws Exception{
        Company query = companyCityService.query1(startLon, startLat);
    public ResultUtil<Map<String, Object>> getPrice1(Integer uid, Integer type, String startLon, String startLat, String endLon, String endLat, Integer language) throws Exception{
        Company query = companyCityService.query1(uid, startLon, startLat);
        if(null == query){
            return ResultUtil.error(language == 1 ? "预约取货点暂无企业服务" : language == 2 ?
                    "No service yet at the reserved pickup point." : "Les points de ramassage prévus ne sont pas disponibles pour le moment.");
@@ -469,7 +470,8 @@
        Integer activityId = null;
        if(type == 4){//同城
            Map<String, Object> query1 = systemPriceMapper.query(query.getId(), type, null);
            DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(Double.valueOf(startLat), Double.valueOf(startLon), Double.valueOf(endLat), Double.valueOf(endLon));
            String tripId = redisUtil.getValue("trip" + uid);
            DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(Double.valueOf(startLat), Double.valueOf(startLon), Double.valueOf(endLat), Double.valueOf(endLon), tripId);
            if(null == distancematrix){
                return ResultUtil.error(language == 1 ? "计算距离出错" : language == 2 ? "Errors in computing distance" : "Erreurs dans le calcul de la distance");
            }
@@ -540,12 +542,12 @@
                    if(ToolUtil.isNotEmpty(vehicle)){
                        integers = JSON.parseArray(vehicle).toJavaList(Integer.class);
                    }
                    Company query = companyCityService.query1(String.valueOf(orderLogistics.getStartLon()), String.valueOf(orderLogistics.getStartLat()));//获取起点所属分公司
                    Company query = companyCityService.query1(orderLogistics.getUserId(), String.valueOf(orderLogistics.getStartLon()), String.valueOf(orderLogistics.getStartLat()));//获取起点所属分公司
                    List<PushOrder> querys = pushOrderService.querys(null, 1, query.getId());//用专车的推单配置
                    for(int i = 1; i <= querys.size(); i++){
                        PushOrder pushOrder = pushOrderService.querys(i, 1, query.getId()).get(0);
                        //获取空闲司机
                        List<Driver> list = driverService.queryIdleDriver(orderLogistics.getType(), orderLogistics.getServerCarModelId(), orderLogistics.getStartLon(), orderLogistics.getStartLat(), pushOrder.getPushDistance(), null);//所有附近空闲司机
                        List<Driver> list = driverService.queryIdleDriver(orderLogistics.getUserId(), orderLogistics.getType(), orderLogistics.getServerCarModelId(), orderLogistics.getStartLon(), orderLogistics.getStartLat(), pushOrder.getPushDistance(), null);//所有附近空闲司机
                        System.err.println("【" + orderLogistics.getId() + "】空闲司机:" + JSON.toJSONString(list));
                        if(list.size() > 0){
                            double driverProportion = pushOrder.getDriverProportion() / 100;//推送占比计算成小数
@@ -682,7 +684,8 @@
        orderLogistics.setUrgent(1);
        orderLogistics.setCargoNumber(1);
    
        ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(Double.valueOf(placementLat), Double.valueOf(placementLon));
        String tripId = redisUtil.getValue("trip" + uid);
        ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(Double.valueOf(placementLat), Double.valueOf(placementLon), tripId);
        orderLogistics.setPlacementAddress(reverseGeocode.getAddress());
        orderLogistics.setStartLon(Double.valueOf(startLon));
        orderLogistics.setStartLat(Double.valueOf(startLat));
@@ -737,7 +740,7 @@
            String value = redisUtil.getValue("DRIVER" + driver.getId());
            if(ToolUtil.isNotEmpty(value)) {
                String[] split = value.split(",");
                DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderLogistics.getStartLat(), orderLogistics.getStartLon(), Double.valueOf(split[1]), Double.valueOf(split[0]));
                DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderLogistics.getStartLat(), orderLogistics.getStartLon(), Double.valueOf(split[1]), Double.valueOf(split[0]), tripId);
                //超时时间
                long timeOut = System.currentTimeMillis() + (distancematrix.getDuration() * 1000);
                orderLogistics.setEstimateArriveTime(new Date(timeOut));
@@ -749,8 +752,8 @@
    
        orderLogistics.setIsReassign(1);
        orderLogistics.setIsDelete(1);
        orderLogistics.setTripId(UUIDUtil.getRandomCode());
        DistancematrixVo distancematrix1 = GoogleMapUtil.getDistancematrix(orderLogistics.getStartLat(), orderLogistics.getStartLon(), orderLogistics.getEndLat(), orderLogistics.getEndLon());
        orderLogistics.setTripId(tripId);
        DistancematrixVo distancematrix1 = GoogleMapUtil.getDistancematrix(orderLogistics.getStartLat(), orderLogistics.getStartLon(), orderLogistics.getEndLat(), orderLogistics.getEndLon(), tripId);
        Long distance1 = distancematrix1.getDistance();
        orderLogistics.setEstimatedMileage(new BigDecimal(distance1).divide(new BigDecimal(1000)).setScale(2, RoundingMode.HALF_EVEN).doubleValue());
        this.insert(orderLogistics);
@@ -838,14 +841,14 @@
    
        // TODO: 2021/5/11 修改,根据后台设定的派单范围查询范围内有无司机,将单子指派给距离最近的司机(距离相同随机取),范围内没有司机再进行推单流程
        if(orderLogistics.getState() == 1){
            Company query = companyCityService.query1(orderLogistics.getStartLon().toString(), orderLogistics.getStartLat().toString());
            Company query = companyCityService.query1(uid, orderLogistics.getStartLon().toString(), orderLogistics.getStartLat().toString());
            if(null == query){
                return ResultUtil.error(language == 1 ? "起点暂未企业提供服务" : language == 2 ? "Starting point no enterprise to provide services" : "Point de départ pas encore disponible pour les entreprises");
            }
            AssignOrder assignOrder = assignOrderService.selectOne(new EntityWrapper<AssignOrder>().eq("companyId", query.getId()).eq("type", 1));
            if(null != assignOrder && assignOrder.getPeople() > 0){//配置了指派规则才处理
                //获取空闲司机
                List<Driver> drivers = driverService.queryIdleDriver(4, orderLogistics.getServerCarModelId(), orderLogistics.getStartLon(), orderLogistics.getStartLat(), assignOrder.getDistance(), null);//获取范围内空闲司机
                List<Driver> drivers = driverService.queryIdleDriver(uid, 4, orderLogistics.getServerCarModelId(), orderLogistics.getStartLon(), orderLogistics.getStartLat(), assignOrder.getDistance(), null);//获取范围内空闲司机
                if(drivers.size() > 0){//有司机,直接指派给司机
                    Driver dr = null;
                    if(drivers.size() > 1){
@@ -858,7 +861,7 @@
                                String value = redisUtil.getValue("DRIVER" + drivers.get(j).getId());
                                if(null != value){
                                    String[] split = value.split(",");
                                    DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderLogistics.getStartLat(), orderLogistics.getStartLon(), Double.valueOf(split[1]), Double.valueOf(split[0]));
                                    DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderLogistics.getStartLat(), orderLogistics.getStartLon(), Double.valueOf(split[1]), Double.valueOf(split[0]), tripId);
                                    Long distance = distancematrix.getDistance();
                                    if((0 == m && null == driver) || (distance < m)){
                                        driver = drivers.get(j);
@@ -877,7 +880,7 @@
                            String value = redisUtil.getValue("DRIVER" + driver.getId());
                            if(null != value){
                                String[] split = value.split(",");
                                DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderLogistics.getStartLat(), orderLogistics.getStartLon(), Double.valueOf(split[1]), Double.valueOf(split[0]));
                                DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderLogistics.getStartLat(), orderLogistics.getStartLon(), Double.valueOf(split[1]), Double.valueOf(split[0]), tripId);
                                Long d = distancematrix.getDistance();
                                if((0 == m && null == dr) || (d.intValue() < m.intValue())){
                                    dr = driver;
@@ -3828,13 +3831,14 @@
                }
            }
        }
        String tripId = redisUtil.getValue("trip" + uid);
        String lnt = "0";
        String lat = "0";
        if(ToolUtil.isNotEmpty(value)){
            lnt = value.split(",")[0];
            lat = value.split(",")[1];
            DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderLogistics.getStartLat(), orderLogistics.getStartLon(), Double.valueOf(lat), Double.valueOf(lnt));
            DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderLogistics.getStartLat(), orderLogistics.getStartLon(), Double.valueOf(lat), Double.valueOf(lnt), tripId);
            
            if(null == distancematrix){
                System.err.println("查询距离出错了");
@@ -3862,7 +3866,7 @@
            orderServerWarpper.setLaveTime("0");
        }
        if(orderLogistics.getState() == 5 || orderLogistics.getState() == 6){//服务中
            DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(Double.valueOf(lat), Double.valueOf(lnt), orderLogistics.getEndLat(), orderLogistics.getEndLon());
            DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(Double.valueOf(lat), Double.valueOf(lnt), orderLogistics.getEndLat(), orderLogistics.getEndLon(), tripId);
            if(null == distancematrix){
                System.err.println("查询距离出错了");
            }else if(distancematrix.getDistance() == 0){
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -264,7 +264,8 @@
            baseWarpper.setId(orderPrivateCars.get(0).getId());
            return ResultUtil.success(baseWarpper);
        }
        String tripId = redisUtil.getValue("trip" + uid);
        startAddress = startAddress.replaceAll("& #40;", "(");
        startAddress = startAddress.replaceAll("& #41;", ")");
        endAddress = endAddress.replaceAll("& #40;", "(");
@@ -281,7 +282,7 @@
        orderPrivateCar.setPlacementLon(Double.valueOf(placementLon));
        orderPrivateCar.setPlacementLat(Double.valueOf(placementLat));
        ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(Double.valueOf(placementLat), Double.valueOf(placementLon));
        ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(Double.valueOf(placementLat), Double.valueOf(placementLon), tripId);
        orderPrivateCar.setPlacementAddress(reverseGeocode.getAddress());
        orderPrivateCar.setStartLon(Double.valueOf(startLon));
        orderPrivateCar.setStartLat(Double.valueOf(startLat));
@@ -346,7 +347,7 @@
                String value = redisUtil.getValue("DRIVER" + driver.getId());
                if(ToolUtil.isNotEmpty(value)) {
                    String[] split = value.split(",");
                    DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderPrivateCar.getStartLat(), orderPrivateCar.getStartLon(), Double.valueOf(split[1]), Double.valueOf(split[0]));
                    DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderPrivateCar.getStartLat(), orderPrivateCar.getStartLon(), Double.valueOf(split[1]), Double.valueOf(split[0]), tripId);
                    //超时时间
                    long timeOut = System.currentTimeMillis() + (distancematrix.getDuration() * 1000);
                    orderPrivateCar.setEstimateArriveTime(new Date(timeOut));
@@ -359,8 +360,8 @@
        orderPrivateCar.setIsReassign(1);
        orderPrivateCar.setIsDelete(1);
        orderPrivateCar.setTripId(UUIDUtil.getRandomCode());
        DistancematrixVo distancematrix1 = GoogleMapUtil.getDistancematrix(orderPrivateCar.getStartLat(), orderPrivateCar.getStartLon(), orderPrivateCar.getEndLat(), orderPrivateCar.getEndLon());
        orderPrivateCar.setTripId(tripId);
        DistancematrixVo distancematrix1 = GoogleMapUtil.getDistancematrix(orderPrivateCar.getStartLat(), orderPrivateCar.getStartLon(), orderPrivateCar.getEndLat(), orderPrivateCar.getEndLon(), tripId);
        Long distance1 = distancematrix1.getDistance();
        orderPrivateCar.setEstimatedMileage(new BigDecimal(distance1).divide(new BigDecimal(1000)).setScale(2, RoundingMode.HALF_EVEN).doubleValue());
        this.insert(orderPrivateCar);
@@ -449,14 +450,14 @@
        // TODO: 2021/5/11 修改,根据后台设定的派单范围查询范围内有无司机,将单子指派给距离最近的司机(距离相同随机取),范围内没有司机再进行推单流程
        if(orderPrivateCar.getState() == 1){
            Company query = companyCityService.query1(orderPrivateCar.getStartLon().toString(), orderPrivateCar.getStartLat().toString());
            Company query = companyCityService.query1(uid, orderPrivateCar.getStartLon().toString(), orderPrivateCar.getStartLat().toString());
            if(null == query){
                return ResultUtil.error(language == 1 ? "起点暂未企业提供服务" : language == 2 ? "Starting point no enterprise to provide services" : "Point de départ pas encore disponible pour les entreprises");
            }
            AssignOrder assignOrder = assignOrderService.selectOne(new EntityWrapper<AssignOrder>().eq("companyId", query.getId()).eq("type", 1));
            if(null != assignOrder && assignOrder.getPeople() > 0){//配置了指派规则才处理
                //获取空闲司机
                List<Driver> drivers = driverService.queryIdleDriver(1, orderPrivateCar.getServerCarModelId(), orderPrivateCar.getStartLon(), orderPrivateCar.getStartLat(), assignOrder.getDistance(), null);//获取范围内空闲司机
                List<Driver> drivers = driverService.queryIdleDriver(orderPrivateCar.getUserId(), 1, orderPrivateCar.getServerCarModelId(), orderPrivateCar.getStartLon(), orderPrivateCar.getStartLat(), assignOrder.getDistance(), null);//获取范围内空闲司机
                if(drivers.size() > 0){//有司机,直接指派给司机
                    Driver dr = null;
                    if(drivers.size() > 1){
@@ -469,7 +470,7 @@
                                String value = redisUtil.getValue("DRIVER" + drivers.get(j).getId());
                                if(null != value){
                                    String[] split = value.split(",");
                                    DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderPrivateCar.getStartLat(), orderPrivateCar.getStartLon(), Double.valueOf(split[1]), Double.valueOf(split[0]));
                                    DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderPrivateCar.getStartLat(), orderPrivateCar.getStartLon(), Double.valueOf(split[1]), Double.valueOf(split[0]), tripId);
                                    Long distance = distancematrix.getDistance();
                                    if((0 == m && null == driver) || (distance < m)){
                                        driver = drivers.get(j);
@@ -488,7 +489,7 @@
                            String value = redisUtil.getValue("DRIVER" + driver.getId());
                            if(null != value){
                                String[] split = value.split(",");
                                DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderPrivateCar.getStartLat(), orderPrivateCar.getStartLon(), Double.valueOf(split[1]), Double.valueOf(split[0]));
                                DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderPrivateCar.getStartLat(), orderPrivateCar.getStartLon(), Double.valueOf(split[1]), Double.valueOf(split[0]), tripId);
                                Long d = distancematrix.getDistance();
                                if((0 == m && null == dr) || (d.intValue() < m.intValue())){
                                    dr = driver;
@@ -1016,12 +1017,12 @@
                    if(ToolUtil.isNotEmpty(vehicle)){
                        integers = JSON.parseArray(vehicle).toJavaList(Integer.class);
                    }
                    Company query = companyCityService.query1(String.valueOf(orderPrivateCar.getStartLon()), String.valueOf(orderPrivateCar.getStartLat()));//获取起点所属分公司
                    Company query = companyCityService.query1(orderPrivateCar.getUserId(), String.valueOf(orderPrivateCar.getStartLon()), String.valueOf(orderPrivateCar.getStartLat()));//获取起点所属分公司
                    List<PushOrder> querys = pushOrderService.querys(null, 1, query.getId());//获取需要推送的次数
                    for(int i = 1; i <= querys.size(); i++){
                        PushOrder pushOrder = pushOrderService.querys(i, 1, query.getId()).get(0);
                        //获取空闲司机
                        List<Driver> list = driverService.queryIdleDriver(1, orderPrivateCar.getServerCarModelId(), orderPrivateCar.getStartLon(), orderPrivateCar.getStartLat(), pushOrder.getPushDistance(), null);//所有附近空闲司机
                        List<Driver> list = driverService.queryIdleDriver(orderPrivateCar.getUserId(), 1, orderPrivateCar.getServerCarModelId(), orderPrivateCar.getStartLon(), orderPrivateCar.getStartLat(), pushOrder.getPushDistance(), null);//所有附近空闲司机
                        System.err.println("【" + orderPrivateCar.getId() + "】空闲司机:" + JSON.toJSONString(list));
                        if(list.size() > 0){
                            double driverProportion = pushOrder.getDriverProportion() / 100;//推送占比计算成小数
@@ -3270,10 +3271,11 @@
        String lnt = "0";
        String lat = "0";
        String tripId = redisUtil.getValue("trip" + uid);
        if(ToolUtil.isNotEmpty(value)){
            lnt = value.split(",")[0];
            lat = value.split(",")[1];
            DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderPrivateCar.getStartLat(), orderPrivateCar.getStartLon(), Double.valueOf(lat), Double.valueOf(lnt));
            DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderPrivateCar.getStartLat(), orderPrivateCar.getStartLon(), Double.valueOf(lat), Double.valueOf(lnt), tripId);
            if(null == distancematrix){
                System.err.println("查询距离出错了");
@@ -3301,7 +3303,7 @@
            orderServerWarpper.setLaveTime("0");
        }
        if(orderPrivateCar.getState() == 5 || orderPrivateCar.getState() == 6){//服务中
            DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(Double.valueOf(lat), Double.valueOf(lnt), orderPrivateCar.getEndLat(), orderPrivateCar.getEndLon());
            DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(Double.valueOf(lat), Double.valueOf(lnt), orderPrivateCar.getEndLat(), orderPrivateCar.getEndLon(), tripId);
            if(null == distancematrix){
                System.err.println("查询距离出错了");
            }else if(distancematrix.getDistance() == 0){
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/ServerCarModelMapper.xml
@@ -6,7 +6,9 @@
    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.ServerCarModel">
        <id column="id" property="id"/>
        <result column="type" property="type"/>
        <result column="name" property="name"/>
        <result column="chineseName" property="chineseName"/>
        <result column="englishName" property="englishName"/>
        <result column="frenchName" property="frenchName"/>
        <result column="img" property="img"/>
        <result column="price" property="price"/>
        <result column="state" property="state"/>
@@ -18,7 +20,9 @@
    <select id="queryServerCarModel" resultType="map">
        select
        id as id,
        `name` as `name`,
        chineseName,
        englishName,
        frenchName,
        img as img,
        price as price
        from t_server_carmodel where state = 1 and `type` = #{type}
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/ServerCarModel.java
@@ -26,8 +26,18 @@
    /**
     * 车型名称
     */
    @TableField("name")
    private String name;
    @TableField("chineseName")
    private String chineseName;
    /**
     * 车型名称
     */
    @TableField("englishName")
    private String englishName;
    /**
     * 车型名称
     */
    @TableField("frenchName")
    private String frenchName;
    /**
     * 车型照片
     */
@@ -64,15 +74,31 @@
    public void setType(Integer type) {
        this.type = type;
    }
    public String getName() {
        return name;
    public String getChineseName() {
        return chineseName;
    }
    public void setName(String name) {
        this.name = name;
    public void setChineseName(String chineseName) {
        this.chineseName = chineseName;
    }
    public String getEnglishName() {
        return englishName;
    }
    public void setEnglishName(String englishName) {
        this.englishName = englishName;
    }
    public String getFrenchName() {
        return frenchName;
    }
    public void setFrenchName(String frenchName) {
        this.frenchName = frenchName;
    }
    public String getImg() {
        return img;
    }
@@ -104,13 +130,15 @@
    public void setPrice(String price) {
        this.price = price;
    }
    @Override
    public String toString() {
        return "ServerCarModel{" +
                "id=" + id +
                ", type=" + type +
                ", name='" + name + '\'' +
                ", chineseName='" + chineseName + '\'' +
                ", englishName='" + englishName + '\'' +
                ", frenchName='" + frenchName + '\'' +
                ", img='" + img + '\'' +
                ", price='" + price + '\'' +
                ", state=" + state +
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IAdvertisementService.java
@@ -15,5 +15,5 @@
     * @return
     * @throws Exception
     */
    List<AdvertisementWarpper> queryAdvertisement(Double lat, Double lnt, Integer type) throws Exception;
    List<AdvertisementWarpper> queryAdvertisement(Integer uid, Double lat, Double lnt, Integer type) throws Exception;
}
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ICompanyCityService.java
@@ -9,7 +9,7 @@
    Company query1(String lon, String lat) throws Exception;
    Company query1(Integer uid, String lon, String lat) throws Exception;
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IDriverService.java
@@ -32,7 +32,7 @@
     * @return
     * @throws Exception
     */
    List<Driver> queryIdleDriver(Integer type, Integer serverCarModelId, Double lon, Double lat, Double distance, Integer companyId) throws Exception;
    List<Driver> queryIdleDriver(Integer uid, Integer type, Integer serverCarModelId, Double lon, Double lat, Double distance, Integer companyId) throws Exception;
    /**
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOpenCityBusinessService.java
@@ -14,7 +14,7 @@
     * @return
     * @throws Exception
     */
    List<BaseWarpper> queryBusiness(Double lat, Double lnt, Integer language) throws Exception;
    List<BaseWarpper> queryBusiness(Integer uid, Double lat, Double lnt, Integer language) throws Exception;
    /**
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOpenCityService.java
@@ -23,5 +23,5 @@
     * @return
     * @throws Exception
     */
    City openCity(Double lat, Double lnt, Integer language) throws Exception;
    City openCity(Integer uid, Double lat, Double lnt, Integer language) throws Exception;
}
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderService.java
@@ -17,7 +17,7 @@
     * @return
     * @throws Exception
     */
    ResultUtil<BaseWarpper> queryExpectedTime(Double slon, Double slat, Double elon, Double elat) throws Exception;
    ResultUtil<BaseWarpper> queryExpectedTime(Integer uid, Double slon, Double slat, Double elon, Double elat) throws Exception;
    /**
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IPhoneService.java
@@ -13,7 +13,7 @@
     * @return
     * @throws Exception
     */
    List<Phone> queryPhones(Double lat, Double lnt) throws Exception;
    List<Phone> queryPhones(Integer uid, Double lat, Double lnt) throws Exception;
    /**
@@ -21,5 +21,5 @@
     * @return
     * @throws Exception
     */
    Map<String, Object> queryCustomerPhone(Double lat, Double lnt) throws Exception;
    Map<String, Object> queryCustomerPhone(Integer uid, Double lat, Double lnt) throws Exception;
}
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IServerCarModelService.java
@@ -19,7 +19,7 @@
     * @return
     * @throws Exception
     */
    ResultUtil<List<ServerCarModelWarpper>> queryServerCarModel(String startLonLat, String endLonLat, Integer type, Integer language) throws Exception;
    ResultUtil<List<ServerCarModelWarpper>> queryServerCarModel(Integer uid, String startLonLat, String endLonLat, Integer type, Integer language) throws Exception;
    /**
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/AdvertisementServiceImpl.java
@@ -7,6 +7,7 @@
import com.stylefeng.guns.modular.system.util.GoogleMap.AddressComponentsVo;
import com.stylefeng.guns.modular.system.util.GoogleMap.GoogleMapUtil;
import com.stylefeng.guns.modular.system.util.GoogleMap.ReverseGeocodeVo;
import com.stylefeng.guns.modular.system.util.RedisUtil;
import com.stylefeng.guns.modular.system.warpper.AdvertisementWarpper;
import org.springframework.stereotype.Service;
@@ -20,6 +21,10 @@
    @Resource
    private AdvertisementMapper advertisementMapper;
    @Resource
    private RedisUtil redisUtil;
    /**
@@ -29,8 +34,9 @@
     * @throws Exception
     */
    @Override
    public List<AdvertisementWarpper> queryAdvertisement(Double lat, Double lnt, Integer type) throws Exception {
        ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(lat, lnt);
    public List<AdvertisementWarpper> queryAdvertisement(Integer uid, Double lat, Double lnt, Integer type) throws Exception {
        String tripId = redisUtil.getValue("trip" + uid);
        ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(lat, lnt, tripId);
        if(null == reverseGeocode){
            return new ArrayList<>();
        }
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CompanyCityServiceImpl.java
@@ -13,6 +13,7 @@
import com.stylefeng.guns.modular.system.util.GoogleMap.AddressComponentsVo;
import com.stylefeng.guns.modular.system.util.GoogleMap.GoogleMapUtil;
import com.stylefeng.guns.modular.system.util.GoogleMap.ReverseGeocodeVo;
import com.stylefeng.guns.modular.system.util.RedisUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -31,13 +32,17 @@
    @Autowired
    private ICityService cityService;
    @Resource
    private RedisUtil redisUtil;
    @Override
    public Company query1(String lon, String lat) throws Exception {
        ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(Double.valueOf(lat), Double.valueOf(lon));
    public Company query1(Integer uid, String lon, String lat) throws Exception {
        String tripId = redisUtil.getValue("trip" + uid);
        ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(Double.valueOf(lat), Double.valueOf(lon), tripId);
        if(null == reverseGeocode){
            return null;
        }
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
@@ -81,13 +81,14 @@
     * @throws Exception
     */
    @Override
    public List<Driver> queryIdleDriver(Integer type, Integer serverCarModelId, Double lon, Double lat, Double distance, Integer companyId) throws Exception {
    public List<Driver> queryIdleDriver(Integer uid, Integer type, Integer serverCarModelId, Double lon, Double lat, Double distance, Integer companyId) throws Exception {
        String tripId = redisUtil.getValue("trip" + uid);
        List<Driver> drivers = driverMapper.queryIdleDriver_(type, serverCarModelId, companyId);
        List<Driver> list = new ArrayList<>();
        for(Driver driver : drivers){
            String value = redisUtil.getValue("DRIVER" + driver.getId());
            if(null != value){
                DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(lat, lon, Double.parseDouble(value.split(",")[1]), Double.parseDouble(value.split(",")[0]));
                DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(lat, lon, Double.parseDouble(value.split(",")[1]), Double.parseDouble(value.split(",")[0]), tripId);
                if(null != distancematrix){
                    if(distancematrix.getDistance() < (distance * 1000)){
                        list.add(driver);
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OpenCityBusinessServiceImpl.java
@@ -7,6 +7,7 @@
import com.stylefeng.guns.modular.system.util.GoogleMap.AddressComponentsVo;
import com.stylefeng.guns.modular.system.util.GoogleMap.GoogleMapUtil;
import com.stylefeng.guns.modular.system.util.GoogleMap.ReverseGeocodeVo;
import com.stylefeng.guns.modular.system.util.RedisUtil;
import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
import org.springframework.stereotype.Service;
@@ -20,6 +21,9 @@
    @Resource
    private OpenCityBusinessMapper openCityBusinessMapper;
    @Resource
    private RedisUtil redisUtil;
    /**
@@ -28,11 +32,12 @@
     * @throws Exception
     */
    @Override
    public List<BaseWarpper> queryBusiness(Double lat, Double lnt, Integer language) throws Exception {
    public List<BaseWarpper> queryBusiness(Integer uid, Double lat, Double lnt, Integer language) throws Exception {
        if(null == language){
            language = 2;
        }
        ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(lat, lnt);
        String tripId = redisUtil.getValue("trip" + uid);
        ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(lat, lnt, tripId);
        if(null == reverseGeocode){
            return new ArrayList<>();
        }
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OpenCityServiceImpl.java
@@ -12,6 +12,7 @@
import com.stylefeng.guns.modular.system.util.GoogleMap.AddressComponentsVo;
import com.stylefeng.guns.modular.system.util.GoogleMap.GoogleMapUtil;
import com.stylefeng.guns.modular.system.util.GoogleMap.ReverseGeocodeVo;
import com.stylefeng.guns.modular.system.util.RedisUtil;
import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -32,6 +33,9 @@
    @Autowired
    private IUserInfoService userInfoService;
    @Resource
    private RedisUtil redisUtil;
    /**
@@ -70,11 +74,12 @@
     * @throws Exception
     */
    @Override
    public City openCity(Double lat, Double lnt, Integer language) throws Exception {
    public City openCity(Integer uid, Double lat, Double lnt, Integer language) throws Exception {
        if(null == language){
            language = 2;
        }
        ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(lat, lnt);
        String tripId = redisUtil.getValue("trip" + uid);
        ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(lat, lnt, tripId);
        if(null == reverseGeocode){
            return null;
        }
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java
@@ -17,6 +17,7 @@
import com.stylefeng.guns.modular.system.util.GDMapElectricFenceUtil;
import com.stylefeng.guns.modular.system.util.GoogleMap.DistancematrixVo;
import com.stylefeng.guns.modular.system.util.GoogleMap.GoogleMapUtil;
import com.stylefeng.guns.modular.system.util.RedisUtil;
import com.stylefeng.guns.modular.system.util.ResultUtil;
import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
@@ -29,6 +30,7 @@
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.Map;
@@ -62,6 +64,9 @@
    @Autowired
    private ICarService carService;
    @Resource
    private RedisUtil redisUtil;
    /**
@@ -74,8 +79,9 @@
     * @throws Exception
     */
    @Override
    public ResultUtil<BaseWarpper> queryExpectedTime(Double slon, Double slat, Double elon, Double elat) throws Exception {
        DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(slat, slon, elat, elon);
    public ResultUtil<BaseWarpper> queryExpectedTime(Integer uid, Double slon, Double slat, Double elon, Double elat) throws Exception {
        String tripId = redisUtil.getValue("trip" + uid);
        DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(slat, slon, elat, elon, tripId);
        Long duration = distancematrix.getDuration() / 60;
        BaseWarpper baseWarpper = new BaseWarpper();
        baseWarpper.setMinute(duration.intValue());
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/PhoneServiceImpl.java
@@ -7,6 +7,7 @@
import com.stylefeng.guns.modular.system.util.GoogleMap.AddressComponentsVo;
import com.stylefeng.guns.modular.system.util.GoogleMap.GoogleMapUtil;
import com.stylefeng.guns.modular.system.util.GoogleMap.ReverseGeocodeVo;
import com.stylefeng.guns.modular.system.util.RedisUtil;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@@ -21,6 +22,12 @@
    @Resource
    private PhoneMapper phoneMapper;
    @Resource
    private RedisUtil redisUtil;
    /**
     * 获取所有系统电话
@@ -28,8 +35,9 @@
     * @throws Exception
     */
    @Override
    public List<Phone> queryPhones(Double lat, Double lnt) throws Exception {
        ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(lat, lnt);
    public List<Phone> queryPhones(Integer uid, Double lat, Double lnt) throws Exception {
        String tripId = redisUtil.getValue("trip" + uid);
        ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(lat, lnt, tripId);
        if(null == reverseGeocode){
            return new ArrayList<>();
        }
@@ -49,8 +57,9 @@
     * @throws Exception
     */
    @Override
    public Map<String, Object> queryCustomerPhone(Double lat, Double lnt) throws Exception {
        ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(lat, lnt);
    public Map<String, Object> queryCustomerPhone(Integer uid, Double lat, Double lnt) throws Exception {
        String tripId = redisUtil.getValue("trip" + uid);
        ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(lat, lnt, tripId);
        if(null == reverseGeocode){
            return new HashMap<>();
        }
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java
@@ -16,6 +16,7 @@
import com.stylefeng.guns.modular.system.util.GoogleMap.DistancematrixVo;
import com.stylefeng.guns.modular.system.util.GoogleMap.GoogleMapUtil;
import com.stylefeng.guns.modular.system.util.GoogleMap.ReverseGeocodeVo;
import com.stylefeng.guns.modular.system.util.RedisUtil;
import com.stylefeng.guns.modular.system.util.ResultUtil;
import com.stylefeng.guns.modular.system.warpper.ServerCarModelWarpper;
import org.springframework.beans.factory.annotation.Autowired;
@@ -46,6 +47,9 @@
    @Autowired
    private IUserInfoService userInfoService;
    @Resource
    private RedisUtil redisUtil;
@@ -61,9 +65,10 @@
     * @throws Exception
     */
    @Override
    public ResultUtil<List<ServerCarModelWarpper>> queryServerCarModel(String startLonLat, String endLonLat, Integer type, Integer language) throws Exception {
    public ResultUtil<List<ServerCarModelWarpper>> queryServerCarModel(Integer uid, String startLonLat, String endLonLat, Integer type, Integer language) throws Exception {
        String tripId = redisUtil.getValue("trip" + uid);
        //查找与起点匹配的企业(经营范围)
        ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(Double.valueOf(startLonLat.split(",")[1]), Double.valueOf(startLonLat.split(",")[0]));
        ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(Double.valueOf(startLonLat.split(",")[1]), Double.valueOf(startLonLat.split(",")[0]), tripId);
        if(null == language){
            language = 2;
        }
@@ -83,7 +88,7 @@
        Double slat = Double.valueOf(startLonLat.split(",")[1]);
        Double elnt = Double.valueOf(endLonLat.split(",")[0]);
        Double elat = Double.valueOf(endLonLat.split(",")[1]);
        DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(slat, slnt, elat, elnt);
        DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(slat, slnt, elat, elnt, tripId);
        if(null == distancematrix){
            return ResultUtil.error(language == 1 ? "获取预估距离出错" : language == 2 ? "Obtaining-estimated-distance error" : "Erreur d’obtention de la distance estimée", new ArrayList<>());
        }else if(distancematrix.getDistance() == 0){
@@ -94,7 +99,7 @@
        long duration = distancematrix.getDuration();//时间(秒)
        long duration_ = Long.valueOf(duration).longValue();
        List<ServerCarModelWarpper> price = this.getPrice(query.getId(), distance1_, duration_, 0, type);
        List<ServerCarModelWarpper> price = this.getPrice(query.getId(), distance1_, duration_, 0, type, language);
        if(price.size() == 0){
            return ResultUtil.error(language == 1 ? "未获取到可服务的车型" : language == 2 ? "Not obtaining available vehicle-type" : "Ne pas obtenir le type de véhicule disponible", new ArrayList<>());
        }
@@ -123,10 +128,19 @@
     * @return
     * @throws Exception
     */
    public List<ServerCarModelWarpper> getPrice(Integer companyId, double distance, long duration, long wait, Integer type) throws Exception {
    public List<ServerCarModelWarpper> getPrice(Integer companyId, double distance, long duration, long wait, Integer type, Integer language) throws Exception {
        List<Map<String, Object>> list = serverCarModelMapper.queryServerCarModel(type);
        List<ServerCarModelWarpper> data = new ArrayList<>();
        for(Map<String, Object> map : list){
            if(1 == language){
                map.put("name", map.get("chineseName"));
            }
            if(2 == language){
                map.put("name", map.get("englishName"));
            }
            if(3 == language){
                map.put("name", map.get("frenchName"));
            }
            Map<String, Object> query1 = systemPriceMapper.query(companyId, type, Integer.valueOf(map.get("id").toString()));
            if(null == query1){//排除没有设置价格的车型
                continue;
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserCouponRecordServiceImpl.java
@@ -4,6 +4,7 @@
import com.stylefeng.guns.modular.system.dao.UserCouponRecordMapper;
import com.stylefeng.guns.modular.system.model.UserCouponRecord;
import com.stylefeng.guns.modular.system.model.UserInfo;
import com.stylefeng.guns.modular.system.service.ISystemNoticeService;
import com.stylefeng.guns.modular.system.service.IUserCouponRecordService;
import com.stylefeng.guns.modular.system.service.IUserInfoService;
import com.stylefeng.guns.modular.system.util.DateUtil;
@@ -24,6 +25,12 @@
    @Autowired
    private IUserInfoService userInfoService;
    @Resource
    private ISystemNoticeService systemNoticeService;
    /**
@@ -112,6 +119,9 @@
    public ResultUtil handselCoupon(Integer id, Integer uid, Integer userId, Integer language) throws Exception {
        UserCouponRecord userCouponRecord = userCouponRecordMapper.selectById(id);
        language = userInfoService.queryLanguage(uid, language);
        UserInfo userInfo1 = userInfoService.selectById(uid);
        String nickName = userInfo1.getNickName();
        String phone = userInfo1.getPhone();
        if(userCouponRecord.getUserId().compareTo(uid) != 0){
            return ResultUtil.error(language == 1 ? "您不能赠送此优惠券" : language == 2 ? "You cannot gift the coupon." : "Vous ne pouvez pas offrir le coupon.");
        }
@@ -120,6 +130,11 @@
        }
        userCouponRecord.setUserId(userId);
        userCouponRecordMapper.updateById(userCouponRecord);
        UserInfo userInfo = userInfoService.selectById(userId);
        Integer language1 = userInfo.getLanguage();
        systemNoticeService.addSystemNotice(1, language1 == 1 ? nickName + "(" + phone + ")刚赠送您了一张GHS 5.00的优惠券,请查看账户。" : language1 == 2
                ? nickName + "(" + phone + ")just gifted a GHS 5.00 coupon to you, please check your account."
                : nickName + "(" + phone + ")vient de vous offrir un coupon de GHS 5.00, veuillez vérifier votre compte.", userId, 1);
        return ResultUtil.success();
    }
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java
@@ -217,7 +217,7 @@
            //用户所属企业
            if(null != lat && null != lng){
                ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(lat, lat);
                ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(lat, lat, null);
                AddressComponentsVo[] addressComponentsVos = reverseGeocode.getAddressComponentsVos();
                String[] citys = new String[addressComponentsVos.length];
                for (int i = 0; i < addressComponentsVos.length; i++) {
@@ -1301,7 +1301,7 @@
            }
            //用户所属企业
            if(null != lat && null != lng){
                ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(lat, lng);
                ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(lat, lng, null);
                if(null != reverseGeocode){
                    AddressComponentsVo[] addressComponentsVos = reverseGeocode.getAddressComponentsVos();
                    String[] citys = new String[addressComponentsVos.length];
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/GoogleMapUtil.java
@@ -5,6 +5,7 @@
import com.google.gson.GsonBuilder;
import com.google.maps.*;
import com.google.maps.model.*;
import com.stylefeng.guns.core.util.ToolUtil;
/**
 * 谷歌地图工具类
@@ -49,12 +50,15 @@
     * @return
     * @throws Exception
     */
    public static ReverseGeocodeVo getReverseGeocode(double lat, double lng) throws Exception{
    public static ReverseGeocodeVo getReverseGeocode(double lat, double lng, String tripId) throws Exception{
        GeoApiContext context = new GeoApiContext.Builder()
                .apiKey(key)
                .build();
        GeocodingApiRequest request = GeocodingApi.reverseGeocode(context, new LatLng(lat, lng));
        request.language("en");
        if(ToolUtil.isNotEmpty(tripId)){
            request.header("X-Goog-Maps-Experience-ID", tripId);//行程id
        }
        GeocodingResult[] results = request.await();
        ReverseGeocodeVo vo = null;
        if(results.length > 0){
@@ -162,13 +166,16 @@
     * @return
     * @throws Exception
     */
    public static DistancematrixVo getDistancematrix(String origin, String destination) throws Exception{
    public static DistancematrixVo getDistancematrix(String origin, String destination, String tripId) throws Exception{
        GeoApiContext context = new GeoApiContext.Builder()
                .apiKey(key)
                .build();
        DistanceMatrixApiRequest request = DistanceMatrixApi.getDistanceMatrix(context, new String[]{origin}, new String[]{destination});
        request.language("en");
        request.mode(TravelMode.DRIVING);//出行方式(驾车)
        if(ToolUtil.isNotEmpty(tripId)){
            request.header("X-Goog-Maps-Experience-ID", tripId);//行程id
        }
        DistanceMatrix distanceMatrix = request.await();
        Gson gson = new GsonBuilder().setPrettyPrinting().create();
        System.err.println(gson.toJson(distanceMatrix));
@@ -197,7 +204,7 @@
     * @return
     * @throws Exception
     */
    public static DistancematrixVo getDistancematrix(Double sLat, Double sLnt, Double eLat, Double eLnt) throws Exception{
    public static DistancematrixVo getDistancematrix(Double sLat, Double sLnt, Double eLat, Double eLnt, String tripId) throws Exception{
        GeoApiContext context = new GeoApiContext.Builder()
                .apiKey(key)
                .build();
@@ -205,6 +212,9 @@
        request.origins(new LatLng(sLat, sLnt));
        request.destinations(new LatLng(eLat, eLnt));
        request.mode(TravelMode.DRIVING);//出行方式(驾车)
        if(ToolUtil.isNotEmpty(tripId)){
            request.header("X-Goog-Maps-Experience-ID", tripId);//行程id
        }
        DistanceMatrix distanceMatrix = request.await();
        Gson gson = new GsonBuilder().setPrettyPrinting().create();
        System.out.println(gson.toJson(distanceMatrix));
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java
@@ -176,7 +176,7 @@
    public synchronized ResultUtil<BaseWarpper> taxiOrder(OrderTaxi orderTaxi, Integer uid) throws Exception {
        //定义用户所属公司
        UserInfo userInfo1 = userInfoService.selectById(uid);
        Company query = companyCityService.query1(String.valueOf(orderTaxi.getStartLon()), String.valueOf(orderTaxi.getStartLat()));
        Company query = companyCityService.query1(orderTaxi.getUserId(), String.valueOf(orderTaxi.getStartLon()), String.valueOf(orderTaxi.getStartLat()));
        if(null == query){
            return ResultUtil.error("出发点暂未开通");
        }
@@ -1302,7 +1302,7 @@
                    if(ToolUtil.isNotEmpty(vehicle)){
                        integers = JSON.parseArray(vehicle).toJavaList(Integer.class);
                    }
                    Company query = companyCityService.query1(String.valueOf(orderTaxi.getStartLon()), String.valueOf(orderTaxi.getStartLat()));//获取起点所属分公司
                    Company query = companyCityService.query1(orderTaxi.getUserId(), String.valueOf(orderTaxi.getStartLon()), String.valueOf(orderTaxi.getStartLat()));//获取起点所属分公司
                    List<PushOrder> querys = pushOrderService.querys(null, 2, query.getId());//获取需要推送的次数
                    for(int i = 1; i <= querys.size(); i++){
                        PushOrder pushOrder = pushOrderService.querys(i, 2, query.getId()).get(0);