Pu Zhibing
1 天以前 ddf438536267b9c9bb77369cdccce4e67206842a
UserGOPOSTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -4,6 +4,8 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alipay.global.api.model.ResultStatusType;
import com.alipay.global.api.response.ams.pay.AlipayPayQueryResponse;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.stylefeng.guns.core.util.ToolUtil;
@@ -60,7 +62,7 @@
import java.math.RoundingMode;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.*;
import java.util.stream.Collectors;
@@ -384,73 +386,73 @@
        
    
        //google创建车辆信息
        String vehicleId = null;
        if(null != orderPrivateCar.getDriverId()) {
            Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
            Car car = carMapper.selectById(driver.getCarId());
            if (!StringUtils.hasLength(car.getVehicleId())) {
                car.setVehicleId(UUIDUtil.getRandomCode());
                carMapper.updateById(car);
            }
            vehicleId = car.getVehicleId();
            //查询车辆信息,没有则创建信息
            String vehicles = fleetEngineUtil.getVehicles(car.getVehicleId());
            if (ToolUtil.isEmpty(vehicles)) {
                CarModel carModel = carModelMapper.selectById(car.getCarModelId());
                boolean createVehicles = fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
                if (!createVehicles) {
                    for (int i = 0; i < 5; i++) {
                        createVehicles = fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
                        if (createVehicles) {
                            break;
                        }
                        Thread.sleep(5000L);
                    }
                }
                boolean updateVehicles = fleetEngineUtil.updateVehicles("ONLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
                if (!updateVehicles) {
                    for (int i = 0; i < 5; i++) {
                        updateVehicles = fleetEngineUtil.updateVehicles("ONLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
                        if (updateVehicles) {
                            break;
                        }
                        Thread.sleep(5000L);
                    }
                }
            }
        }
        //创建行程数据
        String trip = fleetEngineUtil.getTrip(orderPrivateCar.getTripId());
        int count = orderLogisticsService.selectCount(new EntityWrapper<OrderLogistics>().eq("tripId", orderPrivateCar.getTripId()));
        int count1 = this.selectCount(new EntityWrapper<OrderPrivateCar>().eq("tripId", orderPrivateCar.getTripId()));
        if(ToolUtil.isNotEmpty(trip) || (count + count1) > 0){
            String randomCode = UUIDUtil.getRandomCode();
            redisUtil.setStrValue("trip" + orderPrivateCar.getUserId(), randomCode);
            OrderPrivateCar orderPrivateCar1 = new OrderPrivateCar();
            orderPrivateCar1.setId(orderPrivateCar.getId());
            orderPrivateCar1.setTripId(randomCode);
            this.updateById(orderPrivateCar1);
            orderPrivateCar.setTripId(randomCode);
        }
        JSONObject createTrip = fleetEngineUtil.createTrip(vehicleId, 1, orderPrivateCar.getTripId(),
                orderPrivateCar.getStartLat().toString(), orderPrivateCar.getStartLon().toString(), orderPrivateCar.getEndLat().toString(), orderPrivateCar.getEndLon().toString());
        JSONObject error = createTrip.getJSONObject("error");
        if(null != error){
            for (int i = 0; i < 5; i++) {
                createTrip = fleetEngineUtil.createTrip(vehicleId, 1, orderPrivateCar.getTripId(),
                        orderPrivateCar.getStartLat().toString(), orderPrivateCar.getStartLon().toString(), orderPrivateCar.getEndLat().toString(), orderPrivateCar.getEndLon().toString());
                error = createTrip.getJSONObject("error");
                String tripStatus = createTrip.getString("tripStatus");
                if(null == error && "NEW".equals(tripStatus)){
                    break;
                }
                try {
                    Thread.sleep(3000L);
                } catch (InterruptedException e) {
                    throw new RuntimeException(e);
                }
            }
        }
//        String vehicleId = null;
//        if(null != orderPrivateCar.getDriverId()) {
//            Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
//            Car car = carMapper.selectById(driver.getCarId());
//            if (!StringUtils.hasLength(car.getVehicleId())) {
//                car.setVehicleId(UUIDUtil.getRandomCode());
//                carMapper.updateById(car);
//            }
//            vehicleId = car.getVehicleId();
//            //查询车辆信息,没有则创建信息
//            String vehicles = fleetEngineUtil.getVehicles(car.getVehicleId());
//            if (ToolUtil.isEmpty(vehicles)) {
//                CarModel carModel = carModelMapper.selectById(car.getCarModelId());
//                boolean createVehicles = fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
//                if (!createVehicles) {
//                    for (int i = 0; i < 5; i++) {
//                        createVehicles = fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
//                        if (createVehicles) {
//                            break;
//                        }
//                        Thread.sleep(5000L);
//                    }
//                }
//                boolean updateVehicles = fleetEngineUtil.updateVehicles("ONLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
//                if (!updateVehicles) {
//                    for (int i = 0; i < 5; i++) {
//                        updateVehicles = fleetEngineUtil.updateVehicles("ONLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
//                        if (updateVehicles) {
//                            break;
//                        }
//                        Thread.sleep(5000L);
//                    }
//                }
//            }
//        }
//        //创建行程数据
//        String trip = fleetEngineUtil.getTrip(orderPrivateCar.getTripId());
//        int count = orderLogisticsService.selectCount(new EntityWrapper<OrderLogistics>().eq("tripId", orderPrivateCar.getTripId()));
//        int count1 = this.selectCount(new EntityWrapper<OrderPrivateCar>().eq("tripId", orderPrivateCar.getTripId()));
//        if(ToolUtil.isNotEmpty(trip) || (count + count1) > 0){
//            String randomCode = UUIDUtil.getRandomCode();
//            redisUtil.setStrValue("trip" + orderPrivateCar.getUserId(), randomCode);
//            OrderPrivateCar orderPrivateCar1 = new OrderPrivateCar();
//            orderPrivateCar1.setId(orderPrivateCar.getId());
//            orderPrivateCar1.setTripId(randomCode);
//            this.updateById(orderPrivateCar1);
//            orderPrivateCar.setTripId(randomCode);
//        }
//        JSONObject createTrip = fleetEngineUtil.createTrip(vehicleId, 1, orderPrivateCar.getTripId(),
//                orderPrivateCar.getStartLat().toString(), orderPrivateCar.getStartLon().toString(), orderPrivateCar.getEndLat().toString(), orderPrivateCar.getEndLon().toString());
//        JSONObject error = createTrip.getJSONObject("error");
//        if(null != error){
//            for (int i = 0; i < 5; i++) {
//                createTrip = fleetEngineUtil.createTrip(vehicleId, 1, orderPrivateCar.getTripId(),
//                        orderPrivateCar.getStartLat().toString(), orderPrivateCar.getStartLon().toString(), orderPrivateCar.getEndLat().toString(), orderPrivateCar.getEndLon().toString());
//                error = createTrip.getJSONObject("error");
//                String tripStatus = createTrip.getString("tripStatus");
//                if(null == error && "NEW".equals(tripStatus)){
//                    break;
//                }
//                try {
//                    Thread.sleep(3000L);
//                } catch (InterruptedException e) {
//                    throw new RuntimeException(e);
//                }
//            }
//        }
        
        if(orderSource == 2){//扫码下单
@@ -929,24 +931,24 @@
        }
        
        //修改行程信息
        if(orderPrivateCar.getState() == 10 || orderPrivateCar.getState() == 12){
            Car car = carService.selectById(orderPrivateCar.getCarId());
            boolean updateTrip = fleetEngineUtil.updateTrip("CANCELED", (null != car ? car.getVehicleId() : null), null, orderPrivateCar.getTripId(), null, null, null, null);
            if(!updateTrip){
                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);
            }
        }
//        if(orderPrivateCar.getState() == 10 || orderPrivateCar.getState() == 12){
//            Car car = carService.selectById(orderPrivateCar.getCarId());
//            boolean updateTrip = fleetEngineUtil.updateTrip("CANCELED", (null != car ? car.getVehicleId() : null), null, orderPrivateCar.getTripId(), null, null, null, null);
//            if(!updateTrip){
//                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);
//            }
//        }
        //添加消息
        systemNoticeService.addSystemNotice(1, language == 1 ? "您已成功取消出行订单,谢谢使用!" : language == 2 ? "You've cancelled the ride order successfully, thank you for using I-GO " : "Vous avez annulé la commande de course avec succès, merci d’utiliser I-GO", orderPrivateCar.getUserId(), 1);
        Map<String, Object> map = new HashMap<>();
@@ -991,22 +993,64 @@
                orderCancelService.updateById(orderCancel);
                SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
                String merchantTransactionId = sdf.format(new Date()) + "1" + language + id;
                CheckoutRequest checkoutRequest = new CheckoutRequest();
                checkoutRequest.setMsisdn(Long.valueOf(userInfo.getPhone()));
                checkoutRequest.setCustomerEmail(userInfo.getEmail());
                checkoutRequest.setAccountNumber(userInfo.getPhone());
                checkoutRequest.setCustomerFirstName(userInfo.getFirstName());
                checkoutRequest.setCustomerLastName(userInfo.getLastName());
                checkoutRequest.setRequestAmount(amount);
                checkoutRequest.setMerchantTransactionId(merchantTransactionId);
                checkoutRequest.setRequestDescription("Cancel a trip");
                checkoutRequest.setCallbackUrl(callbackPath + "/base/wxCancelOrderTaxi");
                checkoutRequest.setPendingRedirectUrl("");
                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);
