Pu Zhibing
6 天以前 4c99ee7028c3fe58a2cd4b8273b22c75c45574fc
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -1,5 +1,6 @@
package com.stylefeng.guns.modular.specialTrain.server.impl;
import cn.hutool.db.nosql.redis.RedisDS;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
@@ -59,6 +60,8 @@
import java.math.RoundingMode;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
@Service
@@ -146,7 +149,7 @@
    @Resource
    private IUserActivityRedenvelopeService userActivityRedenvelopeService;
    @Resource
    private RedisUtil redisUtil;
@@ -238,7 +241,17 @@
    @Override
    public synchronized ResultUtil<BaseWarpper> saveOrderPrivateCar(Integer serverCarModelId, Date travelTime, Integer reservation, Integer instead, String placementLon, String placementLat, String startLon, String startLat,
                                          String startAddress, String endLon, String endLat, String endAddress, String name, String phone, Integer orderSource, Integer driverId, Integer type, Integer uid, Integer language) throws Exception {
        UserInfo userInfo = userInfoService.selectById(uid);
        if(ToolUtil.isEmpty(userInfo.getPhone())){
            return ResultUtil.error(language == 1 ? "请先绑定手机号码" : language == 2 ? "Please bind your mobile phone number first." : "Veuillez d’abord vous inscrire en liant votre numéro de téléphone portable.");
        }
        Company company = companyCityService.query1(uid, placementLon, placementLat);
        if(null != userInfo && null != company){
            userInfo.setCompanyId(company.getId());
            userInfoService.updateById(userInfo);
        }
        //如果出行时间大于当前10分钟则默认为预约单
        if(travelTime.getTime() > (System.currentTimeMillis() + 600000)){
            reservation = 2;
@@ -278,7 +291,8 @@
        if((orderSource == 1 || orderSource == 3) && null == serverCarModelId){
            return ResultUtil.error(language == 1 ? "请选择服务车型" : language == 2 ? "Please select vehicle-type" : "Veuillez sélectionner le type de véhicule");
        }
        userInfo.setLanguage(language);
        userInfoService.updateById(userInfo);
        OrderPrivateCar orderPrivateCar = new OrderPrivateCar();
        orderPrivateCar.setType(type);
        orderPrivateCar.setUserId(uid);
@@ -299,11 +313,7 @@
        orderPrivateCar.setPassengers(name);
        orderPrivateCar.setPassengersPhone(phone);
        if(instead == 0 || ToolUtil.isEmpty(orderPrivateCar.getPassengers())){
            UserInfo userInfo = userInfoService.selectById(uid);
            if(ToolUtil.isEmpty(userInfo.getPhone())){
                return ResultUtil.error(language == 1 ? "请先绑定手机号码" : language == 2 ? "Please bind your mobile phone number first." : "Veuillez d’abord vous inscrire en liant votre numéro de téléphone portable.");
            }
            orderPrivateCar.setPassengers(userInfo.getFirstName() + "." + userInfo.getLastName());
            orderPrivateCar.setPassengers(ToolUtil.isNotEmpty(userInfo.getFirstName()) ? userInfo.getFirstName() + "." + userInfo.getLastName() : "");
            orderPrivateCar.setPassengersPhone(userInfo.getPhone());
        }
        orderPrivateCar.setState(1);
@@ -366,14 +376,13 @@
        orderPrivateCar.setIsReassign(1);
        orderPrivateCar.setIsDelete(1);
        orderPrivateCar.setTripId(tripId);
        orderPrivateCar.setIsover(0);
        DistancematrixVo distancematrix1 = GoogleMapUtil.getDistancematrix(orderPrivateCar.getStartLat(), orderPrivateCar.getStartLon(), orderPrivateCar.getEndLat(), orderPrivateCar.getEndLon(), tripId);
        Long distance1 = distancematrix1.getDistance();
        orderPrivateCar.setEstimatedMileage(new BigDecimal(distance1).divide(new BigDecimal(1000)).setScale(2, RoundingMode.HALF_EVEN).doubleValue());
        this.insert(orderPrivateCar);
    
        UserInfo userInfo = userInfoService.selectById(uid);
        userInfo.setLanguage(language);
        userInfoService.updateById(userInfo);
    
        //google创建车辆信息
        String vehicleId = null;
@@ -494,8 +503,8 @@
            new Thread(new Runnable() {
                @Override
                public void run() {
                    pushUtil.pushOrderState(1, uid, orderPrivateCar.getId(), 1, 2, 0, "");
                    pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, 2, 0, finalAudioUrl);
                    pushUtil.pushOrderState(1, uid, orderPrivateCar.getId(), 1, 2, 0, "", "user");
                    pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, 2, 0, finalAudioUrl, "user");
                }
            }).start();
        }
@@ -566,6 +575,16 @@
                        CarService query1 = carServiceMapper.query(1, dr.getCarId());
                        orderPrivateCar.setServerCarModelId(query1.getServerCarModelId());
                        orderPrivateCar.setSnatchOrderTime(new Date());
                        String value = redisUtil.getValue("DRIVER" + driver.getId());
                        if(ToolUtil.isNotEmpty(value)) {
                            String[] split = value.split(",");
                            DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderPrivateCar.getStartLat(), orderPrivateCar.getStartLon(), Double.valueOf(split[1]), Double.valueOf(split[0]), tripId);
                            //超时时间
                            long timeOut = System.currentTimeMillis() + (distancematrix.getDuration() * 1000);
                            orderPrivateCar.setEstimateArriveTime(new Date(timeOut));
                            orderPrivateCar.setEstimateArriveMileage(distancematrix.getDistance());
                        }
    
                        dr.setState(3);
                        driverService.updateById(dr);
