Pu Zhibing
2024-09-29 adf2ede692b76cf95d0cec80f4087e52d760b219
修改bug
30个文件已修改
484 ■■■■■ 已修改文件
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/SMSUtil.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/resources/application-produce.yml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/TReportLossController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/SysCouponActivityController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCarController.java 51 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderPrivateCarController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TCar.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserActivityDiscount1ServiceImpl.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementIGOTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCar/tCar_add.html 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementIGOTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCar/tCar_edit.html 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementIGOTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSystemPrice/tSmallPrice_add.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementIGOTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSystemPrice/tSmallPrice_edit.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementIGOTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSystemPrice/tSystemPrice_add.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementIGOTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSystemPrice/tSystemPrice_edit.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementIGOTravel/guns-admin/src/main/webapp/static/modular/system/tCar/tCar.js 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementIGOTravel/guns-admin/src/main/webapp/static/modular/system/tCar/tCarAuth.js 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/KaptchaController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReportLossServiceImpl.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/SMSUtil.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/resources/application-produce.yml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
@@ -5,9 +5,11 @@
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.stylefeng.guns.core.util.ToolUtil;
import com.stylefeng.guns.modular.smallLogistics.model.OrderLogistics;
import com.stylefeng.guns.modular.smallLogistics.model.OrderLogisticsSpread;
import com.stylefeng.guns.modular.smallLogistics.server.IOrderLogisticsService;
import com.stylefeng.guns.modular.smallLogistics.server.impl.OrderLogisticsSpreadService;
import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar;
import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService;
import com.stylefeng.guns.modular.system.model.OrderPosition;
import com.stylefeng.guns.modular.system.model.Reassign;
@@ -15,6 +17,7 @@
import com.stylefeng.guns.modular.system.service.IOrderService;
import com.stylefeng.guns.modular.system.service.IReassignService;
import com.stylefeng.guns.modular.system.util.*;
import com.stylefeng.guns.modular.system.util.GoogleMap.FleetEngineUtil;
import com.stylefeng.guns.modular.system.util.Tingg.model.CallbackRequest;
import com.stylefeng.guns.modular.system.util.Tingg.model.CallbackResponse;
import com.stylefeng.guns.modular.system.util.Tingg.model.Payments;
@@ -29,6 +32,7 @@
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
@@ -70,6 +74,9 @@
    @Value("${filePath}")
    private String filePath;
    @Resource
    private FleetEngineUtil fleetEngineUtil;