//                CheckoutRequest checkoutRequest = new CheckoutRequest();
//                checkoutRequest.setMsisdn(Long.valueOf(userInfo.getPhone()));
//                checkoutRequest.setCustomerEmail(userInfo.getEmail());
//                checkoutRequest.setAccountNumber(userInfo.getPhone());
//                checkoutRequest.setCustomerFirstName(userInfo.getFirstName());
//                checkoutRequest.setCustomerLastName(userInfo.getLastName());
//                checkoutRequest.setRequestAmount(amount);
//                checkoutRequest.setMerchantTransactionId(merchantTransactionId);
//                checkoutRequest.setRequestDescription("Cancel a trip");
//                checkoutRequest.setCallbackUrl(callbackPath + "/base/wxCancelOrderTaxi");
//                checkoutRequest.setPendingRedirectUrl("");
//                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);
                AntomPaymentUtil.PaymentVO payment = new AntomPaymentUtil.PaymentVO();
                payment.setPaymentRequestId(merchantTransactionId);
                payment.setAmountValue(amount.toString());
                payment.setCurrency("");
                payment.setOrderDescription("Cancel a trip");
                payment.setPaymentNotifyUrl(callbackPath + "/base/wxCancelOrderTaxiAntom");
                payment.setPaymentRedirectUrl("https://igo.i-go.group/payMoney/pages/success.html");
                payment.setReferenceOrderId(orderPrivateCar.getId() + "1");
                resultUtil = AntomPaymentUtil.pay(payment);
                if(resultUtil.getCode()==200){
                    paymentRecordService.saveData(1, null, null, id, 1, 1, amount, null, 1);//添加预支付数据
                    //创建定时任务查询订单支付状态
                    ScheduledExecutorService scheduledExecutorService = Executors.newScheduledThreadPool(1);
                    scheduledExecutorService.schedule(() -> {
                        try {
                            int num = 1;
                            int wait = 0;
                            while (num <= 13) {
                                int min = 5000;
                                wait += (min * num);
                                OrderPrivateCar orderPrivateCar1 = this.selectById(orderPrivateCar.getId());
                                if (orderPrivateCar1.getState() != 12) {
                                    break;
                                }
                                ResultUtil<AlipayPayQueryResponse> resultUtil1 = AntomPaymentUtil.inquiryPayment(merchantTransactionId);
                                if(200 == resultUtil1.getCode()){
                                    AlipayPayQueryResponse data = resultUtil1.getData();
                                    ResultStatusType resultStatus = data.getResult().getResultStatus();
                                    if(resultStatus.equals(ResultStatusType.S)){
                                        payCancelOrderPrivateCar(orderPrivateCar1.getId(), data.getPaymentId(), language);
                                        break;
                                    }
                                }
                                Thread.sleep(wait);
                                num++;
                            }
                        } catch (Exception e) {
                            e.printStackTrace();
                        }finally {
                            scheduledExecutorService.shutdown();
                        }
                    }, 5, TimeUnit.SECONDS);
                }
            }
