Pu Zhibing
2 天以前 9a66aa395b78b5df07058560eec181a66d6db2b9
UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -431,11 +431,8 @@
                                        }
                                        String value = redisUtil.getValue("DRIVER" + drivers.get(j).getId());
                                        if (null != value) {
//                                Map<String, String> distance1 = gdMapElectricFenceUtil.getDistance(orderPrivateCar.getStartLon() + "," + orderPrivateCar.getStartLat(), value, 0);//计算距离
//                                Integer d = Integer.valueOf(distance1.get("distance"));
                                            String[] split = value.split(",");
                                            double distance = GDMapGeocodingUtil.getDistance(orderPrivateCar.getStartLat(), orderPrivateCar.getStartLon(), Double.valueOf(split[1]), Double.valueOf(split[0]));
                                            int d = Double.valueOf(distance).intValue();
                                            Map<String, Double> distance1 = geodesyUtil.getDistance(orderPrivateCar.getStartLat() + "," + orderPrivateCar.getStartLon(), value);
                                            int d = distance1.get("WGS84").intValue();
                                            if ((0 == m && null == driver) || (d < m)) {
                                                driver = drivers.get(j);
                                                m = d;
@@ -452,11 +449,11 @@
                                for (Driver driver : ds) {
                                    String value = redisUtil.getValue("DRIVER" + driver.getId());
                                    if (null != value) {
                                        Map<String, Double> distance = geodesyUtil.getDistance(orderPrivateCar.getStartLon() + "," + orderPrivateCar.getStartLat(), value);
                                        Double wgs84 = distance.get("WGS84");
                                        if ((0 == m && null == dr) || (wgs84.intValue() < m.intValue())) {
                                        Map<String, String> distance = gdMapElectricFenceUtil.getDistance(startLon + "," + startLat, value, 1);
                                        int distance1 = Integer.parseInt(distance.get("distance"));
                                        if ((0 == m && null == dr) || (distance1 < m.intValue())) {
                                            dr = driver;
                                            m = wgs84.intValue();
                                            m = distance1;
                                        }
                                    }
                                }
@@ -480,6 +477,7 @@
                                    dr.setState(3);
                                }
                                driverService.updateById(dr);
                                redisUtil.setStrValue("DRIVER_ORDER" + dr.getId(), orderPrivateCar.getId().toString(), 600);
                                new Thread(new Runnable() {
                                    @Override
                                    public void run() {
@@ -1378,6 +1376,11 @@
        if(!lock){
            return ResultUtil.error("系统繁忙,请稍后重试");
        }
        String key = orderId + "_during_payment";
        if(redisUtil.hasKey(key)){
            return ResultUtil.error("支付中,不能重复发起支付");
        }
        redisUtil.setStrValue(key, UUIDUtil.getRandomCode(), 10);
        try {
            OrderPrivateCar orderPrivateCar = this.selectById(orderId);
            if(orderPrivateCar.getState() == 8 || orderPrivateCar.getState() == 9){
@@ -1489,16 +1492,12 @@
                resultUtil = payMoneyUtil.weixinpay("完成订单",orderId +"", code,orderMoney+"","/base/wxPayOrderTaxi","JSAPI",userInfo.getAppletsOpenId());
                if(resultUtil.getCode()==200){
                    paymentRecordService.saveData(1, orderPrivateCar.getUserId(), 1, orderId, 1, 1, orderMoney, null, 1, code);//添加预支付数据
                    long millis = System.currentTimeMillis();
                    new Thread(()->{
                        long time = millis;
                        try {
                            Thread.sleep(5000);
                        } catch (InterruptedException e) {
                            throw new RuntimeException(e);
                        }
                        //订单创建后15分钟
                        while ((System.currentTimeMillis() - time) <= 900000) {
                        int num = 1;
                        int wait = 0;
                        while (num <= 13) {
                            int min = 5000;
                            wait += (min * num);
                            OrderPrivateCar orderPrivateCar1 = OrderPrivateCarServiceImpl.this.selectById(orderId);
                            if(orderPrivateCar1.getState() != 7){
                                break;
@@ -1528,12 +1527,17 @@
                                    if ("NOTPAY".equals(s) || "USERPAYING".equals(s)) {
                                    }
                                }
                                Thread.sleep(5000);
                            }catch (Exception e){
                                e.printStackTrace();
                            }finally {
                                try {
                                    Thread.sleep(wait);
                                } catch (InterruptedException e) {
                                    e.printStackTrace();
                                }
                                num++;
                            }
                        }
                        OrderPrivateCar orderPrivateCar1 = OrderPrivateCarServiceImpl.this.selectById(orderId);
                        if(7 == orderPrivateCar1.getState()){
                            //关闭订单,不允许支付
@@ -1887,7 +1891,6 @@
        if(!lock){
            return;
        }
        try {
            PaymentRecord query = paymentRecordService.query(1, null, null, Integer.valueOf(id), 1, type, null);
            if(null != query){