@@ -863,4 +870,35 @@
        }
        return ResultUtil.success();
    }
    @ResponseBody
    @PostMapping("/api/taxi/getTripInfo")
    @ApiOperation(value = "获取google行程详情【2.0】", tags = {"用户端-专车", "用户端-小件物流"}, notes = "")
    @ApiImplicitParams({
            @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
            @ApiImplicitParam(value = "订单类型", name = "orderType", required = true, dataType = "int"),
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil<String> getTripInfo(Integer orderId, Integer orderType){
        try {
            String tripId = null;
            switch (orderType){
                case 1:
                    OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId);
                    tripId = orderPrivateCar.getTripId();
                    break;
                case 4:
                    OrderLogistics orderLogistics = orderLogisticsService.selectById(orderId);
                    tripId = orderLogistics.getTripId();
                    break;
            }
            String trip = fleetEngineUtil.getTrip(tripId);
            return ResultUtil.success(trip);
        }catch (Exception e){
            e.printStackTrace();
            return ResultUtil.runErr();
        }
    }
}
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
@@ -203,10 +203,11 @@
        redisUtil.setStrValue(phone, authCode, 5 * 60);//设置五分钟过期
        switch (language){
            case 1:
                sms = "您的验证码为:" + authCode + ",该验证码5分钟内有效,请勿泄漏于他人!";
//                sms = "您的验证码为:" + authCode + ",该验证码5分钟内有效,请勿泄漏于他人!";
                sms = "Your verification code is " + authCode + ", it is valid within 5 minutes, please do not reveal it to others.";
                break;
            case 2:
                sms = "Your verification code is " + authCode + ",it is valid within 5 minutes, please do not reveal it to others.";
                sms = "Your verification code is " + authCode + ", it is valid within 5 minutes, please do not reveal it to others.";
                break;
            case 3:
                sms = "Votre code de validation est " + authCode + " et il est valide pendant 5 minutes. Veuillez ne pas le révéler à d’autres personnes.";
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java
@@ -32,6 +32,8 @@
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.SimpleDateFormat;
import java.util.*;
@@ -265,11 +267,11 @@
                OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId);
                String tripId = redisUtil.getValue("trip" + orderPrivateCar.getUserId());
                DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(Double.valueOf(map.get("startLat").toString()), Double.valueOf(map.get("startLon").toString()), Double.valueOf(lat), Double.valueOf(lon), tripId);
                map.put("startDistance", null != distancematrix ? distancematrix.getDistance() / 1000 : 0);
                map.put("startDistance", null != distancematrix ? new BigDecimal(distancematrix.getDistance()).divide(new BigDecimal(1000)).setScale(2, RoundingMode.HALF_EVEN).doubleValue() : 0);
                //总距离
                distancematrix = GoogleMapUtil.getDistancematrix(Double.valueOf(map.get("startLat").toString()), Double.valueOf(map.get("startLon").toString()), Double.valueOf(map.get("endLat").toString()), Double.valueOf(map.get("endLon").toString()), tripId);
                map.put("totalDistance", null != distancematrix ? distancematrix.getDistance() / 1000 : 0);
                map.put("totalDistance", null != distancematrix ? new BigDecimal(distancematrix.getDistance()).divide(new BigDecimal(1000)).setScale(2, RoundingMode.HALF_EVEN).doubleValue() : 0);
                Integer orderSource = Integer.valueOf(String.valueOf(map.get("orderSource")));
                if(orderSource == 1 || orderSource == 2 || orderSource == 3){
@@ -376,11 +378,11 @@
                OrderLogistics orderLogistics = orderLogisticsService.selectById(orderId);
                String tripId1 = redisUtil.getValue("trip" + orderLogistics.getUserId());
                DistancematrixVo distancematrix1 = GoogleMapUtil.getDistancematrix(Double.valueOf(map.get("startLat").toString()), Double.valueOf(map.get("startLon").toString()), Double.valueOf(lat), Double.valueOf(lon), tripId1);
                map.put("startDistance", null != distancematrix1 ? distancematrix1.getDistance() / 1000 : 0);
                map.put("startDistance", null != distancematrix1 ? new BigDecimal(distancematrix1.getDistance()).divide(new BigDecimal(1000)).setScale(2, RoundingMode.HALF_EVEN).doubleValue() : 0);
                //总距离
                distancematrix1 = GoogleMapUtil.getDistancematrix(Double.valueOf(map.get("startLat").toString()), Double.valueOf(map.get("startLon").toString()), Double.valueOf(map.get("endLat").toString()), Double.valueOf(map.get("endLon").toString()), tripId1);
                map.put("totalDistance", null != distancematrix1 ? distancematrix1.getDistance() / 1000 : 0);
                map.put("totalDistance", null != distancematrix1 ? new BigDecimal(distancematrix1.getDistance()).divide(new BigDecimal(1000)).setScale(2, RoundingMode.HALF_EVEN).doubleValue() : 0);
                Integer orderSource3 = Integer.valueOf(String.valueOf(map.get("orderSource")));
                if(orderSource3 == 1 || orderSource3 == 2 || orderSource3 == 3){
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java
@@ -34,35 +34,47 @@
    
    static Logger logger = LoggerFactory.getLogger(FleetEngineUtil.class);
    
//    private final String SERVICE_ACCOUNT = "odrd-fleetengine-ondemandadmin@i-go-odrd-testing.iam.gserviceaccount.com";
//
//    private final String DRIVER_ACCOUNT = "odrd-fleetengine-driversdkuser@i-go-odrd-testing.iam.gserviceaccount.com";
//
//    private final String CONSUMER_ACCOUNT = "odrd-fleetengine-consumersdkus@i-go-odrd-testing.iam.gserviceaccount.com";
//
//    private final String serverPrivateKeyId = "254e18eefa9fdcca64d5899cdcd793d466c47c7d";
//
//    private final String serverPrivateKey = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCfbNAWnukqLKIxItqmSABxsH5glySEHJ2gfL5KsRF0M02e0Z8/KNKZkoh7I6bOMt1fEtttFaWOeq70IdI2WAd5wVazL3upvl5FW4P08ly33LklfGyLljlJ7ChPny9x6OjAaiS0yD9fh7NWti7rZKU7gzcGL8HddNYXgXV5OajvoG3TGdu52WTxce9AUzU6gLPboz/RbGqrdrmgVJVb0EPlhTJf/NSsaiW4NoL8SEzf/pJGYBmqJs97mXwCHTY4avaC+CP/zz9yS8AQEJlApbVT6lSOhYoR0hNOBj5B886EZOssjubO6hQaiwRnGrV2RdpHynqA1iekfGpUGEtWTsqjAgMBAAECggEALyPbMd0iP8y71sCiG4nty7Au5ju62e+mMkbAc9CAwzXKTVxZdLEK+MsJ3TNxBsami47FYC+G6SbgpaJ8iIImD7v5+XjgXZRDRsnlLmAdx2YWPv3YELxGS1PvpX+B5XJDpGWeXfBaQNKc1lZ/cC4t53eIpSUo82UxSvkGNea1S8lR6vIByhNyCQOvLG4yqaxUy0hZi0kge37XrjYMGS+BivBBnDiVlBPLBVbrNBxOf31Lzz+XX0iwXX7Zl2jN759oe0xQyuIGWUSj8xBDIF8nNaJrla7rWVml3sZJh6/3r1Acj0mhZtE0ZMu5hiPGiIXgb1ng30j3dMP4yVPhXrpAtQKBgQDaU01VnHsnHxc0DQHE2vEOPGmPxVS0/JAssePAEUmKEueUogGef91YY+Vm/ItbhLwGjbytnXxe88zRAdB1u07efZ83ey93TrGl2CJUzLHIcgb+Q1tT642rqlfl+q8ep86hcZ+63pDiIPt2Z+HkbKIR0SWf5LIH4flquQOTQufXXQKBgQC674qDsjOJepZjMMN6PkVMcWBYDNmXHnqa5Oto0rZM745UulbXqEFGuBOsXPU7O33Kfz1vbtoluubKZi5B6cFNnPypE2SCfvdObHq4FuTuKPV6lN93SyhZchmSEXEs0PU4cGDRt+RRqQcjft1Wigiy4Y1y1SInCtcaP1hLejEJ/wKBgFAhvwKrGnBzctrB42JTUaJ9/eis7rg28tvUttjp/2nUIndlNt7r41vr3mj8TFHc1/43y4aVhO584THdTpvHkd0LkoKUjglmMsHCIGercZ02bOap5j1Y+XiGXxij995yjN6oi43U3qyAmosM+dYTITEU6JBVKhrGj/rhyTQlnF5pAoGBAKFGmo0mR/pbDbYD0xH6+VSLGCC+7VbIT+SkjUjBSdA0eOo2XUfvfGmj1C1HgbcZi1wRzJH/5CrbBdQmtc/d+QyZ3Q2NkpBXM8uwIWwDLH0gTzDzkZvc9rG8k70GWUrd+EI6Cf3FFjExj9wazqCjs/+IQr2Ijc97NbsKXYW4pOhHAoGAKf5wYk+cn0cVTsyAom0UbGD5Uijqh5732MeqFYs2Rcwx0OErJZo68COSFFF40hJmmIKn7p3qycIyd1FcYlXN1l4s8mEWTGTInRE0OlBU0+jLtIV9pwNgffpbPYcrWZU6s6YVeJ2nDwl+aD+4QvN0rkPTfho9kjgeyF3PW0I2u4E=";
//
//    private final String driverPrivateKeyId = "859e85fb3aa4d18b4afaac3e24e8f65700da5cc9";
//
//    private final String driverPrivateKey = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCmzL1BqSH+Zh9Fct5mXqe5sYOMTnJtOJhwKXnjjo2tNPXv4alzUHz8Vbj6nMar5u5IuKRZMeRBlhoRSFrLm+J1+sfvpH8N4wsnG7hDANknqWzdsk9a68qMHxNQF3hFzs9+KKrR1LAG8e9ytMfliN0kX+xls4uPZDPu1Q39K6V9KXrH/GrMA56i3TtWi7Hmakt5YTELeGjhx4nGrfuQLFFovs1Z9uJtf7E8R95+65StrOAmbJNf7VciEqwBpWYlU5VeyLXMg/oHwnTv2cjdcFozyDrlUHbDmtTiVeBBsYFVLyAsDGfl1p6eiVTiBBuo56YSYLWfaLgYvTyEcZ9jBQsfAgMBAAECggEAQzbTuObX3PT3+vtb5XKVMf33XY2rDJo2y1PbWzhxnO9vf3e22dIAW4qLnOmaIWFQeht1lr/FFCzRWk+Gzu+FJTemY8osrMLmFp9T9CQeXZ4nUXruAVxs5WQMW0Tp4W+CK3tlwmJrgJDzhYyV1Mf/HQ5Oa3kbbu/ZAY/3MCLrb/ClJQvD2rZSDdzAkNMQm8P2hsE71+rH7mI2hHrSCHl2OIp2A64QT8HjtyRc5yHZtTp6ZST1ge9SSIsT0ZfmXKtKF7yGEIPtKNU+oLrGyK5P30xBWJ/bwb3PEz2MZcPvz31+B2+UvZMm7OTkqfcRwEztAf8Ckiuo4im2BRYbVmd9OQKBgQDd0MeLxR+Qtv12bVA0bHtagFEq36THgWG7IM1/1vS4Cl9sveKSOS8A6oKLy624fGE7PKcuTTIzkVA81GXtWBQ9Coq/4TmllQkFTH7pz9C2PNHSCychPwNNV8qUx3lE3d4DOjGKgoVFD4l90AO7lOvmLTSc3pDpr+jSjUH4lqGrbQKBgQDAgXBmpXfCTxwqkBzGwxX+hwJen9qSkCM47qnQ1L4NnXPL6s0EN6rQ3FnFemGIzBUGJ2tajntkKlUu5DzsQeoBGu/SaSwgqD+1UQDcUyo+retmqZ+QYbpeyd3l53bLJJuJNsfak0X76Ft6hrm4julx6RGlmboQyx4kZWbhx4YNOwKBgEG9/2aNpi1eDwFqpLrk7CqGnYf3gP8gebbcoguhyiZB7MZuARkVmbjLyKVmWLa1JpxH/cTbXGWsS/u7d/pAgL8WwMjeGBfbdDD92x+xWEqq/AUlCRPxeSkTPBech3TBzWtndAd5Z8ZwNG/1lyWhnck63L0huhGI8Zh2BXeILaKBAoGAKK3xq69BvGztPc1QV2w4RJ4RER/kl14gI1LDzd52/veL1cabZk3BKfu2eLWg0MCXnMJNvEgpqQQNFiii+yX+phckIKma6pfDRrSEYwqr/azQ9tPXZTJRqOAtpPyhrNHikD9kQjsm6dGzKxQ3QNnqWOjwkrcGi6/wga5v7Dw2hqsCgYEA2T/kSNQ9dqpVBAkfi2J50hqnfFESPjKeirJJZllqhVqsiV0ly8a8Fz8SjGqTzrq+UErko+QmtSlo5h3Uq9Ln+0CwYfrUL+74q2zLHdS0DpY3QsGTEDJXTxCyy9kO26X2UsM3Ez3YUAkdMwdpVz0uVZtinv2735QZOBxoVQV2kQ8=";
//
//    private final String consumerPrivateKeyId = "40acf82cbd5250de2f5123caff40738bdd403b08";
//
//    private final String consumerPrivateKey = "MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDSwtbSBFgIXna6mWeKFWCK31NXUJH6uGduR1XrODGRedrqrTgr0BdNg8PDo6/zh/T+K0Svor6kgqpwnl9soOdn73oC4Nu+Ad7EiKa38j650jlZdLAr4hR0Ou9Kcnv45x/94auUO8jBz844cu24swLKiPsK9OnX65wVlKRfhhkGFuS/4OI76CmE7NqZDqPOW16o8tBO5TsgPVNkglFAU73fTp0kcHoLauT9QOB0+yZi39mnNXyU+2cL3Ylp5oaQCJpyssDRUqz/EiHa7FxUUgzCadG00+ePf5iYSnZKQRKWoOIawFvcCfcHx8GAl8Nn+79HtVQHB9hLsQ5+jqcdfKPfAgMBAAECggEAE9Ufz912xzrUY1TCKH1Ae3Dub732Lqihmv/9dsfv6ieUURcBvSW0u6eViVhi20DE7hH2QazH0cU18qkEg71UaTRgv9qW8vdMFiRhw9d4zZWZrfBMD6UTlahiEhhZ0B83pHVS5v0FNC+w0SEHe6Tks1hWfz5yrs3N/z3ghdihjC/5i1jeBoHXs1262SMazuwNGHblLApGPG+86taeFtbDI+31TKvZ8nomZHkEVFnARRUoBBcIwowRMqNfwlpcJhlz6kDWnoD08kHJ2zzJokozu7Lim+Ugt/MWwUOcA0hgq2QdymZFpkRkDl7tZmJtwTfTirjbGlpnPHVXEc1bWM7ocQKBgQD0LJ8e7JXf6bVFngq0jSJNKK7XDHYg0KhHXMApF59xxi29hdHXWPzgRJ45KkoUJc7MITpIJLXfCmi1XyDMf9m8lIf/oaqhJ7idYi7iAAPOJkdnHbSt0lebyjBWzCQ6OgS4NfF1+LEibTzRqiFs5K8EAyPYAVSTrpWoguoWtTzIGQKBgQDc9/I2PS+91Eb5RvuidTNsDqZJliTJQFlBjlDViFo3+l1N7jDFYwPBR/Tv4TVM5p9Zb+/Lo9X1pjDbm8QriTR4V+4HaLXkcCnmOsdSRInFUW4UIafwLX5ifjgfyaWgdKdn2UP1Lu/1qBN6GU1xjSfBQ6N3UqQiKkNPb7tuPJGqtwKBgQCQ4hU8vTclGMC14VQK1B/BVt1/vuYtDIJ9bZycBWdXlDc52LitpiDOVgjodJ5mHBT77M9vVVERWlTNIfgNP+OL0TptRZlAbJhP0p1s/oNDhFUj6211InVXfH54UkNAxYJdZ6yxynIYsma/JcsVmQ/8Ony/Q/LSempVBfEurjW1qQKBgQCQWPjFLdtOKqnildg0HFPnNvqx/38waPTluk5b76LgBpGFIyCBEVmWnacIPRpQjidyiYkggnp26oXoMC1KM2svYmGAPYr1G8CDQcqLl3JYkAVU6VeHsnBpbwLC4TttQkdJs8iNFohy9cUjcfwBPbDGs6TJghbuqqUl81uBe9e8qQKBgQDZm8T2KB34J7HAc5A+vqkmAo7mQLZg51OrzB1KnDU86pSAf0o3eSvfDUT6dpU9fRuZ1XYnbPnpoJwjFH3m4u9gqKF3PtVYfZyJrEqYwmhB9z6vd+dcsUlXM0fi37bGZkKBD0JGGt5OljM1qJG15x/LYfC/nwOmqWoOhNPCst2Z7w==";
//
//    private final String provider = "i-go-odrd-testing";
    private final String SERVICE_ACCOUNT = "odrd-fleetengine-ondemandadmin@i-go-odrd-testing.iam.gserviceaccount.com";
    private final String DRIVER_ACCOUNT = "odrd-fleetengine-driversdkuser@i-go-odrd-testing.iam.gserviceaccount.com";
    private final String CONSUMER_ACCOUNT = "odrd-fleetengine-consumersdkus@i-go-odrd-testing.iam.gserviceaccount.com";
    private final String serverPrivateKeyId = "254e18eefa9fdcca64d5899cdcd793d466c47c7d";
    private final String serverPrivateKey = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCfbNAWnukqLKIxItqmSABxsH5glySEHJ2gfL5KsRF0M02e0Z8/KNKZkoh7I6bOMt1fEtttFaWOeq70IdI2WAd5wVazL3upvl5FW4P08ly33LklfGyLljlJ7ChPny9x6OjAaiS0yD9fh7NWti7rZKU7gzcGL8HddNYXgXV5OajvoG3TGdu52WTxce9AUzU6gLPboz/RbGqrdrmgVJVb0EPlhTJf/NSsaiW4NoL8SEzf/pJGYBmqJs97mXwCHTY4avaC+CP/zz9yS8AQEJlApbVT6lSOhYoR0hNOBj5B886EZOssjubO6hQaiwRnGrV2RdpHynqA1iekfGpUGEtWTsqjAgMBAAECggEALyPbMd0iP8y71sCiG4nty7Au5ju62e+mMkbAc9CAwzXKTVxZdLEK+MsJ3TNxBsami47FYC+G6SbgpaJ8iIImD7v5+XjgXZRDRsnlLmAdx2YWPv3YELxGS1PvpX+B5XJDpGWeXfBaQNKc1lZ/cC4t53eIpSUo82UxSvkGNea1S8lR6vIByhNyCQOvLG4yqaxUy0hZi0kge37XrjYMGS+BivBBnDiVlBPLBVbrNBxOf31Lzz+XX0iwXX7Zl2jN759oe0xQyuIGWUSj8xBDIF8nNaJrla7rWVml3sZJh6/3r1Acj0mhZtE0ZMu5hiPGiIXgb1ng30j3dMP4yVPhXrpAtQKBgQDaU01VnHsnHxc0DQHE2vEOPGmPxVS0/JAssePAEUmKEueUogGef91YY+Vm/ItbhLwGjbytnXxe88zRAdB1u07efZ83ey93TrGl2CJUzLHIcgb+Q1tT642rqlfl+q8ep86hcZ+63pDiIPt2Z+HkbKIR0SWf5LIH4flquQOTQufXXQKBgQC674qDsjOJepZjMMN6PkVMcWBYDNmXHnqa5Oto0rZM745UulbXqEFGuBOsXPU7O33Kfz1vbtoluubKZi5B6cFNnPypE2SCfvdObHq4FuTuKPV6lN93SyhZchmSEXEs0PU4cGDRt+RRqQcjft1Wigiy4Y1y1SInCtcaP1hLejEJ/wKBgFAhvwKrGnBzctrB42JTUaJ9/eis7rg28tvUttjp/2nUIndlNt7r41vr3mj8TFHc1/43y4aVhO584THdTpvHkd0LkoKUjglmMsHCIGercZ02bOap5j1Y+XiGXxij995yjN6oi43U3qyAmosM+dYTITEU6JBVKhrGj/rhyTQlnF5pAoGBAKFGmo0mR/pbDbYD0xH6+VSLGCC+7VbIT+SkjUjBSdA0eOo2XUfvfGmj1C1HgbcZi1wRzJH/5CrbBdQmtc/d+QyZ3Q2NkpBXM8uwIWwDLH0gTzDzkZvc9rG8k70GWUrd+EI6Cf3FFjExj9wazqCjs/+IQr2Ijc97NbsKXYW4pOhHAoGAKf5wYk+cn0cVTsyAom0UbGD5Uijqh5732MeqFYs2Rcwx0OErJZo68COSFFF40hJmmIKn7p3qycIyd1FcYlXN1l4s8mEWTGTInRE0OlBU0+jLtIV9pwNgffpbPYcrWZU6s6YVeJ2nDwl+aD+4QvN0rkPTfho9kjgeyF3PW0I2u4E=";
    private final String driverPrivateKeyId = "859e85fb3aa4d18b4afaac3e24e8f65700da5cc9";
    private final String driverPrivateKey = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCmzL1BqSH+Zh9Fct5mXqe5sYOMTnJtOJhwKXnjjo2tNPXv4alzUHz8Vbj6nMar5u5IuKRZMeRBlhoRSFrLm+J1+sfvpH8N4wsnG7hDANknqWzdsk9a68qMHxNQF3hFzs9+KKrR1LAG8e9ytMfliN0kX+xls4uPZDPu1Q39K6V9KXrH/GrMA56i3TtWi7Hmakt5YTELeGjhx4nGrfuQLFFovs1Z9uJtf7E8R95+65StrOAmbJNf7VciEqwBpWYlU5VeyLXMg/oHwnTv2cjdcFozyDrlUHbDmtTiVeBBsYFVLyAsDGfl1p6eiVTiBBuo56YSYLWfaLgYvTyEcZ9jBQsfAgMBAAECggEAQzbTuObX3PT3+vtb5XKVMf33XY2rDJo2y1PbWzhxnO9vf3e22dIAW4qLnOmaIWFQeht1lr/FFCzRWk+Gzu+FJTemY8osrMLmFp9T9CQeXZ4nUXruAVxs5WQMW0Tp4W+CK3tlwmJrgJDzhYyV1Mf/HQ5Oa3kbbu/ZAY/3MCLrb/ClJQvD2rZSDdzAkNMQm8P2hsE71+rH7mI2hHrSCHl2OIp2A64QT8HjtyRc5yHZtTp6ZST1ge9SSIsT0ZfmXKtKF7yGEIPtKNU+oLrGyK5P30xBWJ/bwb3PEz2MZcPvz31+B2+UvZMm7OTkqfcRwEztAf8Ckiuo4im2BRYbVmd9OQKBgQDd0MeLxR+Qtv12bVA0bHtagFEq36THgWG7IM1/1vS4Cl9sveKSOS8A6oKLy624fGE7PKcuTTIzkVA81GXtWBQ9Coq/4TmllQkFTH7pz9C2PNHSCychPwNNV8qUx3lE3d4DOjGKgoVFD4l90AO7lOvmLTSc3pDpr+jSjUH4lqGrbQKBgQDAgXBmpXfCTxwqkBzGwxX+hwJen9qSkCM47qnQ1L4NnXPL6s0EN6rQ3FnFemGIzBUGJ2tajntkKlUu5DzsQeoBGu/SaSwgqD+1UQDcUyo+retmqZ+QYbpeyd3l53bLJJuJNsfak0X76Ft6hrm4julx6RGlmboQyx4kZWbhx4YNOwKBgEG9/2aNpi1eDwFqpLrk7CqGnYf3gP8gebbcoguhyiZB7MZuARkVmbjLyKVmWLa1JpxH/cTbXGWsS/u7d/pAgL8WwMjeGBfbdDD92x+xWEqq/AUlCRPxeSkTPBech3TBzWtndAd5Z8ZwNG/1lyWhnck63L0huhGI8Zh2BXeILaKBAoGAKK3xq69BvGztPc1QV2w4RJ4RER/kl14gI1LDzd52/veL1cabZk3BKfu2eLWg0MCXnMJNvEgpqQQNFiii+yX+phckIKma6pfDRrSEYwqr/azQ9tPXZTJRqOAtpPyhrNHikD9kQjsm6dGzKxQ3QNnqWOjwkrcGi6/wga5v7Dw2hqsCgYEA2T/kSNQ9dqpVBAkfi2J50hqnfFESPjKeirJJZllqhVqsiV0ly8a8Fz8SjGqTzrq+UErko+QmtSlo5h3Uq9Ln+0CwYfrUL+74q2zLHdS0DpY3QsGTEDJXTxCyy9kO26X2UsM3Ez3YUAkdMwdpVz0uVZtinv2735QZOBxoVQV2kQ8=";
    private final String consumerPrivateKeyId = "40acf82cbd5250de2f5123caff40738bdd403b08";
    private final String consumerPrivateKey = "MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDSwtbSBFgIXna6mWeKFWCK31NXUJH6uGduR1XrODGRedrqrTgr0BdNg8PDo6/zh/T+K0Svor6kgqpwnl9soOdn73oC4Nu+Ad7EiKa38j650jlZdLAr4hR0Ou9Kcnv45x/94auUO8jBz844cu24swLKiPsK9OnX65wVlKRfhhkGFuS/4OI76CmE7NqZDqPOW16o8tBO5TsgPVNkglFAU73fTp0kcHoLauT9QOB0+yZi39mnNXyU+2cL3Ylp5oaQCJpyssDRUqz/EiHa7FxUUgzCadG00+ePf5iYSnZKQRKWoOIawFvcCfcHx8GAl8Nn+79HtVQHB9hLsQ5+jqcdfKPfAgMBAAECggEAE9Ufz912xzrUY1TCKH1Ae3Dub732Lqihmv/9dsfv6ieUURcBvSW0u6eViVhi20DE7hH2QazH0cU18qkEg71UaTRgv9qW8vdMFiRhw9d4zZWZrfBMD6UTlahiEhhZ0B83pHVS5v0FNC+w0SEHe6Tks1hWfz5yrs3N/z3ghdihjC/5i1jeBoHXs1262SMazuwNGHblLApGPG+86taeFtbDI+31TKvZ8nomZHkEVFnARRUoBBcIwowRMqNfwlpcJhlz6kDWnoD08kHJ2zzJokozu7Lim+Ugt/MWwUOcA0hgq2QdymZFpkRkDl7tZmJtwTfTirjbGlpnPHVXEc1bWM7ocQKBgQD0LJ8e7JXf6bVFngq0jSJNKK7XDHYg0KhHXMApF59xxi29hdHXWPzgRJ45KkoUJc7MITpIJLXfCmi1XyDMf9m8lIf/oaqhJ7idYi7iAAPOJkdnHbSt0lebyjBWzCQ6OgS4NfF1+LEibTzRqiFs5K8EAyPYAVSTrpWoguoWtTzIGQKBgQDc9/I2PS+91Eb5RvuidTNsDqZJliTJQFlBjlDViFo3+l1N7jDFYwPBR/Tv4TVM5p9Zb+/Lo9X1pjDbm8QriTR4V+4HaLXkcCnmOsdSRInFUW4UIafwLX5ifjgfyaWgdKdn2UP1Lu/1qBN6GU1xjSfBQ6N3UqQiKkNPb7tuPJGqtwKBgQCQ4hU8vTclGMC14VQK1B/BVt1/vuYtDIJ9bZycBWdXlDc52LitpiDOVgjodJ5mHBT77M9vVVERWlTNIfgNP+OL0TptRZlAbJhP0p1s/oNDhFUj6211InVXfH54UkNAxYJdZ6yxynIYsma/JcsVmQ/8Ony/Q/LSempVBfEurjW1qQKBgQCQWPjFLdtOKqnildg0HFPnNvqx/38waPTluk5b76LgBpGFIyCBEVmWnacIPRpQjidyiYkggnp26oXoMC1KM2svYmGAPYr1G8CDQcqLl3JYkAVU6VeHsnBpbwLC4TttQkdJs8iNFohy9cUjcfwBPbDGs6TJghbuqqUl81uBe9e8qQKBgQDZm8T2KB34J7HAc5A+vqkmAo7mQLZg51OrzB1KnDU86pSAf0o3eSvfDUT6dpU9fRuZ1XYnbPnpoJwjFH3m4u9gqKF3PtVYfZyJrEqYwmhB9z6vd+dcsUlXM0fi37bGZkKBD0JGGt5OljM1qJG15x/LYfC/nwOmqWoOhNPCst2Z7w==";
    private final String provider = "i-go-odrd-testing";
    
    private final static String key = "AIzaSyCG6PsfkaCEc94VK2vIAZk1YYKvOS_Ewts";
    
    private final String SERVICE_ACCOUNT = "odrd-fleetengine-ondemandadmin@i-go-gcp.iam.gserviceaccount.com";
    private final String DRIVER_ACCOUNT = "odrd-fleetengine-driversdkuser@i-go-gcp.iam.gserviceaccount.com";
    private final String CONSUMER_ACCOUNT = "odrd-fleetengine-consumersdkus@i-go-gcp.iam.gserviceaccount.com";
    private final String provider = "i-go-gcp";
//    private final String SERVICE_ACCOUNT = "odrd-fleetengine-ondemandadmin@i-go-gcp.iam.gserviceaccount.com";
//
//    private final String DRIVER_ACCOUNT = "odrd-fleetengine-driversdkuser@i-go-gcp.iam.gserviceaccount.com";
//
//    private final String CONSUMER_ACCOUNT = "odrd-fleetengine-consumersdkus@i-go-gcp.iam.gserviceaccount.com";
//
//    private final String serverPrivateKeyId = "56d803e4689659cf087c0864d6216bb36b7c0740";
//
//    private final String serverPrivateKey = "MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDSS/aiWM1SybXt9EJx8ulLU5HJ7y1QVmUozcFypOehH3mTW7gJ1UGwHZxMpMaO3N2iRclWBHsMd4t6zYPn2Ao/leIOB2RQGcrWYu527gLrr+nXlfXkAXBBnsV55O1cbdnGK+CIF5UYGvpDkQTD3+7hATBl9kug8D5XpYfKFqnP2a5fEeJaXhPyc5z9eJjOWjJ9DfxGxf9M8Z2+/DAPxNqsML7IKw69jcmWpUoN9sJEx55jke8e4dbRFRcrRSHReThT5UW7HDkHeVtgMSh2b3MnrVYqBHLahJCXiiUdFwlwqaJWwTbXtZJVpvL4dpRbFiCrkEieerBaYajLmxlOJSvhAgMBAAECggEALyTgcZy+yuR1aJbtnmX6buyZLk/0NKJpozAdQfo+AxzvQF27cFjilPzOYVA/Qx+4f/xtGl9+xli2aB1SiNMh2Qdc2hBGKL7ffhhHpVnORc/1+GKh8S9xXwSc+Kqdm670tzx25YuD3RePKz6DdvXos4B0vSbt5XJ2R2fQfTl/cBzQju6u5QI2bVutxm+eaLXUfTVRi5N8EqW6deRAJxgn6VWOEOqBBAxgLaB90hJ9zjcDBDGurUXVumBQX4OVE6+4F1wyMNrjpFosSChJnCZ+ngSulPHHNUVnTeoXzTkp8EXb5o4B7sGoHGxFMGC8f7e5cfPPYtKmtv9s6WzZOshx0QKBgQD0+25fN1lLJxRJlBY+WymcRueEV0JKNGTgGVX0Yc6/1abyUO6mJD7yzhdvgm3/3CwWMOsnIG/+7gv7MAfwmVcs9UoebFl8z6VLzMD5GiuwCHoTRHsr9hTS38dSOr9l0/5s6n1LI4A6StWvolsVvwdM76nEBvNlRkfG3OV1crhaIwKBgQDbwS+2Xrr79cgYwktWnGCEmEDWAxTk3xZf6P/33/+9jnH49ahoEQZHltkRNpEx6axyd0qpEPmzo+xqZPirRdl+LYioF0Mt+mSaX5K5bJJ49FkqnQtUkdV9Zg0FotSxCeOFf5upaHQ7JrCdyvUBkFhEr1U+kcccEs8rB9b6oyZYKwKBgQDaEl7Df1+LGHRkst/CDiBSLoO0OICX0V/iZGsxKUeDWEpN9WEan7UxKeeOqYoFchYEgvMwVx2azof3x1+p+rWxHYAm6MgX5Db97HvywisVfdY9BH6oOVt8AxtIxWbO3BDlHy79DdL9ENR6jYmLKAr1n3l9N7q98fu+t6/CBqa4BQKBgQDOyb2CGSZPDntagQqv17sjSrpIKOIydJLzcafcstZOo4owQcpVEyAboaFlhzmeBEuX8xU4fpbaKji/7X/qe3IsP+DGfA1laKfedGz3O2mhlB2L8ffFfu2scKl0UkNezPVinC/4fChTuRadhWyEKjZFe8/1buw0SKbV0SzE8V2VvQKBgQCC0Vor+pLLkDVwlkg4fc0QNudepiEa61dRxdlWxy3BFfW/zUuP2x3y0jQYW/IAs7Z3xUqC4nHeOjJwELHgsc41YAP6kvyfAtwTddE3n03HmnlHqDKQ4uMCdJe2BQLBxmugL+yzV+YCW5sFTcRfGbEOI4OFRYoGm7Y6IiEyZGYDag==";
//
//    private final String driverPrivateKeyId = "95f1c08fd235d43abe7350fc860120f930467815";
//
//    private final String driverPrivateKey = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDZY/0BY/9RaTNrNxPnjbMVWl6RSGqYt+cJmAAcX3CEo276mNGGFNwzzsvsaSm2uspC8kelf1x+R0IEEfVKu7SoX2nso2C392iL3Z/lwH92r6LFD8l8IlNJ7g9fBxO6qa+v94a8BsYsj1bVDjS2Jw4PzQ5uwlTSawDlk6cQnOBCnXhDHSw4Zv51hGdYibv1LS7on9SF//0YBrfuL50lGVBgBkbjLv73eO4RRMv12YWeYntxuRqRjnD26VGcSWU2dQBlag17bioFPbd2NrpJWzDSAUTeOvu1Z5RX7QzrnICv/onz1vSJL/bzuuhBqJXt0KxdoDuoBc0AFq+tTxMcuc+DAgMBAAECggEABs9YDKQaSm2WO8SU7gsFUiTrk3eGR1Rze1x0nG7s8mrAPj9tSNr8bu8KelRtBxlg3qoCTo/n0Njgm4oIehfZN/ENO2l+zSSF9OOzb5oRJCGqYqv07tuQal93wc1R8+X+5+9EHD3GFX1EBhaU1iPxD9OnoRabW6AYfhibAi035T5ExtSZKF0eiiOgWQF7fljkcUoZliD3FXckK8qYhjgFLzyu0MXqDl49HfjaraQWL9dfuJq083hjivqBHdeY0krBa4VsWaaepwcnOGiHm2x7fJIpBYTrmToQGPB1MClXgeEhBCvP2DY2Hj3sqqwFKJcjgnCeTBA5/pO8V0O+6MAtcQKBgQD8YZnnw5KXg+s2vxYSEC0qXde1tMN6BziFCpp0hy02LcRLcsni7h+31++d9bPscuENadz2Lts4jTNwnc162B/TJHtP+VRBs1oVbpkAdouOXNU1mLRyy7NfuHbLfOtXDXE7J4Los63GeBt0AX4YNPuYQ3mBhW3mUHHNPs7AhIs4uQKBgQDcgfL/AXOmgZnglzp9phr6a0pxVlerSeNRUrcpQ3M41t9XaFLM8b6HX94DqsJ8n6bknnBV/gdDdwwIGvNKhcoNa/jbTRv9UAsBef49Ak8Vq3VudEsqQCkBP4B2+WmBBNuBQy9CUrIn8nPScjU8bhpFqKmQxqCfYn29hY8jxY90GwKBgQCw+a/2uUmePb8+0JglanqBbvTIUk2Q0Gdtw5WziObHSyiOz5uKKfjL7fv1BEp6z8PIqCdt6kWHTlx35/Ai6FLIuJhP6EKRH7dXuApKLNaHqclIoCBJL1ZFFREYeCx/CsoP9RDzJKwCtE5r9m/5gY27o/UcQfhivJ5Qkm5gyZDm4QKBgB1erZfrgJTn5C/21JKRwjwieDraTjkBUWauhrjXRAyJChxhR84GUONFEJQadWcV+KuwsrOxbxQ8UfzuYgNGCKB7Bh1nitfVhnG+5u8HVLNFMBHzKWPKQevpolm2ZKgLlpUD9tJ1o0cQ0v5vucl/vL4UdelTm2c/PhI1LNiN4sqLAoGATpugMjecjHvJwHG1Qk5dSIFt1ndc3MmYkLP+bAYMLDZmYbGlCv4Q+YuIyeoCpQNguWO9GqtquqM+yj0zoWn0BNTGhygqInBrLTwxzkfRQGGru0h9GsdhedkE7KJuJgOMYZIk7mZUKONK68CehQR6hYSHZ9a7VfljPpC5F1uuRCM=";
//
//    private final String consumerPrivateKeyId = "37eb9db5c3821cb8a13a15f86b2da194f4cb0959";
//
//    private final String consumerPrivateKey = "MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCeBruAMii4e7LrGNwSWMbeztzjJV9lUS9CIhWi142G/Ed9b58oa1CAM3ym794PRqtHRvdzLSWRKf3SFJjzYl7CMmkpTgsQoV8tCp/G/vITZcrD9BxYfocysnSDy9d/nleomC1PeUV6coZpGPIjwuxkXyQbH1CnTyGK5RAU2siCw4plLMz6WQyXXyCZOdCijsvSPgytDWveO8DGPIBO1VlHHIJIfrfgVCYgpaXd63GSPQEJ81GYfy5VtnuLHpc3kowq5blLqMFUU6eAzA20Jg3mCovv2idSNN6R5K1kNT3Eu5fsQWuthDqK0H2IeNulb8cCPnri62AH03kxl6xFwC6pAgMBAAECggEAETkH88TZDfeNXHTCfM1oKfMUZ+fe1HAGB93Ryy8ATGyabgqy/KNq4U4QkTEmBowxMVIuuJgnDAHY7q3dWElUV93z+tMiqZas2iqE7MSZ0DtmifdvpMVwKWUBsIuQL7yA2UMcom4ZKxXoSElhD+diqYh6VZUSzpP1QpS3LU6wTm/4IzN+kjfn7sAENk9+ff04VZjBC4yPANWO6gXmNZlGvFvbp6ChBb9PnPlB6dUUiLCGkb/B0jagfqP7ARrDArMcRpJZyYbPDEfxEqqADV28N4k2qOYUZYVmXBXf+Zip7G+rikXmgxn/G1nHLJgUAmc42TUos8P0YsZiVyboQYtU8QKBgQDRcLK70zIZOhMRmr9gTC2khSBA37ZVVtCiJb6G4TtFfH7KLdn8r8aNLauH90WCzQvk2m/KKFlt/q2UJyFatJx5LB4mYKAS7BPfoHYqsoqDMuMXtNpe6PO5/rx8h90pl60gouG2iw1QcOq5NKNVr2INYkItJhc8u99Lhw675hVVOwKBgQDBKA2e1KERO3cOn7muaJjWubMJ6mK0XtOLmTL8maILwJVO2H6rMOxoYum3txZjc+oTdFcyfv5TJZrihm3F2XoZ6Xe1F0OhiX97OgA/uDygQSDsiFdhJ90svbpGxDxtQtamhuu+8Wp1TpNu8ORdG+3gmsCkxivrPTs/MnJnfiu9awKBgGJ1QYDsyvtzAq3e+qKxjS9vafc1dAjwVAo2BjhwP6Xt3cj7/yM8GvIZiy7S/rl73WCLk8wMZeZAuKcSMirrBzgrlkziVb4vfzQ8wfBWmKkOzhVB7vp5NsK0TzWXxU+dP0U9bTCcc/jh7GZ+qV5JoaW7EHMbGgdyJoniBvosMtErAoGAKVRvraejmzNVI0zsBzScV32+oIWFf0C3FSy/qysYcFlR2WAbonfCbgeUKNpFMRyRXn5LViO0OYhXXtcSz/3b0YWSNq52qy7nly9u9DNwzX2CFPqLb99+xN8H57J/l4VwtosyEFZJyDX6+AcVZhLe0GtsgxVgOmKMtdYOgrSNmWcCgYBu3KiRwYPfQgyEYOwfQBOjoMmPUB8H/vtvFLRlHXxZF7hPAyKs4e9dQRW7vb61epVgMVz5t4E4pKHqxpZu+j7Tby+Z5fAgSPiniZUyVH9AYGCTyAYZogr5r21vhpcAZJ0P8hoE5R2jhnzu/mhr6CkWz8nCHsZ7+KBjcVILUYIS9g==";
//
//    private final String provider = "i-go-gcp";
    
    @Autowired
    private RedisUtil redisUtil;
@@ -80,22 +92,22 @@
    public Map<String, Object> fleetEngineAuth(int type, String id){
        try {
            //谷歌云服务器使用这部分代码
            AuthTokenMinter minter = AuthTokenMinter.builder()
                    //服务端签名
                    .setServerSigner(ImpersonatedSigner.create(SERVICE_ACCOUNT))
                    //司机端签名
                    .setDriverSigner(ImpersonatedSigner.create(DRIVER_ACCOUNT))
                    //乘客端签名
                    .setConsumerSigner(ImpersonatedSigner.create(CONSUMER_ACCOUNT))
                    .build();
//            AuthTokenMinter minter = AuthTokenMinter.builder()
//                    //服务端签名
//                    .setServerSigner(LocalSigner.create(SERVICE_ACCOUNT, serverPrivateKeyId, serverPrivateKey))
//                    .setServerSigner(ImpersonatedSigner.create(SERVICE_ACCOUNT))
//                    //司机端签名
//                    .setDriverSigner(LocalSigner.create(DRIVER_ACCOUNT, driverPrivateKeyId, driverPrivateKey))
//                    .setDriverSigner(ImpersonatedSigner.create(DRIVER_ACCOUNT))
//                    //乘客端签名
//                    .setConsumerSigner(LocalSigner.create(CONSUMER_ACCOUNT, consumerPrivateKeyId, consumerPrivateKey))
//                    .setConsumerSigner(ImpersonatedSigner.create(CONSUMER_ACCOUNT))
//                    .build();
            AuthTokenMinter minter = AuthTokenMinter.builder()
                    //服务端签名
                    .setServerSigner(LocalSigner.create(SERVICE_ACCOUNT, serverPrivateKeyId, serverPrivateKey))
                    //司机端签名
                    .setDriverSigner(LocalSigner.create(DRIVER_ACCOUNT, driverPrivateKeyId, driverPrivateKey))
                    //乘客端签名
                    .setConsumerSigner(LocalSigner.create(CONSUMER_ACCOUNT, consumerPrivateKeyId, consumerPrivateKey))
                    .build();
            
            String jwt = "";
            Long expirationTimestamp = 0L;
@@ -118,9 +130,7 @@
            map.put("token", jwt);
            map.put("expirationTimestamp", expirationTimestamp);
            return map;
        } catch (SigningTokenException e) {
            throw new RuntimeException(e);
        } catch (SignerInitializationException e) {
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
@@ -167,7 +177,7 @@
        
        JSONObject body = new JSONObject();
        body.put("vehicleState", "OFFLINE");
        body.put("supportedTripTypes", Arrays.asList("SHARED", "EXCLUSIVE"));
        body.put("supportedTripTypes", "EXCLUSIVE");
        body.put("maximumCapacity", maximumCapacity);
        
        JSONObject category = new JSONObject();
@@ -270,7 +280,7 @@
            licensePlate1.put("lastCharacter", getLastNumber(licensePlate));
            body.put("licensePlate", licensePlate1);
        }
        body.put("supportedTripTypes", Arrays.asList("SHARED", "EXCLUSIVE"));
        body.put("supportedTripTypes", "EXCLUSIVE");
        
        JSONObject category = new JSONObject();
        category.put("category", "TAXI");
@@ -449,7 +459,7 @@
            body.put("vehicleId", vehicleId);
        }
        body.put("tripStatus", "NEW");
        body.put("tripType", "SHARED");
        body.put("tripType", "EXCLUSIVE");
        body.put("numberOfPassengers", numberOfPassengers);
        
        JSONObject pickupPoint = new JSONObject();
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java
@@ -12,6 +12,7 @@
import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService;
import com.stylefeng.guns.modular.system.model.OrderPosition;
import com.stylefeng.guns.modular.system.util.GoogleMap.DistancematrixVo;
import com.stylefeng.guns.modular.system.util.GoogleMap.FleetEngineUtil;
import com.stylefeng.guns.modular.system.util.GoogleMap.GoogleMapUtil;
import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
@@ -25,6 +26,7 @@
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;
import javax.annotation.Resource;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/SMSUtil.java
@@ -281,29 +281,28 @@
    public boolean sendCellulantMessage(String toPhone, String msg){
        String url = "https://sms.nalosolutions.com/smsbackend/Cell_resl/send-message/";
        String url = "https://sms.nalosolutions.com/smsbackend/Resl_Nalo/send-message/";
        HttpRequest post = HttpUtil.createPost(url);
        post.contentType(ContentType.JSON.toString());
        JSONObject params = new JSONObject();
        params.put("key", "c_x7x5!v_1mhg(l34p05g2b@teheq)ex9mk1jj(u@nlfx_w5(rdx)tb_ttx22b3o");
        params.put("username", "I-GO");
        params.put("password", "abcd1234");
        params.put("password", "9wBolBiXskCuzSf");
        params.put("msisdn", toPhone);
        params.put("message", msg);
        params.put("sender_id", "I-GO");
        params.put("callback_url", "https://igo.i-go.group/driver/base/sendCellulantMessageCallback");
        params.put("callback_url", "https://igo.i-go.group/user/base/sendCellulantMessageCallback");
        params.put("validity", 1);
        post.body(params.toJSONString());
        System.err.println("短信请求:\n请求地址:" + url + "\n请求参数:" + params.toJSONString());
        HttpResponse execute = post.execute();
        String body = execute.body();
        execute.close();
        System.err.println("短信响应:" + body);
        JSONObject jsonObject = JSON.parseObject(body);
        System.err.println("短信响应:" + body);
        Integer status = jsonObject.getInteger("status");
        if(null != status && 1701 == status){
            return true;
        }else{
            System.err.println("短信发送失败:" + jsonObject.toJSONString());
            return false;
        }
    }
DriverIGOTravel/guns-admin/src/main/resources/application-produce.yml
@@ -1,5 +1,7 @@
server:
  port: 8007
  tomcat:
    basedir: /home/igotechgh/app/tomcat_basedir
guns:
  swagger-open: false              #是否开启swagger (true/false)
ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/TReportLossController.java
@@ -187,12 +187,12 @@
                    if(3 == language){
                        document.getElementById("chinese").remove();
                        document.getElementById("english").remove();
                        document.getElementsByTag("title").get(0).text("Soumis avec succès, veuillez attendre notre réponse.");
                        document.getElementsByTag("title").get(0).text("Solutions pour signaler les objets perdus");
                        Element french_user = document.getElementById("french_user");
                        french_user.text("Bonjour " + userInfo.getNickName() + ",");
                        Element french_content = document.getElementById("french_content");
                        french_content.text(info);
                        EmailUtil.send(userInfo.getEmail(), "Soumis avec succès, veuillez attendre notre réponse.",  document.html());
                        EmailUtil.send(userInfo.getEmail(), "Solutions pour signaler les objets perdus",  document.html());
                    }
                    //开始生成pdf收据和html收据
@@ -215,7 +215,7 @@
                    tEmail.setLink(link);
                    tEmail.setUserId(userInfo.getId());
                    tEmail.setType(1);
                    tEmail.setName(language == 1 ? "物品报失处理结果" : language == 2 ? "Solutions for reporting lost items" : "Soumis avec succès, veuillez attendre notre réponse");
                    tEmail.setName(language == 1 ? "物品报失处理结果" : language == 2 ? "Solutions for reporting lost items" : "Solutions pour signaler les objets perdus");
                    tEmail.setCreateTime(new Date());
                    int i = cn.hutool.core.date.DateUtil.dayOfWeek(new Date())-1;
                    tEmail.setWeek(EmailUtil.getWeek(2,i));
ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/SysCouponActivityController.java
@@ -234,8 +234,8 @@
                    String email = user.getEmail();
                    if(ToolUtil.isNotEmpty(email)){
                        Date expirationTime = userCouponRecord.getExpirationTime();
                        String e = com.stylefeng.guns.modular.system.util.DateUtil.conversionFormat(2, sdf.format(expirationTime));
                        String s = com.stylefeng.guns.modular.system.util.DateUtil.conversionFormat(2, sdf.format(new Date()));
                        String e = sdf.format(expirationTime);
                        String s = sdf.format(new Date());
                        sendEmail(user, sysCouponActivity.getNumber(), s, e, userCouponRecord.getFullMoney().doubleValue());
                    }
@@ -251,8 +251,8 @@
                    String email = tUser.getEmail();
                    if(ToolUtil.isNotEmpty(email)){
                        Date expirationTime = userCouponRecord.getExpirationTime();
                        String e = com.stylefeng.guns.modular.system.util.DateUtil.conversionFormat(2, sdf.format(expirationTime));
                        String s = com.stylefeng.guns.modular.system.util.DateUtil.conversionFormat(2, sdf.format(new Date()));
                        String e = sdf.format(expirationTime);
                        String s = sdf.format(new Date());
                        sendEmail(tUser, sysCouponActivity.getNumber(), s, e, userCouponRecord.getFullMoney().doubleValue());
                    }
ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCarController.java
@@ -6,10 +6,7 @@
import com.stylefeng.guns.core.base.tips.ErrorTip;
import com.stylefeng.guns.core.common.constant.factory.PageFactory;
import com.stylefeng.guns.core.shiro.ShiroKit;
import com.stylefeng.guns.core.util.DateUtil;
import com.stylefeng.guns.core.util.ExcelExportUtil;
import com.stylefeng.guns.core.util.SinataUtil;
import com.stylefeng.guns.core.util.WoUtil;
import com.stylefeng.guns.core.util.*;
import com.stylefeng.guns.modular.system.dao.CarInsuranceMapper;
import com.stylefeng.guns.modular.system.model.*;
import com.stylefeng.guns.modular.system.service.*;
@@ -627,6 +624,7 @@
        tCar = tCarService.selectById(tCar.getId());
        TDriver tDriver = tDriverService.selectById(tCar.getDriverId());
        if(null != tDriver && ToolUtil.isNotEmpty(tDriver.getEmail())){
        TCar finalTCar = tCar;
        new Thread(new Runnable() {
            @Override
@@ -635,18 +633,18 @@
                    Integer language = tDriver.getLanguage();
                    String path = templatePath +  "driver/index.html";
                    Document document = Jsoup.parse(new File(path), "UTF-8");
                    document.getElementById("chinese").remove();
                    document.getElementById("french").remove();
                    document.getElementById("invite1").remove();
                    document.getElementById("user1").remove();
                    document.getElementById("settle1").remove();
                    document.getElementById("pass1").remove();
                    document.getElementById("email1").remove();
                    document.getElementById("bill1").remove();
                    document.getElementById("reward1").remove();
                    document.getElementById("rewardToday1").remove();
                    document.getElementById("driverAudit1").remove();
                    if(1 == language){
                            document.getElementById("english").remove();
                            document.getElementById("french").remove();
                            document.getElementById("invite").remove();
                            document.getElementById("user").remove();
                            document.getElementById("settle").remove();
                            document.getElementById("pass").remove();
                            document.getElementById("email").remove();
                            document.getElementById("bill").remove();
                            document.getElementById("reward").remove();
                            document.getElementById("rewardToday").remove();
                            document.getElementById("driverAudit").remove();
                        document.getElementsByTag("title").get(0).text(2 == finalTCar.getAuthState() ? "车辆审核通过" : "车辆审核不通过");
                        Element car_audit1_user = document.getElementById("car_audit1_user");
                        car_audit1_user.text("Hello " + tDriver.getFirstName() + " " + tDriver.getLastName() + ",");
@@ -659,6 +657,17 @@
                        EmailUtil.send(tDriver.getEmail(), 2 == finalTCar.getAuthState() ? "车辆审核通过" : "车辆审核不通过",  document.html());
                    }
                    if(2 == language){
                            document.getElementById("chinese").remove();
                            document.getElementById("french").remove();
                            document.getElementById("invite1").remove();
                            document.getElementById("user1").remove();
                            document.getElementById("settle1").remove();
                            document.getElementById("pass1").remove();
                            document.getElementById("email1").remove();
                            document.getElementById("bill1").remove();
                            document.getElementById("reward1").remove();
                            document.getElementById("rewardToday1").remove();
                            document.getElementById("driverAudit1").remove();
                        document.getElementsByTag("title").get(0).text(2 == finalTCar.getAuthState() ? "Vehicle is verified and qualified" : "Vehicle is not verified and qualified");
                        Element car_audit2_user = document.getElementById("car_audit2_user");
                        car_audit2_user.text("Hello " + tDriver.getFirstName() + " " + tDriver.getLastName() + ",");
@@ -671,6 +680,17 @@
                        EmailUtil.send(tDriver.getEmail(), 2 == finalTCar.getAuthState() ? "Vehicle is verified and qualified" : "Vehicle is not verified and qualified",  document.html());
                    }
                    if(3 == language){
                            document.getElementById("chinese").remove();
                            document.getElementById("english").remove();
                            document.getElementById("invite2").remove();
                            document.getElementById("user2").remove();
                            document.getElementById("settle2").remove();
                            document.getElementById("pass2").remove();
                            document.getElementById("email2").remove();
                            document.getElementById("bill2").remove();
                            document.getElementById("reward2").remove();
                            document.getElementById("rewardToday2").remove();
                            document.getElementById("driverAudit2").remove();
                        document.getElementsByTag("title").get(0).text(2 == finalTCar.getAuthState() ? "Le véhicule est vérifié et qualifié" : "Le véhicule n’est pas vérifié et qualifié");
                        Element car_audit3_user = document.getElementById("car_audit3_user");
                        car_audit3_user.text("Bonjour " + tDriver.getFirstName() + " " + tDriver.getLastName() + ",");
@@ -687,6 +707,7 @@
                }
            }
        }).start();
        }
        return SUCCESS_TIP;
    }
ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderPrivateCarController.java
@@ -603,8 +603,8 @@
        OrderCancel orderCancel = new OrderCancel();
        orderCancel.setOrderId(tOrderPrivateCarId);
        orderCancel.setOrderType(1);
        orderCancel.setReason("The platform cancelled the order");
        orderCancel.setRemark("The platform cancelled the order");
        orderCancel.setReason(language == 1 ? "平台取消订单" : language == 2 ? "The platform cancelled the order" : "La plateforme a annulé la commande");
        orderCancel.setRemark(language == 1 ? "平台取消订单" : language == 2 ? "The platform cancelled the order" : "La plateforme a annulé la commande");
        orderCancel.setUserType(2);
        orderCancel.setState(2);
        orderCancel.setInsertTime(new Date());
ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TCar.java
@@ -60,6 +60,14 @@
     */
    private String carPhoto;
    /**
     * 保险照片
     */
    private String insurancePhoto;
    /**
     * 人车合影照片
     */
    private String peopleAndCarsPhone;
    /**
     * 车辆类型
     */
    private String vehicleType;