@@ -1016,22 +1060,64 @@
                BankCard bankCard = bankCardService.selectById(bankCardId);
                SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
                String merchantTransactionId = sdf.format(new Date()) + "1" + id;
                CheckoutRequest checkoutRequest = new CheckoutRequest();
                checkoutRequest.setMsisdn(Long.valueOf(bankCard.getCode()));
                checkoutRequest.setCustomerEmail(userInfo.getEmail());
                checkoutRequest.setAccountNumber(bankCard.getCode());
                checkoutRequest.setCustomerFirstName(bankCard.getFirstName());
                checkoutRequest.setCustomerLastName(bankCard.getLastName());
                checkoutRequest.setRequestAmount(amount);
                checkoutRequest.setMerchantTransactionId(merchantTransactionId);
                checkoutRequest.setRequestDescription("Cancel a trip");
                checkoutRequest.setCallbackUrl(callbackPath + "/base/wxCancelOrderTaxi");
                checkoutRequest.setPendingRedirectUrl("");
                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);
//                CheckoutRequest checkoutRequest = new CheckoutRequest();
//                checkoutRequest.setMsisdn(Long.valueOf(bankCard.getCode()));
//                checkoutRequest.setCustomerEmail(userInfo.getEmail());
//                checkoutRequest.setAccountNumber(bankCard.getCode());
//                checkoutRequest.setCustomerFirstName(bankCard.getFirstName());
//                checkoutRequest.setCustomerLastName(bankCard.getLastName());
//                checkoutRequest.setRequestAmount(amount);
//                checkoutRequest.setMerchantTransactionId(merchantTransactionId);
//                checkoutRequest.setRequestDescription("Cancel a trip");
//                checkoutRequest.setCallbackUrl(callbackPath + "/base/wxCancelOrderTaxi");
//                checkoutRequest.setPendingRedirectUrl("");
//                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);
                AntomPaymentUtil.PaymentVO payment = new AntomPaymentUtil.PaymentVO();
                payment.setPaymentRequestId(merchantTransactionId);
                payment.setAmountValue(amount.toString());
                payment.setCurrency("");
                payment.setOrderDescription("Cancel a trip");
                payment.setPaymentNotifyUrl(callbackPath + "/base/wxCancelOrderTaxiAntom");
                payment.setPaymentRedirectUrl("https://igo.i-go.group/payMoney/pages/success.html");
                payment.setReferenceOrderId(orderPrivateCar.getId() + "1");
                resultUtil = AntomPaymentUtil.pay(payment);
                if(resultUtil.getCode()==200){
                    paymentRecordService.saveData(1, null, null, id, 1, 2, amount, null, 1);//添加预支付数据
                    //创建定时任务查询订单支付状态
                    ScheduledExecutorService scheduledExecutorService = Executors.newScheduledThreadPool(1);
                    scheduledExecutorService.schedule(() -> {
                        try {
                            int num = 1;
                            int wait = 0;
                            while (num <= 13) {
                                int min = 5000;
                                wait += (min * num);
                                OrderPrivateCar orderPrivateCar1 = this.selectById(orderPrivateCar.getId());
                                if (orderPrivateCar1.getState() != 12) {
                                    break;
                                }
                                ResultUtil<AlipayPayQueryResponse> resultUtil1 = AntomPaymentUtil.inquiryPayment(merchantTransactionId);
                                if(200 == resultUtil1.getCode()){
                                    AlipayPayQueryResponse data = resultUtil1.getData();
                                    ResultStatusType resultStatus = data.getResult().getResultStatus();
                                    if(resultStatus.equals(ResultStatusType.S)){
                                        payCancelOrderPrivateCar(orderPrivateCar1.getId(), data.getPaymentId(), language);
                                        break;
                                    }
                                }
                                Thread.sleep(wait);
                                num++;
                            }
                        } catch (Exception e) {
                            e.printStackTrace();
                        }finally {
                            scheduledExecutorService.shutdown();
                        }
                    }, 5, TimeUnit.SECONDS);
                }
            }
