| | |
| | | import com.supersavedriving.driver.modular.system.model.Order; |
| | | import com.supersavedriving.driver.modular.system.service.IOrderService; |
| | | import com.supersavedriving.driver.modular.system.util.GeodesyUtil; |
| | | import com.supersavedriving.driver.modular.system.util.PushUtil; |
| | | import com.supersavedriving.driver.modular.system.util.RedisUtil; |
| | | import com.supersavedriving.driver.modular.system.warpper.DriverPositionWarpper; |
| | | import com.supersavedriving.driver.modular.system.warpper.OrderPositionWarpper; |
| | |
| | | @Autowired |
| | | private IOrderService orderService; |
| | | |
| | | @Autowired |
| | | private PushUtil pushUtil; |
| | | |
| | | private Map<String, Integer> map = new HashMap<>(); |
| | | |
| | | |
| | |
| | | @Override |
| | | public void saveOrderPosition(DriverPositionWarpper driverPositionWarpper) throws Exception { |
| | | Integer orderId = driverPositionWarpper.getOrderId(); |
| | | Integer driverId = driverPositionWarpper.getDriverId(); |
| | | Order order = orderService.selectById(orderId); |
| | | if(null == order.getDriverId() || order.getDriverId().compareTo(driverId) != 0){ |
| | | return; |
| | | } |
| | | //开始服务提醒 |
| | | if(order.getState() == 104){ |
| | | String fromLonLat = order.getStartLng() + "," + order.getStartLat(); |
| | | String toLonLat = driverPositionWarpper.getLon() + "," + driverPositionWarpper.getLat(); |
| | | Map<String, Double> distance = GeodesyUtil.getDistance(fromLonLat, toLonLat); |
| | | Double wgs84 = distance.get("WGS84"); |
| | | if(wgs84.compareTo(200D) >= 0){ |
| | | pushUtil.pushStartServer(2, driverId); |
| | | } |
| | | } |
| | | |
| | | if(order.getState() != 105 && order.getState() != 401){ |
| | | return; |
| | | } |
| | |
| | | } |
| | | } |
| | | |
| | | if(50 >= wgs84 && 3 <= (null == num ? 0 : num)){//20秒(5秒上传一次数据) |
| | | if(50 >= wgs84 && 6 <= (null == num ? 0 : num)){//30秒(5秒上传一次数据) |
| | | Integer integer = map.get(order.getId().toString()); |
| | | map.put(order.getId().toString(), null == integer ? 0 : integer + 1); |
| | | //进入等待状态 |
| | |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | if(50 >= wgs84 && 3 > (null == num ? 0 : num)){ |
| | | if(50 >= wgs84 && 6 > (null == num ? 0 : num)){ |
| | | Integer integer = map.get(order.getId().toString()); |
| | | map.put(order.getId().toString(), null == integer ? 0 : integer + 1); |
| | | } |