@@ -535,6 +543,22 @@
        this.driverId = driverId;
    }
    public String getPeopleAndCarsPhone() {
        return peopleAndCarsPhone;
    }
    public void setPeopleAndCarsPhone(String peopleAndCarsPhone) {
        this.peopleAndCarsPhone = peopleAndCarsPhone;
    }
    public String getInsurancePhoto() {
        return insurancePhoto;
    }
    public void setInsurancePhoto(String insurancePhoto) {
        this.insurancePhoto = insurancePhoto;
    }
    @Override
    protected Serializable pkVal() {
        return this.id;
ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserActivityDiscount1ServiceImpl.java
@@ -339,7 +339,7 @@
                            Element chinese_user = document1.getElementById("chinese_user");
                            chinese_user.text("您好 " + user.getNickName() + ",");
                            Element chinese_ride = document1.getElementById("chinese_ride");
                            chinese_ride.text("I-GO" + key + "打折活动奖励");
                            chinese_ride.text("I-GO" + (key.equals("ride") ? "打车" : "包裹") + "折扣活动奖励");
                            Element chinese_go = document1.getElementById("chinese_go");
                            if("ride".equals(key)){
                                chinese_go.text("去打车");
@@ -347,7 +347,7 @@
                                chinese_go.text("寄包裹");
                            }
                            Element chinese_discount = document1.getElementById("chinese_discount");
                            chinese_discount.text("每单费用折扣" + new BigDecimal((100 - aDouble)).setScale(2, RoundingMode.HALF_EVEN).doubleValue() + "%");
                            chinese_discount.text("每单费用折扣" + aDouble + "%");
                            EmailUtil.send(user.getEmail(), "折扣活动",  document1.html());
                        }
                        if(2 == language){
@@ -365,7 +365,7 @@
                                english_go.text("REQUEST A DELIVERY");
                            }
                            Element english_discount = document1.getElementById("english_discount");
                            english_discount.text(" Enjoy " + new BigDecimal((100 - aDouble)).setScale(2, RoundingMode.HALF_EVEN).doubleValue() + "% off your trip fare.");
                            english_discount.text(" Enjoy " + new BigDecimal(100).subtract(new BigDecimal(aDouble)).setScale(2, RoundingMode.HALF_EVEN).doubleValue() + "% off your trip fare.");
                            EmailUtil.send(user.getEmail(), "Discount activities",  document1.html());
                        }
                        if(3 == language){
@@ -373,9 +373,9 @@
                            document1.getElementById("english").remove();
                            document1.getElementsByTag("title").get(0).text("Activités à rabais");
                            Element french_user = document1.getElementById("french_user");
                            french_user.text("Hello " + user.getNickName() + ",");
                            french_user.text("Cher(ère) " + user.getNickName() + ",");
                            Element french_ride = document1.getElementById("french_ride");
                            french_ride.text("Remise pour I-GO (commande de " + key + ")!");
                            french_ride.text("Remise pour I-GO (commande de " + (key.equals("ride") ? "course" : "livraison") + ")!");
                            Element french_go = document1.getElementById("french_go");
                            if("ride".equals(key)){
                                french_go.text("Déplacez-vous avec I-GO");
@@ -383,7 +383,7 @@
                                french_go.text("Demander une livraison avec I-GO");
                            }
                            Element french_discount = document1.getElementById("french_discount");
                            french_discount.text("Profitez aujourd’hui de 10" + new BigDecimal((100 - aDouble)).setScale(2, RoundingMode.HALF_EVEN).doubleValue() + "% de réduction sur les commandes de course, allez sur la plate-forme I-GO pour voir le détail.");
                            french_discount.text("Profitez aujourd’hui de " + new BigDecimal(100).subtract(new BigDecimal(aDouble)).setScale(2, RoundingMode.HALF_EVEN).doubleValue() + "% de réduction sur les commandes de livraison, allez sur la plate-forme I-GO pour voir le détail.");
                            EmailUtil.send(user.getEmail(), "Activités à rabais",  document1.html());
                        }
                        //开始生成pdf收据和html收据
ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java
@@ -62,6 +62,18 @@
//
//    private final String CONSUMER_ACCOUNT = "odrd-fleetengine-consumersdkus@i-go-gcp.iam.gserviceaccount.com";
//
//    private final String serverPrivateKeyId = "56d803e4689659cf087c0864d6216bb36b7c0740";
//
//    private final String serverPrivateKey = "MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDSS/aiWM1SybXt9EJx8ulLU5HJ7y1QVmUozcFypOehH3mTW7gJ1UGwHZxMpMaO3N2iRclWBHsMd4t6zYPn2Ao/leIOB2RQGcrWYu527gLrr+nXlfXkAXBBnsV55O1cbdnGK+CIF5UYGvpDkQTD3+7hATBl9kug8D5XpYfKFqnP2a5fEeJaXhPyc5z9eJjOWjJ9DfxGxf9M8Z2+/DAPxNqsML7IKw69jcmWpUoN9sJEx55jke8e4dbRFRcrRSHReThT5UW7HDkHeVtgMSh2b3MnrVYqBHLahJCXiiUdFwlwqaJWwTbXtZJVpvL4dpRbFiCrkEieerBaYajLmxlOJSvhAgMBAAECggEALyTgcZy+yuR1aJbtnmX6buyZLk/0NKJpozAdQfo+AxzvQF27cFjilPzOYVA/Qx+4f/xtGl9+xli2aB1SiNMh2Qdc2hBGKL7ffhhHpVnORc/1+GKh8S9xXwSc+Kqdm670tzx25YuD3RePKz6DdvXos4B0vSbt5XJ2R2fQfTl/cBzQju6u5QI2bVutxm+eaLXUfTVRi5N8EqW6deRAJxgn6VWOEOqBBAxgLaB90hJ9zjcDBDGurUXVumBQX4OVE6+4F1wyMNrjpFosSChJnCZ+ngSulPHHNUVnTeoXzTkp8EXb5o4B7sGoHGxFMGC8f7e5cfPPYtKmtv9s6WzZOshx0QKBgQD0+25fN1lLJxRJlBY+WymcRueEV0JKNGTgGVX0Yc6/1abyUO6mJD7yzhdvgm3/3CwWMOsnIG/+7gv7MAfwmVcs9UoebFl8z6VLzMD5GiuwCHoTRHsr9hTS38dSOr9l0/5s6n1LI4A6StWvolsVvwdM76nEBvNlRkfG3OV1crhaIwKBgQDbwS+2Xrr79cgYwktWnGCEmEDWAxTk3xZf6P/33/+9jnH49ahoEQZHltkRNpEx6axyd0qpEPmzo+xqZPirRdl+LYioF0Mt+mSaX5K5bJJ49FkqnQtUkdV9Zg0FotSxCeOFf5upaHQ7JrCdyvUBkFhEr1U+kcccEs8rB9b6oyZYKwKBgQDaEl7Df1+LGHRkst/CDiBSLoO0OICX0V/iZGsxKUeDWEpN9WEan7UxKeeOqYoFchYEgvMwVx2azof3x1+p+rWxHYAm6MgX5Db97HvywisVfdY9BH6oOVt8AxtIxWbO3BDlHy79DdL9ENR6jYmLKAr1n3l9N7q98fu+t6/CBqa4BQKBgQDOyb2CGSZPDntagQqv17sjSrpIKOIydJLzcafcstZOo4owQcpVEyAboaFlhzmeBEuX8xU4fpbaKji/7X/qe3IsP+DGfA1laKfedGz3O2mhlB2L8ffFfu2scKl0UkNezPVinC/4fChTuRadhWyEKjZFe8/1buw0SKbV0SzE8V2VvQKBgQCC0Vor+pLLkDVwlkg4fc0QNudepiEa61dRxdlWxy3BFfW/zUuP2x3y0jQYW/IAs7Z3xUqC4nHeOjJwELHgsc41YAP6kvyfAtwTddE3n03HmnlHqDKQ4uMCdJe2BQLBxmugL+yzV+YCW5sFTcRfGbEOI4OFRYoGm7Y6IiEyZGYDag==";
//
//    private final String driverPrivateKeyId = "95f1c08fd235d43abe7350fc860120f930467815";
//
//    private final String driverPrivateKey = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDZY/0BY/9RaTNrNxPnjbMVWl6RSGqYt+cJmAAcX3CEo276mNGGFNwzzsvsaSm2uspC8kelf1x+R0IEEfVKu7SoX2nso2C392iL3Z/lwH92r6LFD8l8IlNJ7g9fBxO6qa+v94a8BsYsj1bVDjS2Jw4PzQ5uwlTSawDlk6cQnOBCnXhDHSw4Zv51hGdYibv1LS7on9SF//0YBrfuL50lGVBgBkbjLv73eO4RRMv12YWeYntxuRqRjnD26VGcSWU2dQBlag17bioFPbd2NrpJWzDSAUTeOvu1Z5RX7QzrnICv/onz1vSJL/bzuuhBqJXt0KxdoDuoBc0AFq+tTxMcuc+DAgMBAAECggEABs9YDKQaSm2WO8SU7gsFUiTrk3eGR1Rze1x0nG7s8mrAPj9tSNr8bu8KelRtBxlg3qoCTo/n0Njgm4oIehfZN/ENO2l+zSSF9OOzb5oRJCGqYqv07tuQal93wc1R8+X+5+9EHD3GFX1EBhaU1iPxD9OnoRabW6AYfhibAi035T5ExtSZKF0eiiOgWQF7fljkcUoZliD3FXckK8qYhjgFLzyu0MXqDl49HfjaraQWL9dfuJq083hjivqBHdeY0krBa4VsWaaepwcnOGiHm2x7fJIpBYTrmToQGPB1MClXgeEhBCvP2DY2Hj3sqqwFKJcjgnCeTBA5/pO8V0O+6MAtcQKBgQD8YZnnw5KXg+s2vxYSEC0qXde1tMN6BziFCpp0hy02LcRLcsni7h+31++d9bPscuENadz2Lts4jTNwnc162B/TJHtP+VRBs1oVbpkAdouOXNU1mLRyy7NfuHbLfOtXDXE7J4Los63GeBt0AX4YNPuYQ3mBhW3mUHHNPs7AhIs4uQKBgQDcgfL/AXOmgZnglzp9phr6a0pxVlerSeNRUrcpQ3M41t9XaFLM8b6HX94DqsJ8n6bknnBV/gdDdwwIGvNKhcoNa/jbTRv9UAsBef49Ak8Vq3VudEsqQCkBP4B2+WmBBNuBQy9CUrIn8nPScjU8bhpFqKmQxqCfYn29hY8jxY90GwKBgQCw+a/2uUmePb8+0JglanqBbvTIUk2Q0Gdtw5WziObHSyiOz5uKKfjL7fv1BEp6z8PIqCdt6kWHTlx35/Ai6FLIuJhP6EKRH7dXuApKLNaHqclIoCBJL1ZFFREYeCx/CsoP9RDzJKwCtE5r9m/5gY27o/UcQfhivJ5Qkm5gyZDm4QKBgB1erZfrgJTn5C/21JKRwjwieDraTjkBUWauhrjXRAyJChxhR84GUONFEJQadWcV+KuwsrOxbxQ8UfzuYgNGCKB7Bh1nitfVhnG+5u8HVLNFMBHzKWPKQevpolm2ZKgLlpUD9tJ1o0cQ0v5vucl/vL4UdelTm2c/PhI1LNiN4sqLAoGATpugMjecjHvJwHG1Qk5dSIFt1ndc3MmYkLP+bAYMLDZmYbGlCv4Q+YuIyeoCpQNguWO9GqtquqM+yj0zoWn0BNTGhygqInBrLTwxzkfRQGGru0h9GsdhedkE7KJuJgOMYZIk7mZUKONK68CehQR6hYSHZ9a7VfljPpC5F1uuRCM=";
//
//    private final String consumerPrivateKeyId = "37eb9db5c3821cb8a13a15f86b2da194f4cb0959";
//
//    private final String consumerPrivateKey = "MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCeBruAMii4e7LrGNwSWMbeztzjJV9lUS9CIhWi142G/Ed9b58oa1CAM3ym794PRqtHRvdzLSWRKf3SFJjzYl7CMmkpTgsQoV8tCp/G/vITZcrD9BxYfocysnSDy9d/nleomC1PeUV6coZpGPIjwuxkXyQbH1CnTyGK5RAU2siCw4plLMz6WQyXXyCZOdCijsvSPgytDWveO8DGPIBO1VlHHIJIfrfgVCYgpaXd63GSPQEJ81GYfy5VtnuLHpc3kowq5blLqMFUU6eAzA20Jg3mCovv2idSNN6R5K1kNT3Eu5fsQWuthDqK0H2IeNulb8cCPnri62AH03kxl6xFwC6pAgMBAAECggEAETkH88TZDfeNXHTCfM1oKfMUZ+fe1HAGB93Ryy8ATGyabgqy/KNq4U4QkTEmBowxMVIuuJgnDAHY7q3dWElUV93z+tMiqZas2iqE7MSZ0DtmifdvpMVwKWUBsIuQL7yA2UMcom4ZKxXoSElhD+diqYh6VZUSzpP1QpS3LU6wTm/4IzN+kjfn7sAENk9+ff04VZjBC4yPANWO6gXmNZlGvFvbp6ChBb9PnPlB6dUUiLCGkb/B0jagfqP7ARrDArMcRpJZyYbPDEfxEqqADV28N4k2qOYUZYVmXBXf+Zip7G+rikXmgxn/G1nHLJgUAmc42TUos8P0YsZiVyboQYtU8QKBgQDRcLK70zIZOhMRmr9gTC2khSBA37ZVVtCiJb6G4TtFfH7KLdn8r8aNLauH90WCzQvk2m/KKFlt/q2UJyFatJx5LB4mYKAS7BPfoHYqsoqDMuMXtNpe6PO5/rx8h90pl60gouG2iw1QcOq5NKNVr2INYkItJhc8u99Lhw675hVVOwKBgQDBKA2e1KERO3cOn7muaJjWubMJ6mK0XtOLmTL8maILwJVO2H6rMOxoYum3txZjc+oTdFcyfv5TJZrihm3F2XoZ6Xe1F0OhiX97OgA/uDygQSDsiFdhJ90svbpGxDxtQtamhuu+8Wp1TpNu8ORdG+3gmsCkxivrPTs/MnJnfiu9awKBgGJ1QYDsyvtzAq3e+qKxjS9vafc1dAjwVAo2BjhwP6Xt3cj7/yM8GvIZiy7S/rl73WCLk8wMZeZAuKcSMirrBzgrlkziVb4vfzQ8wfBWmKkOzhVB7vp5NsK0TzWXxU+dP0U9bTCcc/jh7GZ+qV5JoaW7EHMbGgdyJoniBvosMtErAoGAKVRvraejmzNVI0zsBzScV32+oIWFf0C3FSy/qysYcFlR2WAbonfCbgeUKNpFMRyRXn5LViO0OYhXXtcSz/3b0YWSNq52qy7nly9u9DNwzX2CFPqLb99+xN8H57J/l4VwtosyEFZJyDX6+AcVZhLe0GtsgxVgOmKMtdYOgrSNmWcCgYBu3KiRwYPfQgyEYOwfQBOjoMmPUB8H/vtvFLRlHXxZF7hPAyKs4e9dQRW7vb61epVgMVz5t4E4pKHqxpZu+j7Tby+Z5fAgSPiniZUyVH9AYGCTyAYZogr5r21vhpcAZJ0P8hoE5R2jhnzu/mhr6CkWz8nCHsZ7+KBjcVILUYIS9g==";
//
//    private final String provider = "i-go-gcp";
    
    @Autowired