@@ -1416,24 +1502,65 @@
        if(payType == 1){//手机支付
            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
            String merchantTransactionId = sdf.format(new Date()) + "1" + language + orderId;
            CheckoutRequest checkoutRequest = new CheckoutRequest();
            checkoutRequest.setMsisdn(Long.valueOf(userInfo.getPhone()));
            checkoutRequest.setCustomerEmail(userInfo.getEmail());
            checkoutRequest.setAccountNumber(userInfo.getPhone());
            checkoutRequest.setCustomerFirstName(userInfo.getFirstName());
            checkoutRequest.setCustomerLastName(userInfo.getLastName());
            checkoutRequest.setRequestAmount(orderMoney.setScale(2, RoundingMode.HALF_EVEN).doubleValue());
            checkoutRequest.setMerchantTransactionId(merchantTransactionId);
            checkoutRequest.setRequestDescription("Travel completion payment");
            checkoutRequest.setCallbackUrl(callbackPath + "/base/wxPayOrderTaxi");
            checkoutRequest.setPendingRedirectUrl("");
            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);
//            CheckoutRequest checkoutRequest = new CheckoutRequest();
//            checkoutRequest.setMsisdn(Long.valueOf(userInfo.getPhone()));
//            checkoutRequest.setCustomerEmail(userInfo.getEmail());
//            checkoutRequest.setAccountNumber(userInfo.getPhone());
//            checkoutRequest.setCustomerFirstName(userInfo.getFirstName());
//            checkoutRequest.setCustomerLastName(userInfo.getLastName());
//            checkoutRequest.setRequestAmount(orderMoney.setScale(2, RoundingMode.HALF_EVEN).doubleValue());
//            checkoutRequest.setMerchantTransactionId(merchantTransactionId);
//            checkoutRequest.setRequestDescription("Travel completion payment");
//            checkoutRequest.setCallbackUrl(callbackPath + "/base/wxPayOrderTaxi");
//            checkoutRequest.setPendingRedirectUrl("");
//            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);
            AntomPaymentUtil.PaymentVO payment = new AntomPaymentUtil.PaymentVO();
            payment.setPaymentRequestId(merchantTransactionId);
            payment.setAmountValue(orderMoney.setScale(2, RoundingMode.HALF_EVEN).toString());
            payment.setCurrency("");
            payment.setOrderDescription("Travel completion payment");
            payment.setPaymentNotifyUrl(callbackPath + "/base/wxPayOrderTaxiAntom");
            payment.setPaymentRedirectUrl("https://igo.i-go.group/payMoney/pages/success.html");
            payment.setReferenceOrderId(orderPrivateCar.getId() + "1");
            resultUtil = AntomPaymentUtil.pay(payment);
            if(resultUtil.getCode()==200){
                paymentRecordService.saveData(1, null, null, orderId, 1, 1,
                        orderMoney.setScale(2, RoundingMode.HALF_EVEN).doubleValue(), null, 1);//添加预支付数据
                //创建定时任务查询订单支付状态
                ScheduledExecutorService scheduledExecutorService = Executors.newScheduledThreadPool(1);
                scheduledExecutorService.schedule(() -> {
                    try {
                        int num = 1;
                        int wait = 0;
                        while (num <= 13) {
                            int min = 5000;
                            wait += (min * num);
                            OrderPrivateCar orderPrivateCar1 = this.selectById(orderPrivateCar.getId());
                            if (orderPrivateCar1.getState() != 7) {
                                break;
                            }
                            ResultUtil<AlipayPayQueryResponse> resultUtil1 = AntomPaymentUtil.inquiryPayment(merchantTransactionId);
                            if(200 == resultUtil1.getCode()){
                                AlipayPayQueryResponse data = resultUtil1.getData();
                                ResultStatusType resultStatus = data.getResult().getResultStatus();
                                if(resultStatus.equals(ResultStatusType.S)){
                                    payOrderPrivateCarCallback(orderPrivateCar1.getId(), data.getPaymentId(), language);
                                    break;
                                }
                            }
                            Thread.sleep(wait);
                            num++;
                        }
                    } catch (Exception e) {
                        e.printStackTrace();
                    }finally {
                        scheduledExecutorService.shutdown();
                    }
                }, 5, TimeUnit.SECONDS);
            }else{
                resultUtil = ResultUtil.error(language == 1 ? "支付失败" : language == 2 ? "Payment failure" : "Paiement échoué", "");
            }