@@ -619,8 +638,8 @@
                        new Thread(new Runnable() {
                            @Override
                            public void run() {
                                pushUtil.pushOrderState(1, uid, orderPrivateCar.getId(), 1, 2, 0, "");
                                pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, 2, 0, finalAudioUrl);
                                pushUtil.pushOrderState(1, uid, orderPrivateCar.getId(), 1, 2, 0, "", "user");
                                pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, 2, 0, finalAudioUrl, "user");
                            }
                        }).start();
                    }
@@ -713,7 +732,10 @@
        BaseWarpper baseWarpper = new BaseWarpper();
        double amount = 0;
        CancleOrder query = cancleOrderService.query(orderPrivateCar.getCompanyId());
        if(null == query || null == orderPrivateCar.getDriverId() || orderPrivateCar.getState() == 11){
        if(null == query){
            return ResultUtil.error("请先添加取消规则");
        }
        if(null == orderPrivateCar.getDriverId() || orderPrivateCar.getState() == 11){
            baseWarpper.setAmount(amount);
            return ResultUtil.success(baseWarpper);
        }
@@ -721,6 +743,10 @@
        long t = object.getInteger("driverTimeout") * 60000L;
        //司机超时未到达起点,免费取消
        if(orderPrivateCar.getOrderType() == 1){
            if(orderPrivateCar.getState() == 1 || orderPrivateCar.getState() == 11){
                baseWarpper.setAmount(0D);
                return ResultUtil.success(baseWarpper);
            }
            if(orderPrivateCar.getState() <= 3 && orderPrivateCar.getEstimateArriveTime().getTime() + t <= System.currentTimeMillis()){
                baseWarpper.setAmount(amount);
                return ResultUtil.success(baseWarpper);
@@ -788,9 +814,10 @@
    public ResultUtil addCancle(Integer id, String reason, String remark, Integer uid, Double lon, Double lat, String address, Integer language) throws Exception {
        if(ToolUtil.isNotEmpty(remark)){
            if(ToolUtil.isNotEmpty(remark)){
                remark = remark.toLowerCase();
                List<SensitiveWords> sensitiveWords = sensitiveWordsMapper.selectList(null);
                for(SensitiveWords s : sensitiveWords){
                    remark = remark.replaceAll(s.getContent(), "***");
                for(SensitiveWords s : sensitiveWords) {
                    remark = remark.replaceAll(s.getContent().toLowerCase(), "***");
                }
            }
        }
@@ -804,6 +831,8 @@
        if(orderPrivateCar.getState() > 5 && orderPrivateCar.getState() != 11 && orderPrivateCar.getState() != 12){
            return ResultUtil.error(language == 1 ? "取消订单失败,不合法的操作" : language == 2 ? "Failed to cancel order, illegal operation." : "Échec de l’annulation de la commande, opération illégale.");
        }
        orderCancelService.delete(new EntityWrapper<OrderCancel>().eq("orderId", orderPrivateCar.getId()).eq("orderType", 1));
        
        //服务中也可以取消订单,所以取消订单时需要计算订单费用
        if(null == orderPrivateCar.getDriverId()){//没有接单的情况
@@ -822,7 +851,7 @@
                    orderTaxiService.updateById(orderTaxi);
                }
            }else{
                integer = orderCancelService.saveData(id, 1, language == 1 ? "无司机接单" : language == 2 ? "No driver to take orders" : "Pas de chauffeur pour prendre les commandes", language == 1 ? "无司机接单" : language == 2 ? "No driver to take orders" : "Pas de chauffeur pour prendre les commandes", null, null, 2, 1, uid);
                integer = orderCancelService.saveData(id, 1, language == 1 ? "无司机接单" : language == 2 ? "No driver to take orders" : "Pas de chauffeur pour prendre les commandes", language == 1 ? "无司机接单" : language == 2 ? "No driver to take orders" : "Pas de chauffeur pour prendre les commandes", null, 0D, 2, 1, uid);
                orderPrivateCar.setState(10);
                this.updateById(orderPrivateCar);
            }
@@ -830,7 +859,7 @@
            BaseWarpper data = queryCancleAmount(id, language).getData();
            Double amount = data.getAmount();
            if(0 == amount){
                integer = orderCancelService.saveData(id, 1, reason, remark, null, null, 2, 1, uid);
                integer = orderCancelService.saveData(id, 1, reason, remark, null, 0D, 2, 1, uid);
                if(5 == orderPrivateCar.getState()){
                    orderPrivateCar.setState(6);
                    orderPrivateCar.setGetoffLon(lon);
@@ -888,8 +917,8 @@
                            }
                            break;
                    }
                    pushUtil.pushOrderState(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0, "");
                    pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState() == 12 ? orderPrivateCar.getState() : 10, 0, audioUrl);
                    pushUtil.pushOrderState(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0, "", "user");
                    pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState() == 12 ? orderPrivateCar.getState() : 10, 0, audioUrl, "user");
                    System.err.println("推送取消操作---------------------");
                }
            }).start();
@@ -907,10 +936,15 @@
                for (int i = 0; i < 5; i++) {
                    updateTrip = fleetEngineUtil.updateTrip("CANCELED", (null != car ? car.getVehicleId() : null), null, orderPrivateCar.getTripId(), null, null, null, null);
                    if(updateTrip){
                        orderPrivateCar.setIsover(1);
                        this.updateById(orderPrivateCar);
                        break;
                    }
                    Thread.sleep(3000L);
                }
            }else{
                orderPrivateCar.setIsover(1);
                this.updateById(orderPrivateCar);
            }
        }
        //添加消息
@@ -1016,11 +1050,7 @@
                    ChinaMobileUtil.midAxbUnBindSend(orderPrivateCar.getBindId(),orderPrivateCar.getTelX());
                }
    
                if(5 == orderPrivateCar.getOldState()){
                    orderPrivateCar.setState(6);
                }else{
                    orderPrivateCar.setState(10);
                }
                orderPrivateCar.setState(10);
                orderPrivateCar.setTelX("");
                orderPrivateCar.setBindId("");
                this.updateById(orderPrivateCar);