@@ -77,22 +89,22 @@
    public Map<String, Object> fleetEngineAuth(int type, String id) {
        try {
            //谷歌云服务器使用这部分代码
            AuthTokenMinter minter = AuthTokenMinter.builder()
                    //服务端签名
                    .setServerSigner(ImpersonatedSigner.create(SERVICE_ACCOUNT))
                    //司机端签名
                    .setDriverSigner(ImpersonatedSigner.create(DRIVER_ACCOUNT))
                    //乘客端签名
                    .setConsumerSigner(ImpersonatedSigner.create(CONSUMER_ACCOUNT))
                    .build();
//            AuthTokenMinter minter = AuthTokenMinter.builder()
//                    //服务端签名
//                    .setServerSigner(LocalSigner.create(SERVICE_ACCOUNT, serverPrivateKeyId, serverPrivateKey))
//                    .setServerSigner(ImpersonatedSigner.create(SERVICE_ACCOUNT))
//                    //司机端签名
//                    .setDriverSigner(LocalSigner.create(DRIVER_ACCOUNT, driverPrivateKeyId, driverPrivateKey))
//                    .setDriverSigner(ImpersonatedSigner.create(DRIVER_ACCOUNT))
//                    //乘客端签名
//                    .setConsumerSigner(LocalSigner.create(CONSUMER_ACCOUNT, consumerPrivateKeyId, consumerPrivateKey))
//                    .setConsumerSigner(ImpersonatedSigner.create(CONSUMER_ACCOUNT))
//                    .build();
            AuthTokenMinter minter = AuthTokenMinter.builder()
                    //服务端签名
                    .setServerSigner(LocalSigner.create(SERVICE_ACCOUNT, serverPrivateKeyId, serverPrivateKey))
                    //司机端签名
                    .setDriverSigner(LocalSigner.create(DRIVER_ACCOUNT, driverPrivateKeyId, driverPrivateKey))
                    //乘客端签名
                    .setConsumerSigner(LocalSigner.create(CONSUMER_ACCOUNT, consumerPrivateKeyId, consumerPrivateKey))
                    .build();
            
            String jwt = "";
            Long expirationTimestamp = 0L;
@@ -115,9 +127,7 @@
            map.put("token", jwt);
            map.put("expirationTimestamp", expirationTimestamp);
            return map;
        } catch (SigningTokenException e) {
            throw new RuntimeException(e);
        } catch (SignerInitializationException e) {
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
@@ -161,7 +171,7 @@
        
        JSONObject body = new JSONObject();
        body.put("vehicleState", "OFFLINE");
        body.put("supportedTripTypes", Arrays.asList("SHARED", "EXCLUSIVE"));
        body.put("supportedTripTypes", "EXCLUSIVE");
        body.put("maximumCapacity", maximumCapacity);
        
        JSONObject category = new JSONObject();
@@ -292,7 +302,7 @@
            licensePlate1.put("lastCharacter", getLastNumber(licensePlate));
            body.put("licensePlate", licensePlate1);
        }
        body.put("supportedTripTypes", Arrays.asList("SHARED", "EXCLUSIVE"));
        body.put("supportedTripTypes", "EXCLUSIVE");
        
        JSONObject category = new JSONObject();
        category.put("category", "TAXI");
@@ -473,7 +483,7 @@
            body.put("vehicleId", vehicleId);
        }
        body.put("tripStatus", "NEW");
        body.put("tripType", "SHARED");
        body.put("tripType", "EXCLUSIVE");
        body.put("numberOfPassengers", numberOfPassengers);
        
        JSONObject pickupPoint = new JSONObject();
ManagementIGOTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCar/tCar_add.html
@@ -123,11 +123,12 @@
                        @}
                    </#select>
                    <#input id="carLicensePlate" name="车牌号" />
                    <#avatar id="carPhoto" name="车辆照片:" />
                    <#avatar id="peopleAndCarsPhone" name="车辆照片:" />
                    <#input id="drivingLicenseNumber" name="roadworthiness sticker" />
                    <#avatar id="drivingLicensePhoto" name="roadworthiness sticker照片:" />
                    <#input id="annualInspectionTime" name="年检到期时间" type="text"/>
                    <#input id="commercialInsuranceTime" name="商业保险到期时间" type="text"/>
                    <#avatar id="insurancePhoto" name="保险照片:" />
                    <#input id="plateColor" name="车牌颜色" />
                    <#input id="vehicleType" name="车辆类型" />
                    <#input id="ownerName" name="车辆所有人" />
ManagementIGOTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCar/tCar_edit.html
@@ -128,11 +128,12 @@
                        @}
                    </#select>
                    <#input id="carLicensePlate" name="车牌号" value="${item.carLicensePlate}"/>
                    <#avatar id="carPhoto" name="车辆照片:" avatarImg="${item.carPhoto}"/>
                    <#avatar id="peopleAndCarsPhone" name="车辆照片:" avatarImg="${item.peopleAndCarsPhone}"/>
                    <#input id="drivingLicenseNumber" name="roadworthiness sticker" value="${item.drivingLicenseNumber}"/>
                    <#avatar id="drivingLicensePhoto" name="roadworthiness sticker照片:" avatarImg="${item.drivingLicensePhoto}"/>
                    <#input id="annualInspectionTime" name="年检到期时间" type="text" value="${item.annualInspectionTime}"/>
                    <#input id="commercialInsuranceTime" name="商业保险到期时间" type="text" value="${item.commercialInsuranceTime}"/>
                    <#avatar id="insurancePhoto" name="保险照片:" avatarImg="${item.insurancePhoto}"/>
                    <#input id="plateColor" name="车牌颜色" value="${item.plateColor}"/>
                    <#input id="vehicleType" name="车辆类型" value="${item.vehicleType}"/>
                    <#input id="ownerName" name="车辆所有人" value="${item.ownerName}"/>
ManagementIGOTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSystemPrice/tSmallPrice_add.html
@@ -16,7 +16,7 @@
                            <select class="form-control" id="serverCarModelId" name="serverCarModelId"  style="width: 200px;">
                                <option value="">选择车型</option>
                                @for(obj in modelList!){
                                <option value="${obj.id}">${obj.name}</option>
                                <option value="${obj.id}">${obj.chineseName}</option>
                                @}
                            </select>
                        </div>
ManagementIGOTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSystemPrice/tSmallPrice_edit.html
@@ -16,7 +16,7 @@
                            <select class="form-control" id="serverCarModelId" name="serverCarModelId" disabled  style="width: 200px;">
                                <option value="">选择车型</option>
                                @for(obj in modelList!){
                                <option value="${obj.id}" ${obj.id == item.serverCarModelId ? 'selected=selected' : ''}>${obj.name}</option>
                                <option value="${obj.id}" ${obj.id == item.serverCarModelId ? 'selected=selected' : ''}>${obj.chineseName}</option>
                                @}
                            </select>
                        </div>
ManagementIGOTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSystemPrice/tSystemPrice_add.html
@@ -16,7 +16,7 @@
                            <select class="form-control" id="serverCarModelId" name="serverCarModelId"  style="width: 200px;">
                                <option value="">选择车型</option>
                                @for(obj in modelList!){
                                <option value="${obj.id}">${obj.name}</option>
                                <option value="${obj.id}">${obj.chineseName}</option>
                                @}
                            </select>
                        </div>
ManagementIGOTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSystemPrice/tSystemPrice_edit.html
@@ -16,7 +16,7 @@
                            <select class="form-control" id="serverCarModelId" name="serverCarModelId" disabled  style="width: 200px;">
                                <option value="">选择车型</option>
                                @for(obj in modelList!){
                                <option value="${obj.id}" ${obj.id == item.serverCarModelId ? 'selected=selected' : ''}>${obj.name}</option>
                                <option value="${obj.id}" ${obj.id == item.serverCarModelId ? 'selected=selected' : ''}>${obj.chineseName}</option>
                                @}
                            </select>
                        </div>