@@ -1443,24 +1570,65 @@
            BankCard bankCard = bankCardService.selectById(bankCardId);
            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
            String merchantTransactionId = sdf.format(new Date()) + "1" + language + orderId;
            CheckoutRequest checkoutRequest = new CheckoutRequest();
            checkoutRequest.setMsisdn(Long.valueOf(bankCard.getCode()));
            checkoutRequest.setCustomerEmail(userInfo.getEmail());
            checkoutRequest.setAccountNumber(bankCard.getCode());
            checkoutRequest.setCustomerFirstName(bankCard.getFirstName());
            checkoutRequest.setCustomerLastName(bankCard.getLastName());
            checkoutRequest.setRequestAmount(orderMoney.setScale(2, RoundingMode.HALF_EVEN).doubleValue());
            checkoutRequest.setMerchantTransactionId(merchantTransactionId);
            checkoutRequest.setRequestDescription("Travel completion payment");
            checkoutRequest.setCallbackUrl(callbackPath + "/base/wxPayOrderTaxi");
            checkoutRequest.setPendingRedirectUrl("");
            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);
//            CheckoutRequest checkoutRequest = new CheckoutRequest();
//            checkoutRequest.setMsisdn(Long.valueOf(bankCard.getCode()));
//            checkoutRequest.setCustomerEmail(userInfo.getEmail());
//            checkoutRequest.setAccountNumber(bankCard.getCode());
//            checkoutRequest.setCustomerFirstName(bankCard.getFirstName());
//            checkoutRequest.setCustomerLastName(bankCard.getLastName());
//            checkoutRequest.setRequestAmount(orderMoney.setScale(2, RoundingMode.HALF_EVEN).doubleValue());
//            checkoutRequest.setMerchantTransactionId(merchantTransactionId);
//            checkoutRequest.setRequestDescription("Travel completion payment");
//            checkoutRequest.setCallbackUrl(callbackPath + "/base/wxPayOrderTaxi");
//            checkoutRequest.setPendingRedirectUrl("");
//            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);
            AntomPaymentUtil.PaymentVO payment = new AntomPaymentUtil.PaymentVO();
            payment.setPaymentRequestId(merchantTransactionId);
            payment.setAmountValue(orderMoney.setScale(2, RoundingMode.HALF_EVEN).toString());
            payment.setCurrency("");
            payment.setOrderDescription("Travel completion payment");
            payment.setPaymentNotifyUrl(callbackPath + "/base/wxPayOrderTaxiAntom");
            payment.setPaymentRedirectUrl("https://igo.i-go.group/payMoney/pages/success.html");
            payment.setReferenceOrderId(orderPrivateCar.getId() + "1");
            resultUtil = AntomPaymentUtil.pay(payment);
            if(resultUtil.getCode()==200){
                paymentRecordService.saveData(1, null, null, orderId, 1, 2,
                        orderMoney.setScale(2, RoundingMode.HALF_EVEN).doubleValue(), null, 1);//添加预支付数据
                //创建定时任务查询订单支付状态
                ScheduledExecutorService scheduledExecutorService = Executors.newScheduledThreadPool(1);
                scheduledExecutorService.schedule(() -> {
                    try {
                        int num = 1;
                        int wait = 0;
                        while (num <= 13) {
                            int min = 5000;
                            wait += (min * num);
                            OrderPrivateCar orderPrivateCar1 = this.selectById(orderPrivateCar.getId());
                            if (orderPrivateCar1.getState() != 7) {
                                break;
                            }
                            ResultUtil<AlipayPayQueryResponse> resultUtil1 = AntomPaymentUtil.inquiryPayment(merchantTransactionId);
                            if(200 == resultUtil1.getCode()){
                                AlipayPayQueryResponse data = resultUtil1.getData();
                                ResultStatusType resultStatus = data.getResult().getResultStatus();
                                if(resultStatus.equals(ResultStatusType.S)){
                                    payOrderPrivateCarCallback(orderPrivateCar1.getId(), data.getPaymentId(), language);
                                    break;
                                }
                            }
                            Thread.sleep(wait);
                            num++;
                        }
                    } catch (Exception e) {
                        e.printStackTrace();
                    }finally {
                        scheduledExecutorService.shutdown();
                    }
                }, 5, TimeUnit.SECONDS);
            }else{
                resultUtil = ResultUtil.error(language == 1 ? "支付失败" : language == 2 ? "Payment failure" : "Paiement échoué", "");
            }
