| | |
| | | } |
| | | 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; |
| | |
| | | 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; |
| | | } |
| | | } |
| | | } |
| | |
| | | dr.setState(3); |
| | | } |
| | | driverService.updateById(dr); |
| | | redisUtil.setStrValue("DRIVER_ORDER" + dr.getId(), orderPrivateCar.getId().toString(), 600); |
| | | new Thread(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | |
| | | 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){ |
| | |
| | | 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; |
| | |
| | | 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()){ |
| | | //关闭订单,不允许支付 |
| | |
| | | if(!lock){ |
| | | return; |
| | | } |
| | | |
| | | try { |
| | | PaymentRecord query = paymentRecordService.query(1, null, null, Integer.valueOf(id), 1, type, null); |
| | | if(null != query){ |