@@ -1054,11 +1084,11 @@
                    }
    
                    this.deleteTask(id);//删除定时任务
                    pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0, "");
                    pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0, "", "user");
                }else{
                    incomeService.saveData(1, orderPrivateCar.getCompanyId(), 3, orderPrivateCar.getId(), 1, amount.doubleValue());
                }
                pushUtil.pushOrderState(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0, "");
                pushUtil.pushOrderState(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0, "", "user");
                //添加消息
                systemNoticeService.addSystemNotice(1, language == 1 ? "您已使用余额成功支付取消订单费用,谢谢使用!" : language == 2
@@ -1160,7 +1190,7 @@
                                    }
                                }, 30000);
                                
                                pushUtil.pushOrderState(2, driver.getId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), pushOrder.getPushTime(), audioUrl);
                                pushUtil.pushOrderState(2, driver.getId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), pushOrder.getPushTime(), audioUrl, "user");
                            }
                        }
                        Thread.sleep(pushOrder.getPushTime() * 1000);//设置等待时间
@@ -1273,11 +1303,12 @@
        ResultUtil resultUtil = ResultUtil.success("");
        orderPrivateCar.setCouponMoney(0D);//初始化历史数据
        orderPrivateCar.setCouponId(null);
        //计算折扣
        UserActivityDiscount1 query2 = userActivityDiscount1Mapper.query(orderPrivateCar.getCompanyId());
        if(null != query2){
            Integer orderNum=this.selectCount(new EntityWrapper<OrderPrivateCar>().eq("userId",orderPrivateCar.getUserId()).eq("activityId",query2.getId()).last(" and to_days(getoffTime) = to_days(now())"));
            Integer orderNum=this.selectCount(new EntityWrapper<OrderPrivateCar>().eq("userId",orderPrivateCar.getUserId())
                    .eq("activityId",query2.getId()).last(" and to_days(getoffTime) = to_days(now())"));
            if(query2.getDistance()*1000>orderPrivateCar.getMileage() && query2.getOrderNum()>orderNum){
                Double special = query2.getSpecial();
                if(null != special){
@@ -1291,7 +1322,7 @@
                }
            }
        }
        //计算优惠券
        UserCouponRecord userCouponRecord = null;
        if(null != couponId){
@@ -1318,7 +1349,7 @@
            orderPrivateCar.setCouponMoney(userCouponRecord.getMoney());
            orderPrivateCar.setCouponId(couponId);
        }
        //计算红包
        if(null != redDeduction && 1 == redDeduction && null == orderPrivateCar.getRedPacketId()){
            RedEnvelopePaymentSettings redEnvelopePaymentSettings = redEnvelopePaymentSettingsService.getRedEnvelopePaymentSettings();
@@ -1331,14 +1362,14 @@
                if(total > 0 && multiply1.doubleValue() > 0 && total.compareTo(multiply1.doubleValue()) >= 0){
                    orderPrivateCar.setRedPacketMoney(multiply1.doubleValue());
                    orderMoney = orderMoney.subtract(multiply1).setScale(2, RoundingMode.HALF_EVEN);
                    //获取红包id
                    JSONArray jsonArray = new JSONArray();
                    for (UserRedPacketRecord userRedPacketRecord : userRedPacketRecords) {
                        JSONObject jsonObject = new JSONObject();
                        jsonObject.put("id", userRedPacketRecord.getId());
                        BigDecimal remainingAmount = new BigDecimal(userRedPacketRecord.getRemainingAmount());
                        if(multiply1.compareTo(remainingAmount) >= 0){
                            userRedPacketRecord.setRemainingAmount(0D);
                            userRedPacketRecord.setEndTime(new Date());
@@ -1368,7 +1399,7 @@
                        jsonObject.put("id", userRedPacketRecord.getId());
                        jsonObject.put("money", userRedPacketRecord.getRemainingAmount());
                        jsonArray.add(jsonObject);
                        userRedPacketRecord.setRemainingAmount(0D);
                        userRedPacketRecord.setEndTime(new Date());
                        userRedPacketRecord.setState(2);
@@ -1380,8 +1411,8 @@
                }
            }
        }
        if(payType == 1){//手机支付
            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
            String merchantTransactionId = sdf.format(new Date()) + "1" + language + orderId;
@@ -1399,14 +1430,14 @@
            checkoutRequest.setSuccessRedirectUrl("https://igo.i-go.group/payMoney/pages/success.html");
            checkoutRequest.setFailRedirectUrl("https://igo.i-go.group/payMoney/pages/fail.html");
            resultUtil = TinggPayUtil.checkoutRequest(checkoutRequest);
            if(resultUtil.getCode()==200){
                paymentRecordService.saveData(1, null, null, orderId, 1, 1,
                        orderMoney.setScale(2, RoundingMode.HALF_EVEN).doubleValue(), null, 1);//添加预支付数据
            }else{
                resultUtil = ResultUtil.error(language == 1 ? "支付失败" : language == 2 ? "Payment failure" : "Paiement échoué", "");
            }
        }
        if(payType == 2){//银行卡支付
            BankCard bankCard = bankCardService.selectById(bankCardId);
@@ -1426,7 +1457,7 @@
            checkoutRequest.setSuccessRedirectUrl("https://igo.i-go.group/payMoney/pages/success.html");
            checkoutRequest.setFailRedirectUrl("https://igo.i-go.group/payMoney/pages/fail.html");
            resultUtil = TinggPayUtil.checkoutRequest(checkoutRequest);
            if(resultUtil.getCode()==200){
                paymentRecordService.saveData(1, null, null, orderId, 1, 2,
                        orderMoney.setScale(2, RoundingMode.HALF_EVEN).doubleValue(), null, 1);//添加预支付数据
@@ -1438,28 +1469,28 @@
            if(userInfo.getBalance() == null || new BigDecimal(userInfo.getBalance()).compareTo(orderMoney) < 0){
                return ResultUtil.error(language == 1 ? "账户余额不足" : language == 2 ? "Insufficient balance" : "Solde insuffisant", "");
            }
            userInfo.setBalance(new BigDecimal(userInfo.getBalance()).subtract(orderMoney).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
            SysIntegral query1 = sysIntegralMapper.query(orderPrivateCar.getCompanyId());
            userInfo.setIntegral(userInfo.getIntegral() + (orderMoney.intValue() * query1.getIntegral()));//积分
            //添加交易明细
            transactionDetailsService.saveData(uid, "完成订单", orderMoney.setScale(2, RoundingMode.HALF_EVEN).doubleValue(),
                    2, 1, 1, 1, orderId);
            userInfoService.updateById(userInfo);
            orderPrivateCar.setState(8);
            orderPrivateCar.setPayType(3);
            orderPrivateCar.setPayMoney(orderMoney.setScale(2, RoundingMode.HALF_EVEN).doubleValue());
            //处理优惠券和红包
            if(null != userCouponRecord){
                userCouponRecord.setState(2);
                userCouponRecord.setEndTime(new Date());
                userCouponRecordService.updateById(userCouponRecord);
            }
            //添加已收入明细
            Company company = companyService.selectById(orderPrivateCar.getCompanyId());
            Double speMoney = company.getSpeMoney();
@@ -1481,7 +1512,7 @@
            driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
            driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
            driverService.updateById(driver);
            if(ToolUtil.isNotEmpty(userInfo.getEmail())){
                new Thread(new Runnable() {
                    @Override
@@ -1499,6 +1530,7 @@
                                aDouble = orderEvaluateService.queryDriverScore(orderPrivateCar.getDriverId());
                            }
                            Double aDouble1 = new BigDecimal(orderPrivateCar.getMileage()).divide(new BigDecimal(1000)).setScale(2, RoundingMode.HALF_EVEN).doubleValue();
                            Long serviceTime = new BigDecimal(orderPrivateCar.getEndServiceTime().getTime() - orderPrivateCar.getStartServiceTime().getTime()).divide(new BigDecimal(60000)).setScale(0, RoundingMode.HALF_EVEN).longValue();
                            if(1 == language){
                                document.getElementById("english").remove();
                                document.getElementById("french").remove();
@@ -1580,7 +1612,7 @@
                                Element lost_item_chinese = document.getElementById("lost_item_chinese");
                                lost_item_chinese.attr("href", "https://igo.i-go.group/mailbox/user/lossGoods.html?language=" + language + "&orderId=" + orderId + "&orderType=1");
                                Element track_chinese = document.getElementById("track_chinese");
                                track_chinese.attr("href", "https://igo.i-go.group/mailbox/user/location.html?orderId=" + orderId);
                                track_chinese.attr("href", "https://igo.i-go.group/mailbox/user/location.html?orderId=" + orderId + "&language=" + language);
                                Element pay_time_chinese = document.getElementById("pay_time_chinese");
                                pay_time_chinese.text(DateUtil.conversionFormat(language, sdf1.format(orderPrivateCar.getEndServiceTime())));
                                Elements driver_chinese = document.getElementsByClass("driver_chinese");
@@ -1593,7 +1625,7 @@
                                Element pf_chinese = document.getElementById("pf_chinese");
                                pf_chinese.text("司机评分:" + aDouble);
                                Element lc_chinese = document.getElementById("lc_chinese");
                                lc_chinese.text("里程:" + aDouble1 + "公里 /" + orderPrivateCar.getDuration() + "分钟");
                                lc_chinese.text("里程:" + aDouble1 + "公里 /" + serviceTime + "分钟");
                                Element start_time_chinese = document.getElementById("start_time_chinese");
                                start_time_chinese.text(sdf2.format(orderPrivateCar.getTravelTime()));
                                Element start_address_chinese = document.getElementById("start_address_chinese");
@@ -1687,7 +1719,7 @@
                                Element lost_item_english = document.getElementById("lost_item_english");
                                lost_item_english.attr("href", "https://igo.i-go.group/mailbox/user/lossGoods.html?language=" + language + "&orderId=" + orderId + "&orderType=1");
                                Element track_english = document.getElementById("track_english");
                                track_english.attr("href", "https://igo.i-go.group/mailbox/user/location.html?orderId=" + orderId);
                                track_english.attr("href", "https://igo.i-go.group/mailbox/user/location.html?orderId=" + orderId + "&language=" + language);
                                Element pay_time_english = document.getElementById("pay_time_english");
                                pay_time_english.text(DateUtil.conversionFormat(language, sdf1.format(orderPrivateCar.getEndServiceTime())));
                                Elements driver_english = document.getElementsByClass("driver_english");
@@ -1700,7 +1732,7 @@
                                Element pf_english = document.getElementById("pf_english");
                                pf_english.text("Driver Rating:" + aDouble);
                                Element lc_english = document.getElementById("lc_english");
                                lc_english.text("Mileage:" + aDouble1 + "KM / " + orderPrivateCar.getDuration() + "Minutes");
                                lc_english.text("Mileage:" + aDouble1 + "KM / " + serviceTime + "Minutes");
                                Element start_time_english = document.getElementById("start_time_english");
                                start_time_english.text(sdf2.format(orderPrivateCar.getTravelTime()));
                                Element start_address_english = document.getElementById("start_address_english");
@@ -1794,7 +1826,7 @@
                                Element lost_item_french = document.getElementById("lost_item_french");
                                lost_item_french.attr("href", "https://igo.i-go.group/mailbox/user/lossGoods.html?language=" + language + "&orderId=" + orderId + "&orderType=1");
                                Element track_french = document.getElementById("track_french");
                                track_french.attr("href", "https://igo.i-go.group/mailbox/user/location.html?orderId=" + orderId);
                                track_french.attr("href", "https://igo.i-go.group/mailbox/user/location.html?orderId=" + orderId + "&language=" + language);
                                Element pay_time_french = document.getElementById("pay_time_french");
                                pay_time_french.text(DateUtil.conversionFormat(language, sdf1.format(orderPrivateCar.getEndServiceTime())));
                                Elements driver_french = document.getElementsByClass("driver_french");
@@ -1807,7 +1839,7 @@
                                Element pf_french = document.getElementById("pf_french");
                                pf_french.text("Note du chauffeur: " + aDouble);
                                Element lc_french = document.getElementById("lc_french");
                                lc_french.text("Distance: " + aDouble1 + "km / " + orderPrivateCar.getDuration() + "minutes");
                                lc_french.text("Distance: " + aDouble1 + "km / " + serviceTime + "minutes");
                                Element start_time_french = document.getElementById("start_time_french");
                                start_time_french.text(sdf2.format(orderPrivateCar.getTravelTime()));
                                Element start_address_french = document.getElementById("start_address_french");
@@ -1821,7 +1853,7 @@
                                server_tel_french.attr("href", "tel:" + (null != phone ? phone.getPhone() : ""));
                            }
                            EmailUtil.send(userInfo.getEmail(), language == 1 ? "打车收据" : language == 2 ? "Ride receipt" : "Reçu de course",  document.html());
                            //开始生成pdf收据和html收据
                            File file = new File("/home/igotechgh/nginx/html/files/html/");
                            if(!file.exists()){
@@ -1835,7 +1867,7 @@
                            fileWriter.write(document.html());
                            fileWriter.flush();
                            fileWriter.close();
                            File file1 = new File("/home/igotechgh/nginx/html/files/pdf/");
                            if(!file1.exists()){
                                file1.mkdirs();
@@ -1851,7 +1883,7 @@
                                e.printStackTrace();
                                System.out.println("html转pdf异常");
                            }
                            String link ="https://igo.i-go.group/files/html/ride_receipt_" + orderId + ".html";
                            TEmail tEmail = new TEmail();
                            tEmail.setLink(link);
@@ -1869,27 +1901,27 @@
                                tEmail.setAmOrPm(language==1?"下午":language==2?"afternoon":"après-midi");
                            }
                            emailService.insert(tEmail);
                        }catch (Exception e){
                            e.printStackTrace();
                        }
                    }
                }).start();
            }
            // TODO: 2020/5/24 这里需要给司机和用户推送订单状态
            new Thread(new Runnable() {
                @Override
                public void run() {
                    pushUtil.pushOrderState(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0, "");
                    pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0, "");
                    pushUtil.pushOrderState(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0, "", "user");
                    pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0, "", "user");
                }
            }).start();
            systemNoticeService.addSystemNotice(1, language == 1 ? "您已成功完成出行订单支付,谢谢使用!" : language == 2
                    ? "You've paid for the ride order successfully, thank you for using I-GO"
                    : "Vous avez payé la commande de course avec succès, merci d’utiliser I-GO", orderPrivateCar.getUserId(), 1);