@@ -2058,47 +2226,47 @@
                                }
                            
                                //司机下班,修改谷歌上的车辆信息
                                new Thread(()->{
                                    try {
                                        CarModel carModel = carModelMapper.selectById(car.getCarModelId());
                                        String vehicles = fleetEngineUtil.getVehicles(car.getVehicleId());
                                        if(ToolUtil.isEmpty(vehicles)){
                                            boolean createVehicles = fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
                                            if(!createVehicles){
                                                for (int i = 0; i < 5; i++) {
                                                    createVehicles = fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
                                                    if(createVehicles){
                                                        break;
                                                    }
                                                    Thread.sleep(5000L);
                                                }
                                            }
                                            boolean updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
                                            if(!updateVehicles){
                                                for (int i = 0; i < 5; i++) {
                                                    updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
                                                    if(updateVehicles){
                                                        break;
                                                    }
                                                    Thread.sleep(5000L);
                                                }
                                            }
                                        }else{
                                            boolean updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
                                            if(!updateVehicles){
                                                for (int i = 0; i < 5; i++) {
                                                    updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
                                                    if(updateVehicles){
                                                        break;
                                                    }
                                                    Thread.sleep(5000L);
                                                }
                                            }
                                        }
                                    }catch (Exception e){
                                        e.printStackTrace();
                                    }
                                }).start();
