| | |
| | | int i = 0; |
| | | Double scope = 5D; |
| | | while (true){ |
| | | List<NearbyDriverWarpper> nearbyDriverWarppers = driverService.queryDriverPosition(estimatedCosts.getLng().toString(), estimatedCosts.getLat().toString(), scope); |
| | | List<NearbyDriverWarpper> nearbyDriverWarppers = driverService.queryDriverPosition(estimatedCosts.getStartLng().toString(), estimatedCosts.getStartLat().toString(), scope); |
| | | if(nearbyDriverWarppers.size() == 0){ |
| | | scope += 5; |
| | | i++; |
| | |
| | | List<YouTuiDriver> youTuiDrivers = youTuiDriverService.selectList(new EntityWrapper<YouTuiDriver>().in("driverId", driverIds) |
| | | .eq("state", 2).last(" and surplusQuantity > 0 and now() < endTime and now() < failureTime")); |
| | | Double d = null; |
| | | |
| | | System.err.println("【" + orderId + "】所有优推司机:" + JSON.toJSONString(youTuiDrivers)); |
| | | for (YouTuiDriver youTuiDriver : youTuiDrivers) { |
| | | String value = redisUtil.getValue("DRIVER" + youTuiDriver.getDriverId()); |
| | | if(ToolUtil.isEmpty(value)){ |
| | |
| | | youTuiDriver1 = youTuiDriver; |
| | | } |
| | | } |
| | | System.err.println("【" + orderId + "】优推最终司机---》距离:" + d + ",司机:" + JSON.toJSONString(driver) + ",优推数据:" + JSON.toJSONString(youTuiDriver1)); |
| | | } |
| | | if(null != youTuiDriver1 && youTuiDriver1.getType() == 1){ |
| | | youTuiDriver1.setSurplusQuantity(youTuiDriver1.getSurplusQuantity() - 1); |
| | |
| | | continue; |
| | | } |
| | | |
| | | System.err.println("【" + orderId + "】范围推送【第" + i + "轮】:" + JSON.toJSONString(drivers)); |
| | | Integer integral = null;//积分 |
| | | Double score = null;//评分 |
| | | Double d = null; |
| | |
| | | Map<String, Double> distance = GeodesyUtil.getDistance(value, order.getStartLng() + "," + order.getStartLat()); |
| | | Double wgs84 = distance.get("WGS84"); |
| | | d = wgs84; |
| | | |
| | | System.err.println("【" + orderId + "】范围推送【第" + i + "轮】----》【积分:" + integral + "、司机:" + JSON.toJSONString(driver1)); |
| | | continue; |
| | | } |
| | | if(integral.compareTo(driver1.getIntegral()) == 0 && score.compareTo(driver1.getScore()) < 0){//积分相同对比评分 |
| | |
| | | Map<String, Double> distance = GeodesyUtil.getDistance(value, order.getStartLng() + "," + order.getStartLat()); |
| | | Double wgs84 = distance.get("WGS84"); |
| | | d = wgs84; |
| | | |
| | | System.err.println("【" + orderId + "】范围推送【第" + i + "轮】----》【评分:" + score + "、司机:" + JSON.toJSONString(driver1)); |
| | | continue; |
| | | } |
| | | if(integral.compareTo(driver1.getIntegral()) == 0 && score.compareTo(driver1.getScore()) == 0){//积分相同/评分相同对比距离 |
| | |
| | | integral = driver1.getIntegral(); |
| | | score = driver1.getScore(); |
| | | driver = driver1.getId(); |
| | | |
| | | System.err.println("【" + orderId + "】范围推送【第" + i + "轮】----》距离:" + d + "、司机:" + JSON.toJSONString(driver1)); |
| | | continue; |
| | | } |
| | | } |
| | | } |
| | | |
| | | System.err.println("【" + orderId + "】范围推送【第" + i + "轮】最终司机----》距离:" + d + "、司机:" + JSON.toJSONString(driver)); |
| | | } |
| | | } |
| | | } |
| | |
| | | @Override |
| | | public ResultUtil editOrderEndAddress(Integer uid, EditOrderEndAddress editOrderEndAddress) throws Exception { |
| | | Order order = this.selectById(editOrderEndAddress.getOrderId()); |
| | | |
| | | String endAddress = editOrderEndAddress.getEndAddress(); |
| | | endAddress = endAddress.replaceAll("& #40;", "("); |
| | | endAddress = endAddress.replaceAll("& #41;", ")"); |
| | | editOrderEndAddress.setEndAddress(endAddress); |
| | | |
| | | order.setEndAddress(editOrderEndAddress.getEndAddress()); |
| | | order.setEndLat(editOrderEndAddress.getEndLat().toString()); |
| | | order.setEndLng(editOrderEndAddress.getEndLng().toString()); |