@@ -1897,19 +1929,19 @@
        if(payType == 4){//现金支付
            SysIntegral query1 = sysIntegralMapper.query(orderPrivateCar.getCompanyId());
            userInfo.setIntegral(userInfo.getIntegral() + (orderMoney.intValue() * query1.getIntegral()));//积分
            //添加交易明细
            transactionDetailsService.saveData(uid, "完成订单", orderMoney.setScale(2, RoundingMode.HALF_EVEN).doubleValue(),
                    2, 1, 1, 1, orderId);
            userInfoService.updateById(userInfo);
            orderPrivateCar.setState(8);
            orderPrivateCar.setPayType(4);
            orderPrivateCar.setDriverPay(2);
            orderPrivateCar.setPayMoney(orderMoney.setScale(2, RoundingMode.HALF_EVEN).doubleValue());
            Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
            //处理优惠券和红包
            if(null != userCouponRecord){
                userCouponRecord.setState(2);
@@ -1923,7 +1955,7 @@
                driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(new BigDecimal(money)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                driverService.updateById(driver);
            }
            if(null != orderPrivateCar.getRedPacketId()){
                Double money = orderPrivateCar.getRedPacketMoney();
                incomeService.saveData(2, orderPrivateCar.getDriverId(), 7, orderPrivateCar.getId(), 1, money);
@@ -1932,7 +1964,7 @@
                driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(new BigDecimal(money)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                driverService.updateById(driver);
            }
            if(null != orderPrivateCar.getDiscountMoney() && 0 < orderPrivateCar.getDiscountMoney()){
                Double money = orderPrivateCar.getDiscountMoney();
                incomeService.saveData(2, orderPrivateCar.getDriverId(), 6, orderPrivateCar.getId(), 1, money);
@@ -1941,8 +1973,8 @@
                driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(new BigDecimal(money)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                driverService.updateById(driver);
            }
            //添加已收入明细
            Company company = companyService.selectById(orderPrivateCar.getCompanyId());
            Double speMoney = company.getSpeMoney();
@@ -1964,8 +1996,8 @@
//                driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
//                driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
//                driverService.updateById(driver);
            //记录司机待结算金额
            if(d.compareTo(new BigDecimal(0)) > 0){
                SettlementDetail settlementDetail = new SettlementDetail();
@@ -1976,7 +2008,7 @@
                settlementDetail.setPrice(d.doubleValue());
                settlementDetail.setCreateTime(new Date());
                settlementDetailService.insert(settlementDetail);
                SettlementAllocation settlementAllocation = settlementAllocationService.selectOne(null);
                if(null != settlementAllocation){
                    JSONObject jsonObject = JSON.parseObject(settlementAllocation.getContent());
@@ -2024,7 +2056,7 @@
                                    car.setVehicleId(UUIDUtil.getRandomCode());
                                    carService.updateById(car);
                                }
                                //司机下班,修改谷歌上的车辆信息
                                new Thread(()->{
                                    try {
@@ -2072,7 +2104,7 @@
                    }
                }
            }
            if(ToolUtil.isNotEmpty(userInfo.getEmail())){
                new Thread(new Runnable() {
                    @Override
@@ -2089,6 +2121,7 @@
                                aDouble = orderEvaluateService.queryDriverScore(orderPrivateCar.getDriverId());
                            }
                            Double aDouble1 = new BigDecimal(orderPrivateCar.getMileage()).divide(new BigDecimal(1000)).setScale(2, RoundingMode.HALF_EVEN).doubleValue();
                            Long serviceTime = new BigDecimal(orderPrivateCar.getEndServiceTime().getTime() - orderPrivateCar.getStartServiceTime().getTime()).divide(new BigDecimal(60000)).setScale(0, RoundingMode.HALF_EVEN).longValue();
                            Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
                            if(1 == language){
                                document.getElementById("english").remove();
@@ -2171,7 +2204,7 @@
                                Element lost_item_chinese = document.getElementById("lost_item_chinese");
                                lost_item_chinese.attr("href", "https://igo.i-go.group/mailbox/user/lossGoods.html?language=" + language + "&orderId=" + orderId + "&orderType=1");
                                Element track_chinese = document.getElementById("track_chinese");
                                track_chinese.attr("href", "https://igo.i-go.group/mailbox/user/location.html?orderId=" + orderId);
                                track_chinese.attr("href", "https://igo.i-go.group/mailbox/user/location.html?orderId=" + orderId + "&language=" + language);
                                Element pay_time_chinese = document.getElementById("pay_time_chinese");
                                pay_time_chinese.text(DateUtil.conversionFormat(language, sdf1.format(orderPrivateCar.getEndServiceTime())));
                                Elements driver_chinese = document.getElementsByClass("driver_chinese");
@@ -2184,7 +2217,7 @@
                                Element pf_chinese = document.getElementById("pf_chinese");
                                pf_chinese.text("司机评分:" + aDouble);
                                Element lc_chinese = document.getElementById("lc_chinese");
                                lc_chinese.text("里程:" + aDouble1 + "公里 /" + orderPrivateCar.getDuration() + "分钟");
                                lc_chinese.text("里程:" + aDouble1 + "公里 /" + serviceTime + "分钟");
                                Element start_time_chinese = document.getElementById("start_time_chinese");
                                start_time_chinese.text(sdf2.format(orderPrivateCar.getTravelTime()));
                                Element start_address_chinese = document.getElementById("start_address_chinese");
@@ -2278,7 +2311,7 @@
                                Element lost_item_english = document.getElementById("lost_item_english");
                                lost_item_english.attr("href", "https://igo.i-go.group/mailbox/user/lossGoods.html?language=" + language + "&orderId=" + orderId + "&orderType=1");
                                Element track_english = document.getElementById("track_english");
                                track_english.attr("href", "https://igo.i-go.group/mailbox/user/location.html?orderId=" + orderId);
                                track_english.attr("href", "https://igo.i-go.group/mailbox/user/location.html?orderId=" + orderId + "&language=" + language);
                                Element pay_time_english = document.getElementById("pay_time_english");
                                pay_time_english.text(DateUtil.conversionFormat(language, sdf1.format(orderPrivateCar.getEndServiceTime())));
                                Elements driver_english = document.getElementsByClass("driver_english");
@@ -2291,7 +2324,7 @@
                                Element pf_english = document.getElementById("pf_english");
                                pf_english.text("Driver Rating:" + aDouble);
                                Element lc_english = document.getElementById("lc_english");
                                lc_english.text("Mileage:" + aDouble1 + "KM / " + orderPrivateCar.getDuration() + "Minutes");
                                lc_english.text("Mileage:" + aDouble1 + "KM / " + serviceTime + "Minutes");
                                Element start_time_english = document.getElementById("start_time_english");
                                start_time_english.text(sdf2.format(orderPrivateCar.getTravelTime()));
                                Element start_address_english = document.getElementById("start_address_english");
@@ -2385,7 +2418,7 @@
                                Element lost_item_french = document.getElementById("lost_item_french");
                                lost_item_french.attr("href", "https://igo.i-go.group/mailbox/user/lossGoods.html?language=" + language + "&orderId=" + orderId + "&orderType=1");
                                Element track_french = document.getElementById("track_french");
                                track_french.attr("href", "https://igo.i-go.group/mailbox/user/location.html?orderId=" + orderId);
                                track_french.attr("href", "https://igo.i-go.group/mailbox/user/location.html?orderId=" + orderId + "&language=" + language);
                                Element pay_time_french = document.getElementById("pay_time_french");
                                pay_time_french.text(DateUtil.conversionFormat(language, sdf1.format(orderPrivateCar.getEndServiceTime())));
                                Elements driver_french = document.getElementsByClass("driver_french");
@@ -2398,7 +2431,7 @@
                                Element pf_french = document.getElementById("pf_french");
                                pf_french.text("Note du chauffeur: " + aDouble);
                                Element lc_french = document.getElementById("lc_french");
                                lc_french.text("Distance: " + aDouble1 + "km / " + orderPrivateCar.getDuration() + "minutes");
                                lc_french.text("Distance: " + aDouble1 + "km / " + serviceTime + "minutes");
                                Element start_time_french = document.getElementById("start_time_french");
                                start_time_french.text(sdf2.format(orderPrivateCar.getTravelTime()));
                                Element start_address_french = document.getElementById("start_address_french");
@@ -2411,9 +2444,9 @@
                                Element server_tel_french = document.getElementById("server_tel_french");
                                server_tel_french.attr("href", "tel:" + (null != phone ? phone.getPhone() : ""));
                            }
                            EmailUtil.send(userInfo.getEmail(), language == 1 ? "打车收据" : language == 2 ? "Ride receipt" : "Reçu de course",  document.html());
                            //开始生成pdf收据和html收据
                            File file = new File("/home/igotechgh/nginx/html/files/html/");
                            if(!file.exists()){
@@ -2427,7 +2460,7 @@
                            fileWriter.write(document.html());
                            fileWriter.flush();
                            fileWriter.close();
                            File file1 = new File("/home/igotechgh/nginx/html/files/pdf/");
                            if(!file1.exists()){
                                file1.mkdirs();
@@ -2460,23 +2493,23 @@
                                tEmail.setAmOrPm(language==1?"下午":language==2?"afternoon":"après-midi");
                            }
                            emailService.insert(tEmail);
                        }catch (Exception e){
                            e.printStackTrace();
                        }
                    }
                }).start();
            }
            // TODO: 2020/5/24 这里需要给司机和用户推送订单状态
            new Thread(new Runnable() {
                @Override
                public void run() {
                    pushUtil.pushOrderState(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0, "");
                    pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0, "");
                    pushUtil.pushOrderState(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0, "", "user");
                    pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0, "", "user");
                    Integer language1 = driver.getLanguage();
                    String text = "";
                    switch (language1){
@@ -2489,7 +2522,7 @@
                        case 3:
                            text = "Le client a choisi de payer en espèces, vous devez donc encaisser le paiement.Confirmez si vous avez reçu les frais pour cette commande : Espèces GHS " + orderPrivateCar.getPayMoney();
                            break;
                    }
                    String audioUrl = "";
                    String fileName = "offlinePayment" + orderPrivateCar.getDriverId() + UUIDUtil.getRandomCode(5) + ".mp3";
@@ -2523,12 +2556,12 @@
                    pushUtil.pushOfflinePayment(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, orderPrivateCar.getPayMoney(), audioUrl);
                }
            }).start();
            systemNoticeService.addSystemNotice(1, language == 1 ? "您已成功完成出行订单支付,谢谢使用!" : language == 2
                    ? "You've paid for the ride order successfully, thank you for using I-GO"
                    : "Vous avez payé la commande de course avec succès, merci d’utiliser I-GO", orderPrivateCar.getUserId(), 1);
        }
        this.updateAllColumnById(orderPrivateCar);
        return resultUtil;
    }