//                                new Thread(()->{
//                                    try {
//                                        CarModel carModel = carModelMapper.selectById(car.getCarModelId());
//                                        String vehicles = fleetEngineUtil.getVehicles(car.getVehicleId());
//                                        if(ToolUtil.isEmpty(vehicles)){
//                                            boolean createVehicles = fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
//                                            if(!createVehicles){
//                                                for (int i = 0; i < 5; i++) {
//                                                    createVehicles = fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
//                                                    if(createVehicles){
//                                                        break;
//                                                    }
//                                                    Thread.sleep(5000L);
//                                                }
//                                            }
//                                            boolean updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
//                                            if(!updateVehicles){
//                                                for (int i = 0; i < 5; i++) {
//                                                    updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
//                                                    if(updateVehicles){
//                                                        break;
//                                                    }
//                                                    Thread.sleep(5000L);
//                                                }
//                                            }
//                                        }else{
//                                            boolean updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
//                                            if(!updateVehicles){
//                                                for (int i = 0; i < 5; i++) {
//                                                    updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
//                                                    if(updateVehicles){
//                                                        break;
//                                                    }
//                                                    Thread.sleep(5000L);
//                                                }
//                                            }
//                                        }
//                                    }catch (Exception e){
//                                        e.printStackTrace();
//                                    }
//                                }).start();
                            }
                        }
                    }