ManagementIGOTravel/guns-admin/src/main/webapp/static/modular/system/tCar/tCar.js
@@ -107,12 +107,12 @@
                return btn;
            }
        },
        {title: '车辆照片', field: 'carPhoto', visible: true, align: 'center', valign: 'middle',width:'8%',
        {title: '车辆照片', field: 'peopleAndCarsPhone', visible: true, align: 'center', valign: 'middle',width:'8%',
            formatter: function (value, row) {
                if (row.carPhoto == null || row.carPhoto == '') {
                if (row.peopleAndCarsPhone == null || row.peopleAndCarsPhone == '') {
                    return '<a class = "view"  href="javascript:void(0)"><img style="width: 50px;height:50px;" src="' + Feng.ctxPath + '/static/img/NoPIC.png" /></a>';
                } else {
                    return '<a class = "view"  href="javascript:void(0)"><img style="width: 90px;height:50px;" src="' + row.carPhoto + '" /></a>';
                    return '<a class = "view"  href="javascript:void(0)"><img style="width: 90px;height:50px;" src="' + row.peopleAndCarsPhone + '" /></a>';
                }
            },
            events: 'operateEvents'
@@ -173,6 +173,15 @@
                }
                return btn;
            }
        },
        {title: '保险照片', field: 'insurancePhoto', visible: true, align: 'center', valign: 'middle',width:'8%',
            formatter: function (value, row) {
                if (row.insurancePhoto == null || row.insurancePhoto == '') {
                    return '<a class = "view"  href="javascript:void(0)"><img style="width: 50px;height:50px;" src="' + Feng.ctxPath + '/static/img/NoPIC.png" /></a>';
                } else {
                    return '<a class = "view"  href="javascript:void(0)"><img style="width: 90px;height:50px;" src="' + row.insurancePhoto + '" /></a>';
                }
            },
        }
    ];
};
ManagementIGOTravel/guns-admin/src/main/webapp/static/modular/system/tCar/tCarAuth.js
@@ -107,12 +107,12 @@
                return btn;
            }
        },
        {title: '车辆照片', field: 'carPhoto', visible: true, align: 'center', valign: 'middle',width:'8%',
        {title: '车辆照片', field: 'peopleAndCarsPhone', visible: true, align: 'center', valign: 'middle',width:'8%',
            formatter: function (value, row) {
                if (row.carPhoto == null || row.carPhoto == '') {
                if (row.peopleAndCarsPhone == null || row.peopleAndCarsPhone == '') {
                    return '<a class = "view"  href="javascript:void(0)"><img style="width: 50px;height:50px;" src="' + Feng.ctxPath + '/static/img/NoPIC.png" /></a>';
                } else {
                    return '<a class = "view"  href="javascript:void(0)"><img style="width: 90px;height:50px;" src="' + row.carPhoto + '" /></a>';
                    return '<a class = "view"  href="javascript:void(0)"><img style="width: 90px;height:50px;" src="' + row.peopleAndCarsPhone + '" /></a>';
                }
            },
            events: 'operateEvents'
@@ -173,6 +173,15 @@
                }
                return btn;
            }
        },
        {title: '保险照片', field: 'insurancePhoto', visible: true, align: 'center', valign: 'middle',width:'8%',
            formatter: function (value, row) {
                if (row.insurancePhoto == null || row.insurancePhoto == '') {
                    return '<a class = "view"  href="javascript:void(0)"><img style="width: 50px;height:50px;" src="' + Feng.ctxPath + '/static/img/NoPIC.png" /></a>';
                } else {
                    return '<a class = "view"  href="javascript:void(0)"><img style="width: 90px;height:50px;" src="' + row.insurancePhoto + '" /></a>';
                }
            },
        }
    ];
};
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java
@@ -3297,7 +3297,7 @@
        BaseWarpper baseWarpper = new BaseWarpper();
        double amount = 0;
        CancleOrder query = cancleOrderService.query(orderLogistics.getCompanyId());
        if(null == query || null == orderLogistics.getDriverId()){
        if(null == query || null == orderLogistics.getDriverId() || orderLogistics.getState() == 11){
            baseWarpper.setAmount(amount);
            return ResultUtil.success(baseWarpper);
        }
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -653,7 +653,7 @@
        BaseWarpper baseWarpper = new BaseWarpper();
        double amount = 0;
        CancleOrder query = cancleOrderService.query(orderPrivateCar.getCompanyId());
        if(null == query || null == orderPrivateCar.getDriverId()){
        if(null == query || null == orderPrivateCar.getDriverId() || orderPrivateCar.getState() == 11){
            baseWarpper.setAmount(amount);
            return ResultUtil.success(baseWarpper);
        }
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/KaptchaController.java
@@ -29,7 +29,7 @@
 * @date 2017-05-05 23:10
 */
@Controller
@RequestMapping("/kaptcha")
@RequestMapping("/base/kaptcha")
public class KaptchaController {
    @Autowired
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReportLossServiceImpl.java
@@ -104,9 +104,9 @@
                        if(language == 1){
                            document.getElementById("english").remove();
                            document.getElementById("french").remove();
                            document.getElementsByTag("title").get(0).text("物品报失");
                            Element english_user = document.getElementById("chinese_user");
                            english_user.text("您好 " + userInfo.getNickName() + ",");
                            document.getElementsByTag("title").get(0).text("报失物品");
                            Element chinese_user = document.getElementById("chinese_user");
                            chinese_user.text("您好 " + userInfo.getNickName() + ",");
                        }
                        if(language == 2){
                            document.getElementById("chinese").remove();
@@ -119,8 +119,8 @@
                            document.getElementById("chinese").remove();
                            document.getElementById("english").remove();
                            document.getElementsByTag("title").get(0).text("Signaler l'objet perdu");
                            Element english_user = document.getElementById("french_user");
                            english_user.text("Bonjour! " + userInfo.getNickName() + ",");
                            Element french_user = document.getElementById("french_user");
                            french_user.text("Bonjour! " + userInfo.getNickName() + ",");
                        }
                        EmailUtil.send(userInfo.getEmail(), language == 1 ? "物品报失" : language == 2 ? "Report items lost" : "Signaler l'objet perdu",  document.html());
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java
@@ -143,10 +143,11 @@
            redisUtil.setStrValue(phone, authCode, 5 * 60);//设置五分钟过期
            switch (language){
                case 1:
                    sms = "您的验证码为:" + authCode + ",该验证码5分钟内有效,请勿泄漏于他人!";
//                    sms = "您的验证码为:" + authCode + ",该验证码5分钟内有效,请勿泄漏于他人!";
                    sms = "Your verification code is " + authCode + ", it is valid within 5 minutes, please do not reveal it to others.";
                    break;
                case 2:
                    sms = "Your verification code is " + authCode + ",it is valid within 5 minutes, please do not reveal it to others.";
                    sms = "Your verification code is " + authCode + ", it is valid within 5 minutes, please do not reveal it to others.";
                    break;
                case 3:
                    sms = "Votre code de validation est " + authCode + " et il est valide pendant 5 minutes. Veuillez ne pas le révéler à d’autres personnes.";
@@ -2281,7 +2282,7 @@
                uar.setLavePrice(new BigDecimal(lavePrice).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                userActivityRegisteredService.updateById(uar);
                if(ToolUtil.isNotEmpty(userInfo.getEmail())){
                if(0 < num && ToolUtil.isNotEmpty(userInfo.getEmail())){
                    String path1 = templatePath +  "user/coupon.html";
                    Document document1 = Jsoup.parse(new File(path1), "UTF-8");
                    if(language == 1){
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java
@@ -33,33 +33,45 @@
    
    static Logger logger = LoggerFactory.getLogger(FleetEngineUtil.class);
    
//    private final String SERVICE_ACCOUNT = "odrd-fleetengine-ondemandadmin@i-go-odrd-testing.iam.gserviceaccount.com";
//
//    private final String DRIVER_ACCOUNT = "odrd-fleetengine-driversdkuser@i-go-odrd-testing.iam.gserviceaccount.com";
//
//    private final String CONSUMER_ACCOUNT = "odrd-fleetengine-consumersdkus@i-go-odrd-testing.iam.gserviceaccount.com";
//
//    private final String serverPrivateKeyId = "254e18eefa9fdcca64d5899cdcd793d466c47c7d";
//
//    private final String serverPrivateKey = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCfbNAWnukqLKIxItqmSABxsH5glySEHJ2gfL5KsRF0M02e0Z8/KNKZkoh7I6bOMt1fEtttFaWOeq70IdI2WAd5wVazL3upvl5FW4P08ly33LklfGyLljlJ7ChPny9x6OjAaiS0yD9fh7NWti7rZKU7gzcGL8HddNYXgXV5OajvoG3TGdu52WTxce9AUzU6gLPboz/RbGqrdrmgVJVb0EPlhTJf/NSsaiW4NoL8SEzf/pJGYBmqJs97mXwCHTY4avaC+CP/zz9yS8AQEJlApbVT6lSOhYoR0hNOBj5B886EZOssjubO6hQaiwRnGrV2RdpHynqA1iekfGpUGEtWTsqjAgMBAAECggEALyPbMd0iP8y71sCiG4nty7Au5ju62e+mMkbAc9CAwzXKTVxZdLEK+MsJ3TNxBsami47FYC+G6SbgpaJ8iIImD7v5+XjgXZRDRsnlLmAdx2YWPv3YELxGS1PvpX+B5XJDpGWeXfBaQNKc1lZ/cC4t53eIpSUo82UxSvkGNea1S8lR6vIByhNyCQOvLG4yqaxUy0hZi0kge37XrjYMGS+BivBBnDiVlBPLBVbrNBxOf31Lzz+XX0iwXX7Zl2jN759oe0xQyuIGWUSj8xBDIF8nNaJrla7rWVml3sZJh6/3r1Acj0mhZtE0ZMu5hiPGiIXgb1ng30j3dMP4yVPhXrpAtQKBgQDaU01VnHsnHxc0DQHE2vEOPGmPxVS0/JAssePAEUmKEueUogGef91YY+Vm/ItbhLwGjbytnXxe88zRAdB1u07efZ83ey93TrGl2CJUzLHIcgb+Q1tT642rqlfl+q8ep86hcZ+63pDiIPt2Z+HkbKIR0SWf5LIH4flquQOTQufXXQKBgQC674qDsjOJepZjMMN6PkVMcWBYDNmXHnqa5Oto0rZM745UulbXqEFGuBOsXPU7O33Kfz1vbtoluubKZi5B6cFNnPypE2SCfvdObHq4FuTuKPV6lN93SyhZchmSEXEs0PU4cGDRt+RRqQcjft1Wigiy4Y1y1SInCtcaP1hLejEJ/wKBgFAhvwKrGnBzctrB42JTUaJ9/eis7rg28tvUttjp/2nUIndlNt7r41vr3mj8TFHc1/43y4aVhO584THdTpvHkd0LkoKUjglmMsHCIGercZ02bOap5j1Y+XiGXxij995yjN6oi43U3qyAmosM+dYTITEU6JBVKhrGj/rhyTQlnF5pAoGBAKFGmo0mR/pbDbYD0xH6+VSLGCC+7VbIT+SkjUjBSdA0eOo2XUfvfGmj1C1HgbcZi1wRzJH/5CrbBdQmtc/d+QyZ3Q2NkpBXM8uwIWwDLH0gTzDzkZvc9rG8k70GWUrd+EI6Cf3FFjExj9wazqCjs/+IQr2Ijc97NbsKXYW4pOhHAoGAKf5wYk+cn0cVTsyAom0UbGD5Uijqh5732MeqFYs2Rcwx0OErJZo68COSFFF40hJmmIKn7p3qycIyd1FcYlXN1l4s8mEWTGTInRE0OlBU0+jLtIV9pwNgffpbPYcrWZU6s6YVeJ2nDwl+aD+4QvN0rkPTfho9kjgeyF3PW0I2u4E=";
//
//    private final String driverPrivateKeyId = "859e85fb3aa4d18b4afaac3e24e8f65700da5cc9";
//
//    private final String driverPrivateKey = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCmzL1BqSH+Zh9Fct5mXqe5sYOMTnJtOJhwKXnjjo2tNPXv4alzUHz8Vbj6nMar5u5IuKRZMeRBlhoRSFrLm+J1+sfvpH8N4wsnG7hDANknqWzdsk9a68qMHxNQF3hFzs9+KKrR1LAG8e9ytMfliN0kX+xls4uPZDPu1Q39K6V9KXrH/GrMA56i3TtWi7Hmakt5YTELeGjhx4nGrfuQLFFovs1Z9uJtf7E8R95+65StrOAmbJNf7VciEqwBpWYlU5VeyLXMg/oHwnTv2cjdcFozyDrlUHbDmtTiVeBBsYFVLyAsDGfl1p6eiVTiBBuo56YSYLWfaLgYvTyEcZ9jBQsfAgMBAAECggEAQzbTuObX3PT3+vtb5XKVMf33XY2rDJo2y1PbWzhxnO9vf3e22dIAW4qLnOmaIWFQeht1lr/FFCzRWk+Gzu+FJTemY8osrMLmFp9T9CQeXZ4nUXruAVxs5WQMW0Tp4W+CK3tlwmJrgJDzhYyV1Mf/HQ5Oa3kbbu/ZAY/3MCLrb/ClJQvD2rZSDdzAkNMQm8P2hsE71+rH7mI2hHrSCHl2OIp2A64QT8HjtyRc5yHZtTp6ZST1ge9SSIsT0ZfmXKtKF7yGEIPtKNU+oLrGyK5P30xBWJ/bwb3PEz2MZcPvz31+B2+UvZMm7OTkqfcRwEztAf8Ckiuo4im2BRYbVmd9OQKBgQDd0MeLxR+Qtv12bVA0bHtagFEq36THgWG7IM1/1vS4Cl9sveKSOS8A6oKLy624fGE7PKcuTTIzkVA81GXtWBQ9Coq/4TmllQkFTH7pz9C2PNHSCychPwNNV8qUx3lE3d4DOjGKgoVFD4l90AO7lOvmLTSc3pDpr+jSjUH4lqGrbQKBgQDAgXBmpXfCTxwqkBzGwxX+hwJen9qSkCM47qnQ1L4NnXPL6s0EN6rQ3FnFemGIzBUGJ2tajntkKlUu5DzsQeoBGu/SaSwgqD+1UQDcUyo+retmqZ+QYbpeyd3l53bLJJuJNsfak0X76Ft6hrm4julx6RGlmboQyx4kZWbhx4YNOwKBgEG9/2aNpi1eDwFqpLrk7CqGnYf3gP8gebbcoguhyiZB7MZuARkVmbjLyKVmWLa1JpxH/cTbXGWsS/u7d/pAgL8WwMjeGBfbdDD92x+xWEqq/AUlCRPxeSkTPBech3TBzWtndAd5Z8ZwNG/1lyWhnck63L0huhGI8Zh2BXeILaKBAoGAKK3xq69BvGztPc1QV2w4RJ4RER/kl14gI1LDzd52/veL1cabZk3BKfu2eLWg0MCXnMJNvEgpqQQNFiii+yX+phckIKma6pfDRrSEYwqr/azQ9tPXZTJRqOAtpPyhrNHikD9kQjsm6dGzKxQ3QNnqWOjwkrcGi6/wga5v7Dw2hqsCgYEA2T/kSNQ9dqpVBAkfi2J50hqnfFESPjKeirJJZllqhVqsiV0ly8a8Fz8SjGqTzrq+UErko+QmtSlo5h3Uq9Ln+0CwYfrUL+74q2zLHdS0DpY3QsGTEDJXTxCyy9kO26X2UsM3Ez3YUAkdMwdpVz0uVZtinv2735QZOBxoVQV2kQ8=";
//
//    private final String consumerPrivateKeyId = "40acf82cbd5250de2f5123caff40738bdd403b08";
//
//    private final String consumerPrivateKey = "MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDSwtbSBFgIXna6mWeKFWCK31NXUJH6uGduR1XrODGRedrqrTgr0BdNg8PDo6/zh/T+K0Svor6kgqpwnl9soOdn73oC4Nu+Ad7EiKa38j650jlZdLAr4hR0Ou9Kcnv45x/94auUO8jBz844cu24swLKiPsK9OnX65wVlKRfhhkGFuS/4OI76CmE7NqZDqPOW16o8tBO5TsgPVNkglFAU73fTp0kcHoLauT9QOB0+yZi39mnNXyU+2cL3Ylp5oaQCJpyssDRUqz/EiHa7FxUUgzCadG00+ePf5iYSnZKQRKWoOIawFvcCfcHx8GAl8Nn+79HtVQHB9hLsQ5+jqcdfKPfAgMBAAECggEAE9Ufz912xzrUY1TCKH1Ae3Dub732Lqihmv/9dsfv6ieUURcBvSW0u6eViVhi20DE7hH2QazH0cU18qkEg71UaTRgv9qW8vdMFiRhw9d4zZWZrfBMD6UTlahiEhhZ0B83pHVS5v0FNC+w0SEHe6Tks1hWfz5yrs3N/z3ghdihjC/5i1jeBoHXs1262SMazuwNGHblLApGPG+86taeFtbDI+31TKvZ8nomZHkEVFnARRUoBBcIwowRMqNfwlpcJhlz6kDWnoD08kHJ2zzJokozu7Lim+Ugt/MWwUOcA0hgq2QdymZFpkRkDl7tZmJtwTfTirjbGlpnPHVXEc1bWM7ocQKBgQD0LJ8e7JXf6bVFngq0jSJNKK7XDHYg0KhHXMApF59xxi29hdHXWPzgRJ45KkoUJc7MITpIJLXfCmi1XyDMf9m8lIf/oaqhJ7idYi7iAAPOJkdnHbSt0lebyjBWzCQ6OgS4NfF1+LEibTzRqiFs5K8EAyPYAVSTrpWoguoWtTzIGQKBgQDc9/I2PS+91Eb5RvuidTNsDqZJliTJQFlBjlDViFo3+l1N7jDFYwPBR/Tv4TVM5p9Zb+/Lo9X1pjDbm8QriTR4V+4HaLXkcCnmOsdSRInFUW4UIafwLX5ifjgfyaWgdKdn2UP1Lu/1qBN6GU1xjSfBQ6N3UqQiKkNPb7tuPJGqtwKBgQCQ4hU8vTclGMC14VQK1B/BVt1/vuYtDIJ9bZycBWdXlDc52LitpiDOVgjodJ5mHBT77M9vVVERWlTNIfgNP+OL0TptRZlAbJhP0p1s/oNDhFUj6211InVXfH54UkNAxYJdZ6yxynIYsma/JcsVmQ/8Ony/Q/LSempVBfEurjW1qQKBgQCQWPjFLdtOKqnildg0HFPnNvqx/38waPTluk5b76LgBpGFIyCBEVmWnacIPRpQjidyiYkggnp26oXoMC1KM2svYmGAPYr1G8CDQcqLl3JYkAVU6VeHsnBpbwLC4TttQkdJs8iNFohy9cUjcfwBPbDGs6TJghbuqqUl81uBe9e8qQKBgQDZm8T2KB34J7HAc5A+vqkmAo7mQLZg51OrzB1KnDU86pSAf0o3eSvfDUT6dpU9fRuZ1XYnbPnpoJwjFH3m4u9gqKF3PtVYfZyJrEqYwmhB9z6vd+dcsUlXM0fi37bGZkKBD0JGGt5OljM1qJG15x/LYfC/nwOmqWoOhNPCst2Z7w==";
//
//    private final String provider = "i-go-odrd-testing";
    private final String SERVICE_ACCOUNT = "odrd-fleetengine-ondemandadmin@i-go-odrd-testing.iam.gserviceaccount.com";
    
    private final String SERVICE_ACCOUNT = "odrd-fleetengine-ondemandadmin@i-go-gcp.iam.gserviceaccount.com";
    private final String DRIVER_ACCOUNT = "odrd-fleetengine-driversdkuser@i-go-odrd-testing.iam.gserviceaccount.com";
    private final String DRIVER_ACCOUNT = "odrd-fleetengine-driversdkuser@i-go-gcp.iam.gserviceaccount.com";
    private final String CONSUMER_ACCOUNT = "odrd-fleetengine-consumersdkus@i-go-odrd-testing.iam.gserviceaccount.com";
    private final String CONSUMER_ACCOUNT = "odrd-fleetengine-consumersdkus@i-go-gcp.iam.gserviceaccount.com";
    private final String serverPrivateKeyId = "254e18eefa9fdcca64d5899cdcd793d466c47c7d";
    private final String provider = "i-go-gcp";
    private final String serverPrivateKey = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCfbNAWnukqLKIxItqmSABxsH5glySEHJ2gfL5KsRF0M02e0Z8/KNKZkoh7I6bOMt1fEtttFaWOeq70IdI2WAd5wVazL3upvl5FW4P08ly33LklfGyLljlJ7ChPny9x6OjAaiS0yD9fh7NWti7rZKU7gzcGL8HddNYXgXV5OajvoG3TGdu52WTxce9AUzU6gLPboz/RbGqrdrmgVJVb0EPlhTJf/NSsaiW4NoL8SEzf/pJGYBmqJs97mXwCHTY4avaC+CP/zz9yS8AQEJlApbVT6lSOhYoR0hNOBj5B886EZOssjubO6hQaiwRnGrV2RdpHynqA1iekfGpUGEtWTsqjAgMBAAECggEALyPbMd0iP8y71sCiG4nty7Au5ju62e+mMkbAc9CAwzXKTVxZdLEK+MsJ3TNxBsami47FYC+G6SbgpaJ8iIImD7v5+XjgXZRDRsnlLmAdx2YWPv3YELxGS1PvpX+B5XJDpGWeXfBaQNKc1lZ/cC4t53eIpSUo82UxSvkGNea1S8lR6vIByhNyCQOvLG4yqaxUy0hZi0kge37XrjYMGS+BivBBnDiVlBPLBVbrNBxOf31Lzz+XX0iwXX7Zl2jN759oe0xQyuIGWUSj8xBDIF8nNaJrla7rWVml3sZJh6/3r1Acj0mhZtE0ZMu5hiPGiIXgb1ng30j3dMP4yVPhXrpAtQKBgQDaU01VnHsnHxc0DQHE2vEOPGmPxVS0/JAssePAEUmKEueUogGef91YY+Vm/ItbhLwGjbytnXxe88zRAdB1u07efZ83ey93TrGl2CJUzLHIcgb+Q1tT642rqlfl+q8ep86hcZ+63pDiIPt2Z+HkbKIR0SWf5LIH4flquQOTQufXXQKBgQC674qDsjOJepZjMMN6PkVMcWBYDNmXHnqa5Oto0rZM745UulbXqEFGuBOsXPU7O33Kfz1vbtoluubKZi5B6cFNnPypE2SCfvdObHq4FuTuKPV6lN93SyhZchmSEXEs0PU4cGDRt+RRqQcjft1Wigiy4Y1y1SInCtcaP1hLejEJ/wKBgFAhvwKrGnBzctrB42JTUaJ9/eis7rg28tvUttjp/2nUIndlNt7r41vr3mj8TFHc1/43y4aVhO584THdTpvHkd0LkoKUjglmMsHCIGercZ02bOap5j1Y+XiGXxij995yjN6oi43U3qyAmosM+dYTITEU6JBVKhrGj/rhyTQlnF5pAoGBAKFGmo0mR/pbDbYD0xH6+VSLGCC+7VbIT+SkjUjBSdA0eOo2XUfvfGmj1C1HgbcZi1wRzJH/5CrbBdQmtc/d+QyZ3Q2NkpBXM8uwIWwDLH0gTzDzkZvc9rG8k70GWUrd+EI6Cf3FFjExj9wazqCjs/+IQr2Ijc97NbsKXYW4pOhHAoGAKf5wYk+cn0cVTsyAom0UbGD5Uijqh5732MeqFYs2Rcwx0OErJZo68COSFFF40hJmmIKn7p3qycIyd1FcYlXN1l4s8mEWTGTInRE0OlBU0+jLtIV9pwNgffpbPYcrWZU6s6YVeJ2nDwl+aD+4QvN0rkPTfho9kjgeyF3PW0I2u4E=";
    private final String driverPrivateKeyId = "859e85fb3aa4d18b4afaac3e24e8f65700da5cc9";
    private final String driverPrivateKey = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCmzL1BqSH+Zh9Fct5mXqe5sYOMTnJtOJhwKXnjjo2tNPXv4alzUHz8Vbj6nMar5u5IuKRZMeRBlhoRSFrLm+J1+sfvpH8N4wsnG7hDANknqWzdsk9a68qMHxNQF3hFzs9+KKrR1LAG8e9ytMfliN0kX+xls4uPZDPu1Q39K6V9KXrH/GrMA56i3TtWi7Hmakt5YTELeGjhx4nGrfuQLFFovs1Z9uJtf7E8R95+65StrOAmbJNf7VciEqwBpWYlU5VeyLXMg/oHwnTv2cjdcFozyDrlUHbDmtTiVeBBsYFVLyAsDGfl1p6eiVTiBBuo56YSYLWfaLgYvTyEcZ9jBQsfAgMBAAECggEAQzbTuObX3PT3+vtb5XKVMf33XY2rDJo2y1PbWzhxnO9vf3e22dIAW4qLnOmaIWFQeht1lr/FFCzRWk+Gzu+FJTemY8osrMLmFp9T9CQeXZ4nUXruAVxs5WQMW0Tp4W+CK3tlwmJrgJDzhYyV1Mf/HQ5Oa3kbbu/ZAY/3MCLrb/ClJQvD2rZSDdzAkNMQm8P2hsE71+rH7mI2hHrSCHl2OIp2A64QT8HjtyRc5yHZtTp6ZST1ge9SSIsT0ZfmXKtKF7yGEIPtKNU+oLrGyK5P30xBWJ/bwb3PEz2MZcPvz31+B2+UvZMm7OTkqfcRwEztAf8Ckiuo4im2BRYbVmd9OQKBgQDd0MeLxR+Qtv12bVA0bHtagFEq36THgWG7IM1/1vS4Cl9sveKSOS8A6oKLy624fGE7PKcuTTIzkVA81GXtWBQ9Coq/4TmllQkFTH7pz9C2PNHSCychPwNNV8qUx3lE3d4DOjGKgoVFD4l90AO7lOvmLTSc3pDpr+jSjUH4lqGrbQKBgQDAgXBmpXfCTxwqkBzGwxX+hwJen9qSkCM47qnQ1L4NnXPL6s0EN6rQ3FnFemGIzBUGJ2tajntkKlUu5DzsQeoBGu/SaSwgqD+1UQDcUyo+retmqZ+QYbpeyd3l53bLJJuJNsfak0X76Ft6hrm4julx6RGlmboQyx4kZWbhx4YNOwKBgEG9/2aNpi1eDwFqpLrk7CqGnYf3gP8gebbcoguhyiZB7MZuARkVmbjLyKVmWLa1JpxH/cTbXGWsS/u7d/pAgL8WwMjeGBfbdDD92x+xWEqq/AUlCRPxeSkTPBech3TBzWtndAd5Z8ZwNG/1lyWhnck63L0huhGI8Zh2BXeILaKBAoGAKK3xq69BvGztPc1QV2w4RJ4RER/kl14gI1LDzd52/veL1cabZk3BKfu2eLWg0MCXnMJNvEgpqQQNFiii+yX+phckIKma6pfDRrSEYwqr/azQ9tPXZTJRqOAtpPyhrNHikD9kQjsm6dGzKxQ3QNnqWOjwkrcGi6/wga5v7Dw2hqsCgYEA2T/kSNQ9dqpVBAkfi2J50hqnfFESPjKeirJJZllqhVqsiV0ly8a8Fz8SjGqTzrq+UErko+QmtSlo5h3Uq9Ln+0CwYfrUL+74q2zLHdS0DpY3QsGTEDJXTxCyy9kO26X2UsM3Ez3YUAkdMwdpVz0uVZtinv2735QZOBxoVQV2kQ8=";
    private final String consumerPrivateKeyId = "40acf82cbd5250de2f5123caff40738bdd403b08";
    private final String consumerPrivateKey = "MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDSwtbSBFgIXna6mWeKFWCK31NXUJH6uGduR1XrODGRedrqrTgr0BdNg8PDo6/zh/T+K0Svor6kgqpwnl9soOdn73oC4Nu+Ad7EiKa38j650jlZdLAr4hR0Ou9Kcnv45x/94auUO8jBz844cu24swLKiPsK9OnX65wVlKRfhhkGFuS/4OI76CmE7NqZDqPOW16o8tBO5TsgPVNkglFAU73fTp0kcHoLauT9QOB0+yZi39mnNXyU+2cL3Ylp5oaQCJpyssDRUqz/EiHa7FxUUgzCadG00+ePf5iYSnZKQRKWoOIawFvcCfcHx8GAl8Nn+79HtVQHB9hLsQ5+jqcdfKPfAgMBAAECggEAE9Ufz912xzrUY1TCKH1Ae3Dub732Lqihmv/9dsfv6ieUURcBvSW0u6eViVhi20DE7hH2QazH0cU18qkEg71UaTRgv9qW8vdMFiRhw9d4zZWZrfBMD6UTlahiEhhZ0B83pHVS5v0FNC+w0SEHe6Tks1hWfz5yrs3N/z3ghdihjC/5i1jeBoHXs1262SMazuwNGHblLApGPG+86taeFtbDI+31TKvZ8nomZHkEVFnARRUoBBcIwowRMqNfwlpcJhlz6kDWnoD08kHJ2zzJokozu7Lim+Ugt/MWwUOcA0hgq2QdymZFpkRkDl7tZmJtwTfTirjbGlpnPHVXEc1bWM7ocQKBgQD0LJ8e7JXf6bVFngq0jSJNKK7XDHYg0KhHXMApF59xxi29hdHXWPzgRJ45KkoUJc7MITpIJLXfCmi1XyDMf9m8lIf/oaqhJ7idYi7iAAPOJkdnHbSt0lebyjBWzCQ6OgS4NfF1+LEibTzRqiFs5K8EAyPYAVSTrpWoguoWtTzIGQKBgQDc9/I2PS+91Eb5RvuidTNsDqZJliTJQFlBjlDViFo3+l1N7jDFYwPBR/Tv4TVM5p9Zb+/Lo9X1pjDbm8QriTR4V+4HaLXkcCnmOsdSRInFUW4UIafwLX5ifjgfyaWgdKdn2UP1Lu/1qBN6GU1xjSfBQ6N3UqQiKkNPb7tuPJGqtwKBgQCQ4hU8vTclGMC14VQK1B/BVt1/vuYtDIJ9bZycBWdXlDc52LitpiDOVgjodJ5mHBT77M9vVVERWlTNIfgNP+OL0TptRZlAbJhP0p1s/oNDhFUj6211InVXfH54UkNAxYJdZ6yxynIYsma/JcsVmQ/8Ony/Q/LSempVBfEurjW1qQKBgQCQWPjFLdtOKqnildg0HFPnNvqx/38waPTluk5b76LgBpGFIyCBEVmWnacIPRpQjidyiYkggnp26oXoMC1KM2svYmGAPYr1G8CDQcqLl3JYkAVU6VeHsnBpbwLC4TttQkdJs8iNFohy9cUjcfwBPbDGs6TJghbuqqUl81uBe9e8qQKBgQDZm8T2KB34J7HAc5A+vqkmAo7mQLZg51OrzB1KnDU86pSAf0o3eSvfDUT6dpU9fRuZ1XYnbPnpoJwjFH3m4u9gqKF3PtVYfZyJrEqYwmhB9z6vd+dcsUlXM0fi37bGZkKBD0JGGt5OljM1qJG15x/LYfC/nwOmqWoOhNPCst2Z7w==";
    private final String provider = "i-go-odrd-testing";
//    private final String SERVICE_ACCOUNT = "odrd-fleetengine-ondemandadmin@i-go-gcp.iam.gserviceaccount.com";
//
//    private final String DRIVER_ACCOUNT = "odrd-fleetengine-driversdkuser@i-go-gcp.iam.gserviceaccount.com";
//
//    private final String CONSUMER_ACCOUNT = "odrd-fleetengine-consumersdkus@i-go-gcp.iam.gserviceaccount.com";
//
//    private final String serverPrivateKeyId = "56d803e4689659cf087c0864d6216bb36b7c0740";
//
//    private final String serverPrivateKey = "MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDSS/aiWM1SybXt9EJx8ulLU5HJ7y1QVmUozcFypOehH3mTW7gJ1UGwHZxMpMaO3N2iRclWBHsMd4t6zYPn2Ao/leIOB2RQGcrWYu527gLrr+nXlfXkAXBBnsV55O1cbdnGK+CIF5UYGvpDkQTD3+7hATBl9kug8D5XpYfKFqnP2a5fEeJaXhPyc5z9eJjOWjJ9DfxGxf9M8Z2+/DAPxNqsML7IKw69jcmWpUoN9sJEx55jke8e4dbRFRcrRSHReThT5UW7HDkHeVtgMSh2b3MnrVYqBHLahJCXiiUdFwlwqaJWwTbXtZJVpvL4dpRbFiCrkEieerBaYajLmxlOJSvhAgMBAAECggEALyTgcZy+yuR1aJbtnmX6buyZLk/0NKJpozAdQfo+AxzvQF27cFjilPzOYVA/Qx+4f/xtGl9+xli2aB1SiNMh2Qdc2hBGKL7ffhhHpVnORc/1+GKh8S9xXwSc+Kqdm670tzx25YuD3RePKz6DdvXos4B0vSbt5XJ2R2fQfTl/cBzQju6u5QI2bVutxm+eaLXUfTVRi5N8EqW6deRAJxgn6VWOEOqBBAxgLaB90hJ9zjcDBDGurUXVumBQX4OVE6+4F1wyMNrjpFosSChJnCZ+ngSulPHHNUVnTeoXzTkp8EXb5o4B7sGoHGxFMGC8f7e5cfPPYtKmtv9s6WzZOshx0QKBgQD0+25fN1lLJxRJlBY+WymcRueEV0JKNGTgGVX0Yc6/1abyUO6mJD7yzhdvgm3/3CwWMOsnIG/+7gv7MAfwmVcs9UoebFl8z6VLzMD5GiuwCHoTRHsr9hTS38dSOr9l0/5s6n1LI4A6StWvolsVvwdM76nEBvNlRkfG3OV1crhaIwKBgQDbwS+2Xrr79cgYwktWnGCEmEDWAxTk3xZf6P/33/+9jnH49ahoEQZHltkRNpEx6axyd0qpEPmzo+xqZPirRdl+LYioF0Mt+mSaX5K5bJJ49FkqnQtUkdV9Zg0FotSxCeOFf5upaHQ7JrCdyvUBkFhEr1U+kcccEs8rB9b6oyZYKwKBgQDaEl7Df1+LGHRkst/CDiBSLoO0OICX0V/iZGsxKUeDWEpN9WEan7UxKeeOqYoFchYEgvMwVx2azof3x1+p+rWxHYAm6MgX5Db97HvywisVfdY9BH6oOVt8AxtIxWbO3BDlHy79DdL9ENR6jYmLKAr1n3l9N7q98fu+t6/CBqa4BQKBgQDOyb2CGSZPDntagQqv17sjSrpIKOIydJLzcafcstZOo4owQcpVEyAboaFlhzmeBEuX8xU4fpbaKji/7X/qe3IsP+DGfA1laKfedGz3O2mhlB2L8ffFfu2scKl0UkNezPVinC/4fChTuRadhWyEKjZFe8/1buw0SKbV0SzE8V2VvQKBgQCC0Vor+pLLkDVwlkg4fc0QNudepiEa61dRxdlWxy3BFfW/zUuP2x3y0jQYW/IAs7Z3xUqC4nHeOjJwELHgsc41YAP6kvyfAtwTddE3n03HmnlHqDKQ4uMCdJe2BQLBxmugL+yzV+YCW5sFTcRfGbEOI4OFRYoGm7Y6IiEyZGYDag==";
//
//    private final String driverPrivateKeyId = "95f1c08fd235d43abe7350fc860120f930467815";
//
//    private final String driverPrivateKey = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDZY/0BY/9RaTNrNxPnjbMVWl6RSGqYt+cJmAAcX3CEo276mNGGFNwzzsvsaSm2uspC8kelf1x+R0IEEfVKu7SoX2nso2C392iL3Z/lwH92r6LFD8l8IlNJ7g9fBxO6qa+v94a8BsYsj1bVDjS2Jw4PzQ5uwlTSawDlk6cQnOBCnXhDHSw4Zv51hGdYibv1LS7on9SF//0YBrfuL50lGVBgBkbjLv73eO4RRMv12YWeYntxuRqRjnD26VGcSWU2dQBlag17bioFPbd2NrpJWzDSAUTeOvu1Z5RX7QzrnICv/onz1vSJL/bzuuhBqJXt0KxdoDuoBc0AFq+tTxMcuc+DAgMBAAECggEABs9YDKQaSm2WO8SU7gsFUiTrk3eGR1Rze1x0nG7s8mrAPj9tSNr8bu8KelRtBxlg3qoCTo/n0Njgm4oIehfZN/ENO2l+zSSF9OOzb5oRJCGqYqv07tuQal93wc1R8+X+5+9EHD3GFX1EBhaU1iPxD9OnoRabW6AYfhibAi035T5ExtSZKF0eiiOgWQF7fljkcUoZliD3FXckK8qYhjgFLzyu0MXqDl49HfjaraQWL9dfuJq083hjivqBHdeY0krBa4VsWaaepwcnOGiHm2x7fJIpBYTrmToQGPB1MClXgeEhBCvP2DY2Hj3sqqwFKJcjgnCeTBA5/pO8V0O+6MAtcQKBgQD8YZnnw5KXg+s2vxYSEC0qXde1tMN6BziFCpp0hy02LcRLcsni7h+31++d9bPscuENadz2Lts4jTNwnc162B/TJHtP+VRBs1oVbpkAdouOXNU1mLRyy7NfuHbLfOtXDXE7J4Los63GeBt0AX4YNPuYQ3mBhW3mUHHNPs7AhIs4uQKBgQDcgfL/AXOmgZnglzp9phr6a0pxVlerSeNRUrcpQ3M41t9XaFLM8b6HX94DqsJ8n6bknnBV/gdDdwwIGvNKhcoNa/jbTRv9UAsBef49Ak8Vq3VudEsqQCkBP4B2+WmBBNuBQy9CUrIn8nPScjU8bhpFqKmQxqCfYn29hY8jxY90GwKBgQCw+a/2uUmePb8+0JglanqBbvTIUk2Q0Gdtw5WziObHSyiOz5uKKfjL7fv1BEp6z8PIqCdt6kWHTlx35/Ai6FLIuJhP6EKRH7dXuApKLNaHqclIoCBJL1ZFFREYeCx/CsoP9RDzJKwCtE5r9m/5gY27o/UcQfhivJ5Qkm5gyZDm4QKBgB1erZfrgJTn5C/21JKRwjwieDraTjkBUWauhrjXRAyJChxhR84GUONFEJQadWcV+KuwsrOxbxQ8UfzuYgNGCKB7Bh1nitfVhnG+5u8HVLNFMBHzKWPKQevpolm2ZKgLlpUD9tJ1o0cQ0v5vucl/vL4UdelTm2c/PhI1LNiN4sqLAoGATpugMjecjHvJwHG1Qk5dSIFt1ndc3MmYkLP+bAYMLDZmYbGlCv4Q+YuIyeoCpQNguWO9GqtquqM+yj0zoWn0BNTGhygqInBrLTwxzkfRQGGru0h9GsdhedkE7KJuJgOMYZIk7mZUKONK68CehQR6hYSHZ9a7VfljPpC5F1uuRCM=";
//
//    private final String consumerPrivateKeyId = "37eb9db5c3821cb8a13a15f86b2da194f4cb0959";
//
//    private final String consumerPrivateKey = "MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCeBruAMii4e7LrGNwSWMbeztzjJV9lUS9CIhWi142G/Ed9b58oa1CAM3ym794PRqtHRvdzLSWRKf3SFJjzYl7CMmkpTgsQoV8tCp/G/vITZcrD9BxYfocysnSDy9d/nleomC1PeUV6coZpGPIjwuxkXyQbH1CnTyGK5RAU2siCw4plLMz6WQyXXyCZOdCijsvSPgytDWveO8DGPIBO1VlHHIJIfrfgVCYgpaXd63GSPQEJ81GYfy5VtnuLHpc3kowq5blLqMFUU6eAzA20Jg3mCovv2idSNN6R5K1kNT3Eu5fsQWuthDqK0H2IeNulb8cCPnri62AH03kxl6xFwC6pAgMBAAECggEAETkH88TZDfeNXHTCfM1oKfMUZ+fe1HAGB93Ryy8ATGyabgqy/KNq4U4QkTEmBowxMVIuuJgnDAHY7q3dWElUV93z+tMiqZas2iqE7MSZ0DtmifdvpMVwKWUBsIuQL7yA2UMcom4ZKxXoSElhD+diqYh6VZUSzpP1QpS3LU6wTm/4IzN+kjfn7sAENk9+ff04VZjBC4yPANWO6gXmNZlGvFvbp6ChBb9PnPlB6dUUiLCGkb/B0jagfqP7ARrDArMcRpJZyYbPDEfxEqqADV28N4k2qOYUZYVmXBXf+Zip7G+rikXmgxn/G1nHLJgUAmc42TUos8P0YsZiVyboQYtU8QKBgQDRcLK70zIZOhMRmr9gTC2khSBA37ZVVtCiJb6G4TtFfH7KLdn8r8aNLauH90WCzQvk2m/KKFlt/q2UJyFatJx5LB4mYKAS7BPfoHYqsoqDMuMXtNpe6PO5/rx8h90pl60gouG2iw1QcOq5NKNVr2INYkItJhc8u99Lhw675hVVOwKBgQDBKA2e1KERO3cOn7muaJjWubMJ6mK0XtOLmTL8maILwJVO2H6rMOxoYum3txZjc+oTdFcyfv5TJZrihm3F2XoZ6Xe1F0OhiX97OgA/uDygQSDsiFdhJ90svbpGxDxtQtamhuu+8Wp1TpNu8ORdG+3gmsCkxivrPTs/MnJnfiu9awKBgGJ1QYDsyvtzAq3e+qKxjS9vafc1dAjwVAo2BjhwP6Xt3cj7/yM8GvIZiy7S/rl73WCLk8wMZeZAuKcSMirrBzgrlkziVb4vfzQ8wfBWmKkOzhVB7vp5NsK0TzWXxU+dP0U9bTCcc/jh7GZ+qV5JoaW7EHMbGgdyJoniBvosMtErAoGAKVRvraejmzNVI0zsBzScV32+oIWFf0C3FSy/qysYcFlR2WAbonfCbgeUKNpFMRyRXn5LViO0OYhXXtcSz/3b0YWSNq52qy7nly9u9DNwzX2CFPqLb99+xN8H57J/l4VwtosyEFZJyDX6+AcVZhLe0GtsgxVgOmKMtdYOgrSNmWcCgYBu3KiRwYPfQgyEYOwfQBOjoMmPUB8H/vtvFLRlHXxZF7hPAyKs4e9dQRW7vb61epVgMVz5t4E4pKHqxpZu+j7Tby+Z5fAgSPiniZUyVH9AYGCTyAYZogr5r21vhpcAZJ0P8hoE5R2jhnzu/mhr6CkWz8nCHsZ7+KBjcVILUYIS9g==";
//
//    private final String provider = "i-go-gcp";
    
    @Autowired
    private RedisUtil redisUtil;
@@ -77,22 +89,22 @@
    public Map<String, Object> fleetEngineAuth(int type, String id){
        try {
            //谷歌云服务器使用这部分代码
            AuthTokenMinter minter = AuthTokenMinter.builder()
                    //服务端签名
                    .setServerSigner(ImpersonatedSigner.create(SERVICE_ACCOUNT))
                    //司机端签名
                    .setDriverSigner(ImpersonatedSigner.create(DRIVER_ACCOUNT))
                    //乘客端签名
                    .setConsumerSigner(ImpersonatedSigner.create(CONSUMER_ACCOUNT))
                    .build();
//            AuthTokenMinter minter = AuthTokenMinter.builder()
//                    //服务端签名
//                    .setServerSigner(LocalSigner.create(SERVICE_ACCOUNT, serverPrivateKeyId, serverPrivateKey))
//                    .setServerSigner(ImpersonatedSigner.create(SERVICE_ACCOUNT))
//                    //司机端签名
//                    .setDriverSigner(LocalSigner.create(DRIVER_ACCOUNT, driverPrivateKeyId, driverPrivateKey))
//                    .setDriverSigner(ImpersonatedSigner.create(DRIVER_ACCOUNT))
//                    //乘客端签名
//                    .setConsumerSigner(LocalSigner.create(CONSUMER_ACCOUNT, consumerPrivateKeyId, consumerPrivateKey))
//                    .setConsumerSigner(ImpersonatedSigner.create(CONSUMER_ACCOUNT))
//                    .build();
            AuthTokenMinter minter = AuthTokenMinter.builder()
                    //服务端签名
                    .setServerSigner(LocalSigner.create(SERVICE_ACCOUNT, serverPrivateKeyId, serverPrivateKey))
                    //司机端签名
                    .setDriverSigner(LocalSigner.create(DRIVER_ACCOUNT, driverPrivateKeyId, driverPrivateKey))
                    //乘客端签名
                    .setConsumerSigner(LocalSigner.create(CONSUMER_ACCOUNT, consumerPrivateKeyId, consumerPrivateKey))
                    .build();
            
            String jwt = "";
            Long expirationTimestamp = 0L;
@@ -115,9 +127,7 @@
            map.put("token", jwt);
            map.put("expirationTimestamp", expirationTimestamp);
            return map;
        } catch (SigningTokenException e) {
            throw new RuntimeException(e);
        } catch (SignerInitializationException e) {
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
@@ -164,7 +174,7 @@
        
        JSONObject body = new JSONObject();
        body.put("vehicleState", "OFFLINE");
        body.put("supportedTripTypes", Arrays.asList("SHARED", "EXCLUSIVE"));
        body.put("supportedTripTypes", "EXCLUSIVE");
        body.put("maximumCapacity", maximumCapacity);
        
        JSONObject category = new JSONObject();
@@ -267,7 +277,7 @@
            licensePlate1.put("lastCharacter", getLastNumber(licensePlate));
            body.put("licensePlate", licensePlate1);
        }
        body.put("supportedTripTypes", Arrays.asList("SHARED", "EXCLUSIVE"));
        body.put("supportedTripTypes", "EXCLUSIVE");
        
        JSONObject category = new JSONObject();
        category.put("category", "TAXI");
@@ -446,7 +456,7 @@
            body.put("vehicleId", vehicleId);
        }
        body.put("tripStatus", "NEW");
        body.put("tripType", "SHARED");
        body.put("tripType", "EXCLUSIVE");
        body.put("numberOfPassengers", numberOfPassengers);
        
        JSONObject pickupPoint = new JSONObject();
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/SMSUtil.java
@@ -277,23 +277,24 @@
    /**
     * 短信 : https://sms.mymailcentre.com/smsportal/cellulant
     * 短信 : https://sms.mymailcentre.com
     * API:https://documenter.getpostman.com/view/7705958/Uyr7Hydn
     * @param toPhone
     * @param msg
     * @return
     */
    public boolean sendCellulantMessage(String toPhone, String msg){
        String url = "https://sms.nalosolutions.com/smsbackend/Cell_resl/send-message/";
        String url = "https://sms.nalosolutions.com/smsbackend/Resl_Nalo/send-message/";
        HttpRequest post = HttpUtil.createPost(url);
        post.contentType(ContentType.JSON.toString());
        JSONObject params = new JSONObject();
        params.put("key", "c_x7x5!v_1mhg(l34p05g2b@teheq)ex9mk1jj(u@nlfx_w5(rdx)tb_ttx22b3o");
        params.put("username", "I-GO");
        params.put("password", "abcd1234");
        params.put("password", "9wBolBiXskCuzSf");
        params.put("msisdn", toPhone);
        params.put("message", msg);
        params.put("sender_id", "I-GO");
        params.put("callback_url", "https://igo.i-go.group/user/base/sendCellulantMessageCallback");
        params.put("validity", 1);
        post.body(params.toJSONString());
        System.err.println("短信请求:\n请求地址:" + url + "\n请求参数:" + params.toJSONString());
        HttpResponse execute = post.execute();
@@ -305,11 +306,8 @@
        if(null != status && 1701 == status){
            return true;
        }else{
            System.err.println("短信发送失败:" + jsonObject.toJSONString());
            return false;
        }
    }
    
    public static void main(String[] ages){
UserIGOTravel/guns-admin/src/main/resources/application-produce.yml
@@ -1,5 +1,7 @@
server:
  port: 8006
  tomcat:
    basedir: /home/igotechgh/app/tomcat_basedir
guns:
  swagger-open: false              #是否开启swagger (true/false)