@@ -2692,11 +2725,7 @@
        if(null != query){
            //添加交易明细
            transactionDetailsService.saveData(orderPrivateCar.getUserId(), "取消订单", query.getAmount(), 2, 1, 1, 1, query.getOrderId());
            if(5 == orderPrivateCar.getOldState()){
                orderPrivateCar.setState(6);
            }else{
                orderPrivateCar.setState(10);
            }
            orderPrivateCar.setState(10);
            //解除小号绑定
            if(orderPrivateCar.getBindId() != null){
                ChinaMobileUtil.midAxbUnBindSend(orderPrivateCar.getBindId(),orderPrivateCar.getTelX());
@@ -2741,11 +2770,11 @@
                }
                this.deleteTask(orderPrivateCar.getId());//删除定时任务
    
                pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0, "");
                pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0, "", "user");
            }else{
                incomeService.saveData(1, orderPrivateCar.getCompanyId(), 3, orderPrivateCar.getId(), 1, amount.doubleValue());
            }
            pushUtil.pushOrderState(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0, "");
            pushUtil.pushOrderState(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0, "", "user");
            //添加消息
            systemNoticeService.addSystemNotice(1, language == 1 ? "您已使用余额成功支付取消订单费用,谢谢使用!" : language == 2
@@ -2825,6 +2854,7 @@
                                aDouble = orderEvaluateService.queryDriverScore(orderPrivateCar.getDriverId());
                            }
                            Double aDouble1 = new BigDecimal(orderPrivateCar.getMileage()).divide(new BigDecimal(1000)).setScale(2, RoundingMode.HALF_EVEN).doubleValue();
                            Long serviceTime = new BigDecimal(orderPrivateCar.getEndServiceTime().getTime() - orderPrivateCar.getStartServiceTime().getTime()).divide(new BigDecimal(60000)).setScale(0, RoundingMode.HALF_EVEN).longValue();
                            if(1 == language){
                                document.getElementById("english").remove();
                                document.getElementById("french").remove();
@@ -2906,7 +2936,7 @@
                                Element lost_item_chinese = document.getElementById("lost_item_chinese");
                                lost_item_chinese.attr("href", "https://igo.i-go.group/mailbox/user/lossGoods.html?language=" + language + "&orderId=" + id + "&orderType=1");
                                Element track_chinese = document.getElementById("track_chinese");
                                track_chinese.attr("href", "https://igo.i-go.group/mailbox/user/location.html?orderId=" + id);
                                track_chinese.attr("href", "https://igo.i-go.group/mailbox/user/location.html?orderId=" + id + "&language=" + language);
                                Element pay_time_chinese = document.getElementById("pay_time_chinese");
                                pay_time_chinese.text(DateUtil.conversionFormat(language, sdf1.format(orderPrivateCar.getEndServiceTime())));
                                Elements driver_chinese = document.getElementsByClass("driver_chinese");
@@ -2919,7 +2949,7 @@
                                Element pf_chinese = document.getElementById("pf_chinese");
                                pf_chinese.text("司机评分:" + aDouble);
                                Element lc_chinese = document.getElementById("lc_chinese");
                                lc_chinese.text("里程:" + aDouble1 + "公里 /" + orderPrivateCar.getDuration() + "分钟");
                                lc_chinese.text("里程:" + aDouble1 + "公里 /" + serviceTime + "分钟");
                                Element start_time_chinese = document.getElementById("start_time_chinese");
                                start_time_chinese.text(sdf2.format(orderPrivateCar.getTravelTime()));
                                Element start_address_chinese = document.getElementById("start_address_chinese");
@@ -3013,7 +3043,7 @@
                                Element lost_item_english = document.getElementById("lost_item_english");
                                lost_item_english.attr("href", "https://igo.i-go.group/mailbox/user/lossGoods.html?language=" + language + "&orderId=" + id + "&orderType=1");
                                Element track_english = document.getElementById("track_english");
                                track_english.attr("href", "https://igo.i-go.group/mailbox/user/location.html?orderId=" + id);
                                track_english.attr("href", "https://igo.i-go.group/mailbox/user/location.html?orderId=" + id + "&language=" + language);
                                Element pay_time_english = document.getElementById("pay_time_english");
                                pay_time_english.text(DateUtil.conversionFormat(language, sdf1.format(orderPrivateCar.getEndServiceTime())));
                                Elements driver_english = document.getElementsByClass("driver_english");
@@ -3026,7 +3056,7 @@
                                Element pf_english = document.getElementById("pf_english");
                                pf_english.text("Driver Rating:" + aDouble);
                                Element lc_english = document.getElementById("lc_english");
                                lc_english.text("Mileage:" + aDouble1 + "KM / " + orderPrivateCar.getDuration() + "Minutes");
                                lc_english.text("Mileage:" + aDouble1 + "KM / " + serviceTime + "Minutes");
                                Element start_time_english = document.getElementById("start_time_english");
                                start_time_english.text(sdf2.format(orderPrivateCar.getTravelTime()));
                                Element start_address_english = document.getElementById("start_address_english");
@@ -3120,7 +3150,7 @@
                                Element lost_item_french = document.getElementById("lost_item_french");
                                lost_item_french.attr("href", "https://igo.i-go.group/mailbox/user/lossGoods.html?language=" + language + "&orderId=" + id + "&orderType=1");
                                Element track_french = document.getElementById("track_french");
                                track_french.attr("href", "https://igo.i-go.group/mailbox/user/location.html?orderId=" + id);
                                track_french.attr("href", "https://igo.i-go.group/mailbox/user/location.html?orderId=" + id + "&language=" + language);
                                Element pay_time_french = document.getElementById("pay_time_french");
                                pay_time_french.text(DateUtil.conversionFormat(language, sdf1.format(orderPrivateCar.getEndServiceTime())));
                                Elements driver_french = document.getElementsByClass("driver_french");
@@ -3133,7 +3163,7 @@
                                Element pf_french = document.getElementById("pf_french");
                                pf_french.text("Note du chauffeur: " + aDouble);
                                Element lc_french = document.getElementById("lc_french");
                                lc_french.text("Distance: " + aDouble1 + "km / " + orderPrivateCar.getDuration() + "minutes");
                                lc_french.text("Distance: " + aDouble1 + "km / " + serviceTime + "minutes");
                                Element start_time_french = document.getElementById("start_time_french");
                                start_time_french.text(sdf2.format(orderPrivateCar.getTravelTime()));
                                Element start_address_french = document.getElementById("start_address_french");
@@ -3210,8 +3240,8 @@
            new Thread(new Runnable() {
                @Override
                public void run() {
                    pushUtil.pushOrderState(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0, "");
                    pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0, "");
                    pushUtil.pushOrderState(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0, "", "user");
                    pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0, "", "user");
                }
            }).start();
