| | |
| | | switch (orderType){ |
| | | case 1://专车 |
| | | map = orderPrivateCarService.queryPushOrder(orderId, language); |
| | | DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(Double.valueOf(map.get("startLat").toString()), Double.valueOf(map.get("startLon").toString()), Double.valueOf(lat), Double.valueOf(lon)); |
| | | OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId); |
| | | String tripId = redisUtil.getValue("trip" + orderPrivateCar.getUserId()); |
| | | DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(Double.valueOf(map.get("startLat").toString()), Double.valueOf(map.get("startLon").toString()), Double.valueOf(lat), Double.valueOf(lon), tripId); |
| | | map.put("startDistance", null != distancematrix ? distancematrix.getDistance() / 1000 : 0); |
| | | |
| | | //总距离 |
| | | distancematrix = GoogleMapUtil.getDistancematrix(Double.valueOf(map.get("startLat").toString()), Double.valueOf(map.get("startLon").toString()), Double.valueOf(map.get("endLat").toString()), Double.valueOf(map.get("endLon").toString())); |
| | | distancematrix = GoogleMapUtil.getDistancematrix(Double.valueOf(map.get("startLat").toString()), Double.valueOf(map.get("startLon").toString()), Double.valueOf(map.get("endLat").toString()), Double.valueOf(map.get("endLon").toString()), tripId); |
| | | map.put("totalDistance", null != distancematrix ? distancematrix.getDistance() / 1000 : 0); |
| | | |
| | | Integer orderSource = Integer.valueOf(String.valueOf(map.get("orderSource"))); |
| | |
| | | break; |
| | | case 4://市内小件物流 |
| | | map = orderLogisticsService.queryPushOrder(orderId, language); |
| | | DistancematrixVo distancematrix1 = GoogleMapUtil.getDistancematrix(Double.valueOf(map.get("startLat").toString()), Double.valueOf(map.get("startLon").toString()), Double.valueOf(lat), Double.valueOf(lon)); |
| | | OrderLogistics orderLogistics = orderLogisticsService.selectById(orderId); |
| | | String tripId1 = redisUtil.getValue("trip" + orderLogistics.getUserId()); |
| | | DistancematrixVo distancematrix1 = GoogleMapUtil.getDistancematrix(Double.valueOf(map.get("startLat").toString()), Double.valueOf(map.get("startLon").toString()), Double.valueOf(lat), Double.valueOf(lon), tripId1); |
| | | map.put("startDistance", null != distancematrix1 ? distancematrix1.getDistance() / 1000 : 0); |
| | | |
| | | //总距离 |
| | | distancematrix1 = GoogleMapUtil.getDistancematrix(Double.valueOf(map.get("startLat").toString()), Double.valueOf(map.get("startLon").toString()), Double.valueOf(map.get("endLat").toString()), Double.valueOf(map.get("endLon").toString())); |
| | | distancematrix1 = GoogleMapUtil.getDistancematrix(Double.valueOf(map.get("startLat").toString()), Double.valueOf(map.get("startLon").toString()), Double.valueOf(map.get("endLat").toString()), Double.valueOf(map.get("endLon").toString()), tripId1); |
| | | map.put("totalDistance", null != distancematrix1 ? distancematrix1.getDistance() / 1000 : 0); |
| | | |
| | | Integer orderSource3 = Integer.valueOf(String.valueOf(map.get("orderSource"))); |
| | |
| | | if(null != map.get("telX")){ |
| | | map.put("phone", map.get("telX")); |
| | | } |
| | | Integer companyId = 1; |
| | | if(null != map.get("driverId")){ |
| | | companyId = Integer.valueOf(String.valueOf(map.get("companyId"))); |
| | | } |
| | | CancleOrder cancleOrder = cancleOrderService.selectOne(new EntityWrapper<CancleOrder>().eq("companyId", companyId)); |
| | | JSONObject jsonObject = JSON.parseObject(cancleOrder.getContent()); |
| | | int driverTimeout = jsonObject.getIntValue("driverTimeout"); |
| | | |
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | | Integer type = Integer.valueOf(map.get("orderType").toString()); |
| | | if(type == 2){ |
| | | String travelTime = map.get("travelTime").toString(); |
| | | long time = System.currentTimeMillis() - sdf.parse(travelTime).getTime() - (driverTimeout * 60000); |
| | | map.put("timeOutCancel", Double.valueOf(time / 60000).intValue()); |
| | | }else{ |
| | | String estimateArriveTime = map.get("estimateArriveTime").toString(); |
| | | long time = System.currentTimeMillis() - sdf.parse(estimateArriveTime).getTime() - (driverTimeout * 60000); |
| | | map.put("timeOutCancel", Double.valueOf(time / 60000).intValue()); |
| | | } |
| | | return map; |
| | | } |
| | | |
| | |
| | | */ |
| | | @Override |
| | | public ResultUtil process(Integer orderId, Integer orderType, Integer state, Integer uid, Double lon, Double lat,String phone, String pickUpCode, Integer language) throws Exception { |
| | | ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(lat, lon); |
| | | if(null == reverseGeocode){ |
| | | return ResultUtil.error(language == 1 ? "无效的经纬度" : language == 2 ? "Invalid longitude and latitude" : "Longitude et latitude non valides"); |
| | | } |
| | | String address = reverseGeocode.getAddress(); |
| | | switch (orderType){ |
| | | case 1://专车 |
| | | return orderPrivateCarService.process(orderId, state, lon, lat, address, phone, language); |
| | | return orderPrivateCarService.process(orderId, state, lon, lat, phone, language, uid); |
| | | case 2://出租 |
| | | // return orderTaxiService.process(orderId, state, lon, lat, address); |
| | | case 3://城际 |
| | | // return orderCrossCityService.process(orderId, state, lon, lat, address); |
| | | case 4://同城小件 |
| | | return orderLogisticsService.process(orderId, state, lon, lat, address, pickUpCode, language); |
| | | return orderLogisticsService.process(orderId, state, lon, lat, pickUpCode, language, uid); |
| | | case 5://跨城小件 |
| | | // return orderLogisticsService.process(orderId, state, lon, lat, address); |
| | | case 6: |
| | |
| | | * @throws Exception |
| | | */ |
| | | @Override |
| | | public ResultUtil confirmFees(Integer language, Integer orderId, Integer orderType, Integer type, Double travelFee, Double parkingFee, Double crossingFee) throws Exception { |
| | | public ResultUtil confirmFees(Integer language, Integer orderId, Integer orderType, Integer type, Double travelFee, |
| | | Double parkingFee, Double crossingFee, Integer uid) throws Exception { |
| | | switch (orderType){ |
| | | case 1://专车 |
| | | return orderPrivateCarService.confirmFees(language, orderId, type, parkingFee, crossingFee); |
| | | return orderPrivateCarService.confirmFees(language, orderId, type, parkingFee, crossingFee, uid); |
| | | case 2://出租 |
| | | return orderTaxiService.confirmFees(orderId, type, travelFee, parkingFee, crossingFee); |
| | | case 3://城际(没有此流程) |
| | | break; |
| | | case 4:// |
| | | return orderLogisticsService.confirmFees(language, orderId, type, parkingFee, crossingFee); |
| | | return orderLogisticsService.confirmFees(language, orderId, type, parkingFee, crossingFee, uid); |
| | | case 5: |
| | | break; |
| | | case 6: |
| | |
| | | new Thread(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | pushUtil.pushOrderState(1, finalUserId, orderId, orderType, finalState); |
| | | pushUtil.pushOrderState(2, finalDriverId, orderId, orderType, finalState); |
| | | pushUtil.pushOrderState(1, finalUserId, orderId, orderType, finalState, 0, ""); |
| | | pushUtil.pushOrderState(2, finalDriverId, orderId, orderType, finalState, 0, ""); |
| | | } |
| | | }).start(); |
| | | return ResultUtil.success(); |