@@ -3354,21 +3384,23 @@
        Integer driverTimeOutTime = 0;
        Integer driverTimeOut = 0;
        CancleOrder cancleOrder = cancleOrderService.selectOne(new EntityWrapper<CancleOrder>().eq("companyId", companyId));
        JSONObject jsonObject = JSON.parseObject(cancleOrder.getContent());
        int driverTimeout1 = jsonObject.getIntValue("driverTimeout");
        if(orderPrivateCar.getOrderType() == 1 && null != orderPrivateCar.getEstimateArriveTime()){
            long time = orderPrivateCar.getEstimateArriveTime().getTime() + driverTimeout1 * 60000L;
            if(System.currentTimeMillis() > time){
                driverTimeOutTime = Double.valueOf((System.currentTimeMillis() - time) / 60000).intValue();
                driverTimeOutTime = driverTimeOutTime == 0 ? 1 : driverTimeOutTime;
                driverTimeOut = 1;
            }
        }else{
            long time = orderPrivateCar.getTravelTime().getTime() + driverTimeout1 * 60000L;
            if(System.currentTimeMillis() >= time){
                driverTimeOutTime = Double.valueOf((System.currentTimeMillis() - time) / 60000).intValue();
                driverTimeOutTime = driverTimeOutTime == 0 ? 1 : driverTimeOutTime;
                driverTimeOut = 1;
        if(null != cancleOrder){
            JSONObject jsonObject = JSON.parseObject(cancleOrder.getContent());
            int driverTimeout1 = jsonObject.getIntValue("driverTimeout");
            if(orderPrivateCar.getOrderType() == 1 && null != orderPrivateCar.getEstimateArriveTime()){
                long time = orderPrivateCar.getEstimateArriveTime().getTime() + driverTimeout1 * 60000L;
                if(System.currentTimeMillis() > time){
                    driverTimeOutTime = Double.valueOf((System.currentTimeMillis() - time) / 60000).intValue();
                    driverTimeOutTime = driverTimeOutTime == 0 ? 1 : driverTimeOutTime;
                    driverTimeOut = 1;
                }
            }else{
                long time = orderPrivateCar.getTravelTime().getTime() + driverTimeout1 * 60000L;
                if(System.currentTimeMillis() >= time){
                    driverTimeOutTime = Double.valueOf((System.currentTimeMillis() - time) / 60000).intValue();
                    driverTimeOutTime = driverTimeOutTime == 0 ? 1 : driverTimeOutTime;
                    driverTimeOut = 1;
                }
            }
        }