From bfa0b11dfbfe5b71e11f4544e688e4d9f325d1b5 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期一, 09 六月 2025 10:26:51 +0800
Subject: [PATCH] 修改bug和管理后台报表
---
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java | 322 ++++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 257 insertions(+), 65 deletions(-)
diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java
index d80ad15..9d8d1a9 100644
--- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java
+++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java
@@ -20,6 +20,7 @@
import com.stylefeng.guns.modular.system.service.*;
import com.stylefeng.guns.modular.system.util.*;
import com.stylefeng.guns.modular.system.util.GoogleMap.DistancematrixVo;
+import com.stylefeng.guns.modular.system.util.GoogleMap.FleetEngineUtil;
import com.stylefeng.guns.modular.system.util.GoogleMap.GoogleMapUtil;
import com.stylefeng.guns.modular.system.util.GoogleMap.ReverseGeocodeVo;
import com.stylefeng.guns.modular.system.util.Tingg.TinggPayUtil;
@@ -105,6 +106,15 @@
@Resource
private IBalanceUsageRecordService balanceUsageRecordService;
+
+ @Resource
+ private FleetEngineUtil fleetEngineUtil;
+
+ @Autowired
+ private IOrderPositionService orderPositionService;
+
+ @Autowired
+ private ICarService carService;
@@ -750,10 +760,11 @@
*/
@Override
public Integer queryOrderNum(Integer driverId, Date start, Date end) throws Exception {
- //出租车
int i = orderPrivateCarService.selectCount(new EntityWrapper<OrderPrivateCar>().eq("driverId", driverId)
.between("insertTime", start, end).in("state", Arrays.asList(6, 7, 8, 9)));
- return i;
+ int i1 = orderLogisticsService.selectCount(new EntityWrapper<OrderLogistics>().eq("driverId", driverId)
+ .between("insertTime", start, end).in("state", Arrays.asList(6, 7, 8, 9)));
+ return i + i1;
}
@@ -788,31 +799,31 @@
*/
@Override
public void taskMidAxbUnBindSend() throws Exception {
- List<OrderTaxi> list = orderTaxiService.taskMidAxbUnBindSend();
- for(OrderTaxi orderTaxi : list){
- Map<String, String> map = chinaMobileUtil.midAxbUnBindSend(orderTaxi.getBindId(),orderTaxi.getTelX());
- if(!String.valueOf(map.get("code")).equals("200")){
- System.err.println(String.valueOf(map.get("msg")));
- }
- orderTaxi.setTelX("");
- orderTaxi.setBindId("");
- }
- if(list.size() > 0){
- orderTaxiService.updateBatchById(list);
- }
-
- List<OrderPrivateCar> list1 = orderPrivateCarService.taskMidAxbUnBindSend();
- for(OrderPrivateCar orderPrivateCar : list1){
- Map<String, String> map = chinaMobileUtil.midAxbUnBindSend(orderPrivateCar.getBindId(),orderPrivateCar.getTelX());
- if(!String.valueOf(map.get("code")).equals("200")){
- System.err.println(String.valueOf(map.get("msg")));
- }
- orderPrivateCar.setTelX("");
- orderPrivateCar.setBindId("");
- }
- if(list1.size() > 0){
- orderPrivateCarService.updateBatchById(list1);
- }
+// List<OrderTaxi> list = orderTaxiService.taskMidAxbUnBindSend();
+// for(OrderTaxi orderTaxi : list){
+// Map<String, String> map = chinaMobileUtil.midAxbUnBindSend(orderTaxi.getBindId(),orderTaxi.getTelX());
+// if(!String.valueOf(map.get("code")).equals("200")){
+// System.err.println(String.valueOf(map.get("msg")));
+// }
+// orderTaxi.setTelX("");
+// orderTaxi.setBindId("");
+// }
+// if(list.size() > 0){
+// orderTaxiService.updateBatchById(list);
+// }
+//
+// List<OrderPrivateCar> list1 = orderPrivateCarService.taskMidAxbUnBindSend();
+// for(OrderPrivateCar orderPrivateCar : list1){
+// Map<String, String> map = chinaMobileUtil.midAxbUnBindSend(orderPrivateCar.getBindId(),orderPrivateCar.getTelX());
+// if(!String.valueOf(map.get("code")).equals("200")){
+// System.err.println(String.valueOf(map.get("msg")));
+// }
+// orderPrivateCar.setTelX("");
+// orderPrivateCar.setBindId("");
+// }
+// if(list1.size() > 0){
+// orderPrivateCarService.updateBatchById(list1);
+// }
}
@@ -828,57 +839,57 @@
case 1:
OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId);
if(ToolUtil.isNotEmpty(orderPrivateCar.getBindId())){
- Map<String, String> map1 = chinaMobileUtil.midAxbUnBindSend(orderPrivateCar.getBindId(),orderPrivateCar.getTelX());
- if(!String.valueOf(map1.get("code")).equals("200")){
- System.err.println(String.valueOf(map1.get("msg")));
- }
+// Map<String, String> map1 = chinaMobileUtil.midAxbUnBindSend(orderPrivateCar.getBindId(),orderPrivateCar.getTelX());
+// if(!String.valueOf(map1.get("code")).equals("200")){
+// System.err.println(String.valueOf(map1.get("msg")));
+// }
//调用移动的小号接口
- Map<String, String> geocode = gdMapGeocodingUtil.geocode(orderPrivateCar.getStartLon().toString(), orderPrivateCar.getStartLat().toString());
- Region region = regionMapper.query(geocode.get("districtCode"));
- Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
- Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderPrivateCar.getPassengersPhone(), driver.getPhone(), Integer.valueOf(region.getCitycode().substring(1)));
- if(String.valueOf(map.get("code")).equals("200")){
- orderPrivateCar.setTelX(map.get("telX"));
- orderPrivateCar.setBindId(map.get("bindId"));
- }
+// Map<String, String> geocode = gdMapGeocodingUtil.geocode(orderPrivateCar.getStartLon().toString(), orderPrivateCar.getStartLat().toString());
+// Region region = regionMapper.query(geocode.get("districtCode"));
+// Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
+// Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderPrivateCar.getPassengersPhone(), driver.getPhone(), Integer.valueOf(region.getCitycode().substring(1)));
+// if(String.valueOf(map.get("code")).equals("200")){
+// orderPrivateCar.setTelX(map.get("telX"));
+// orderPrivateCar.setBindId(map.get("bindId"));
+// }
orderPrivateCarService.updateById(orderPrivateCar);
}
break;
case 2:
OrderTaxi orderTaxi = orderTaxiService.selectById(orderId);
if(ToolUtil.isNotEmpty(orderTaxi.getBindId())){
- Map<String, String> map1 = chinaMobileUtil.midAxbUnBindSend(orderTaxi.getBindId(),orderTaxi.getTelX());
- if(!String.valueOf(map1.get("code")).equals("200")){
- System.err.println(String.valueOf(map1.get("msg")));
- }
+// Map<String, String> map1 = chinaMobileUtil.midAxbUnBindSend(orderTaxi.getBindId(),orderTaxi.getTelX());
+// if(!String.valueOf(map1.get("code")).equals("200")){
+// System.err.println(String.valueOf(map1.get("msg")));
+// }
//调用移动的小号接口
- Map<String, String> geocode = gdMapGeocodingUtil.geocode(orderTaxi.getStartLon().toString(), orderTaxi.getStartLat().toString());
- Region region = regionMapper.query(geocode.get("districtCode"));
- Driver driver = driverService.selectById(orderTaxi.getDriverId());
- Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderTaxi.getPassengersPhone(), driver.getPhone(), Integer.valueOf(region.getCitycode().substring(1)));
- if(String.valueOf(map.get("code")).equals("200")){
- orderTaxi.setTelX(map.get("telX"));
- orderTaxi.setBindId(map.get("bindId"));
- }
+// Map<String, String> geocode = gdMapGeocodingUtil.geocode(orderTaxi.getStartLon().toString(), orderTaxi.getStartLat().toString());
+// Region region = regionMapper.query(geocode.get("districtCode"));
+// Driver driver = driverService.selectById(orderTaxi.getDriverId());
+// Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderTaxi.getPassengersPhone(), driver.getPhone(), Integer.valueOf(region.getCitycode().substring(1)));
+// if(String.valueOf(map.get("code")).equals("200")){
+// orderTaxi.setTelX(map.get("telX"));
+// orderTaxi.setBindId(map.get("bindId"));
+// }
orderTaxiService.updateById(orderTaxi);
}
break;
case 3:
OrderCrossCity orderCrossCity = orderCrossCityService.selectById(orderId);
if(ToolUtil.isNotEmpty(orderCrossCity.getBindId())){
- Map<String, String> map1 = chinaMobileUtil.midAxbUnBindSend(orderCrossCity.getBindId(),orderCrossCity.getTelX());
- if(!String.valueOf(map1.get("code")).equals("200")){
- System.err.println(String.valueOf(map1.get("msg")));
- }
+// Map<String, String> map1 = chinaMobileUtil.midAxbUnBindSend(orderCrossCity.getBindId(),orderCrossCity.getTelX());
+// if(!String.valueOf(map1.get("code")).equals("200")){
+// System.err.println(String.valueOf(map1.get("msg")));
+// }
//调用移动的小号接口
- Map<String, String> geocode = gdMapGeocodingUtil.geocode(orderCrossCity.getStartLon().toString(), orderCrossCity.getStartLat().toString());
- Region region = regionMapper.query(geocode.get("districtCode"));
- Driver driver = driverService.selectById(orderCrossCity.getDriverId());
- Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderCrossCity.getPassengersPhone(), driver.getPhone(), Integer.valueOf(region.getCitycode().substring(1)));
- if(String.valueOf(map.get("code")).equals("200")){
- orderCrossCity.setTelX(map.get("telX"));
- orderCrossCity.setBindId(map.get("bindId"));
- }
+// Map<String, String> geocode = gdMapGeocodingUtil.geocode(orderCrossCity.getStartLon().toString(), orderCrossCity.getStartLat().toString());
+// Region region = regionMapper.query(geocode.get("districtCode"));
+// Driver driver = driverService.selectById(orderCrossCity.getDriverId());
+// Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderCrossCity.getPassengersPhone(), driver.getPhone(), Integer.valueOf(region.getCitycode().substring(1)));
+// if(String.valueOf(map.get("code")).equals("200")){
+// orderCrossCity.setTelX(map.get("telX"));
+// orderCrossCity.setBindId(map.get("bindId"));
+// }
orderCrossCityService.updateById(orderCrossCity);
}
break;
@@ -1039,8 +1050,8 @@
new Thread(new Runnable() {
@Override
public void run() {
- pushUtil.pushOrderState(1, finalUserId, orderId, orderType, finalState, 0, "");
- pushUtil.pushOrderState(2, finalDriverId, orderId, orderType, finalState, 0, "");
+ pushUtil.pushOrderState(1, finalUserId, orderId, orderType, finalState, 0, "", "driver");
+ pushUtil.pushOrderState(2, finalDriverId, orderId, orderType, finalState, 0, "", "driver");
}
}).start();
return ResultUtil.success();
@@ -1234,6 +1245,187 @@
}
return ResultUtil.success();
}
+
+
+ @Override
+ public void getDriverNowPosition() {
+ for (OrderPrivateCar orderPrivateCar : orderPrivateCarService.selectList(new EntityWrapper<OrderPrivateCar>().eq("state", 5))) {
+ String trackId = orderPrivateCar.getTrackId();
+ if(ToolUtil.isNotEmpty(trackId)){
+ String trip = fleetEngineUtil.getTrip(trackId);
+ JSONObject lastLocation = JSON.parseObject(trip).getJSONObject("lastLocation");
+ JSONObject location = lastLocation.getJSONObject("location");
+ Double latitude = location.getDouble("latitude");
+ Double longitude = location.getDouble("longitude");
+ OrderPosition orderPosition = new OrderPosition();
+ orderPosition.setOrderId(orderPrivateCar.getId());
+ orderPosition.setOrderType(1);
+ orderPosition.setDriverId(orderPrivateCar.getDriverId());
+ orderPosition.setLat(latitude.toString());
+ orderPosition.setLon(longitude.toString());
+ orderPosition.setInsertTime(new Date());
+ try {
+ orderPositionService.saveData(orderPosition);
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+ }
+
+ List<OrderLogistics> orderLogisticsList = orderLogisticsService.selectList(new EntityWrapper<OrderLogistics>().eq("state", 5));
+ for (OrderLogistics orderLogistics : orderLogisticsList) {
+ String trackId = orderLogistics.getTrackId();
+ if(ToolUtil.isNotEmpty(trackId)){
+ String trip = fleetEngineUtil.getTrip(trackId);
+ JSONObject lastLocation = JSON.parseObject(trip).getJSONObject("lastLocation");
+ JSONObject location = lastLocation.getJSONObject("location");
+ Double latitude = location.getDouble("latitude");
+ Double longitude = location.getDouble("longitude");
+ OrderPosition orderPosition = new OrderPosition();
+ orderPosition.setOrderId(orderLogistics.getId());
+ orderPosition.setOrderType(1);
+ orderPosition.setDriverId(orderLogistics.getDriverId());
+ orderPosition.setLat(latitude.toString());
+ orderPosition.setLon(longitude.toString());
+ orderPosition.setInsertTime(new Date());
+ try {
+ orderPositionService.saveData(orderPosition);
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+ }
+ }
+
+
+ /**
+ * 结束google订单状态
+ */
+ @Override
+ public void overGoogleOrder() {
+ List<OrderPrivateCar> privateCars = orderPrivateCarService.selectList(new EntityWrapper<OrderPrivateCar>().isNotNull("tripId")
+ .eq("isover", 0).in("state", Arrays.asList(6, 7, 8, 9, 10, 12)).eq("isDelete", 1));
+ for (OrderPrivateCar privateCar : privateCars) {
+ Integer state = privateCar.getState();
+ String tripId = privateCar.getTripId();
+ String trip = fleetEngineUtil.getTrip(tripId);
+ if(null != trip && "" == trip){
+ privateCar.setIsover(1);
+ orderPrivateCarService.updateById(privateCar);
+ continue;
+ }
+ if(ToolUtil.isNotEmpty(trip)){
+ JSONObject jsonObject = JSON.parseObject(trip);
+ String tripStatus = jsonObject.getString("tripStatus");
+ Car car = carService.selectById(privateCar.getCarId());
+ if(Arrays.asList(10, 12).contains(state) && !"CANCELED".equals(tripStatus)){
+ //修改行程信息
+ boolean updateTrip = fleetEngineUtil.updateTrip("CANCELED", (null != car ? car.getVehicleId() : null), null, tripId, null, null, null, null, privateCar.getId(), 1);
+ if(!updateTrip){
+ for (int i = 0; i < 5; i++) {
+ updateTrip = fleetEngineUtil.updateTrip("CANCELED", (null != car ? car.getVehicleId() : null), null, tripId, null, null, null, null, privateCar.getId(), 1);
+ if(updateTrip){
+ privateCar.setIsover(1);
+ orderPrivateCarService.updateById(privateCar);
+ break;
+ }
+ try {
+ Thread.sleep(3000L);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+ }else{
+ privateCar.setIsover(1);
+ orderPrivateCarService.updateById(privateCar);
+ }
+ }
+ if(Arrays.asList(6, 7, 8, 9).contains(state) && !"COMPLETE".equals(tripStatus)){
+ //修改行程信息
+ boolean updateTrip = fleetEngineUtil.updateTrip("COMPLETE", (null != car ? car.getVehicleId() : null), null, tripId, null, null, null, null, privateCar.getId(), 1);
+ if(!updateTrip){
+ for (int i = 0; i < 5; i++) {
+ updateTrip = fleetEngineUtil.updateTrip("COMPLETE", (null != car ? car.getVehicleId() : null), null, tripId, null, null, null, null, privateCar.getId(), 1);
+ if(updateTrip){
+ privateCar.setIsover(1);
+ orderPrivateCarService.updateById(privateCar);
+ break;
+ }
+ try {
+ Thread.sleep(3000L);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+ }else{
+ privateCar.setIsover(1);
+ orderPrivateCarService.updateById(privateCar);
+ }
+ }
+ }
+ }
+ List<OrderLogistics> orderLogisticsList = orderLogisticsService.selectList(new EntityWrapper<OrderLogistics>().isNotNull("tripId")
+ .eq("isover", 0).in("state", Arrays.asList(6, 7, 8, 9, 10, 12)).eq("isDelete", 1));
+ for (OrderLogistics orderLogistics : orderLogisticsList) {
+ Integer state = orderLogistics.getState();
+ String tripId = orderLogistics.getTripId();
+ String trip = fleetEngineUtil.getTrip(tripId);
+ if(null != trip && "" == trip){
+ orderLogistics.setIsover(1);
+ orderLogisticsService.updateById(orderLogistics);
+ continue;
+ }
+ if(ToolUtil.isNotEmpty(trip)){
+ JSONObject jsonObject = JSON.parseObject(trip);
+ String tripStatus = jsonObject.getString("tripStatus");
+ Car car = carService.selectById(orderLogistics.getCarId());
+ if(Arrays.asList(10, 12).contains(state) && !"CANCELED".equals(tripStatus)){
+ //修改行程信息
+ boolean updateTrip = fleetEngineUtil.updateTrip("CANCELED", (null != car ? car.getVehicleId() : null), null, tripId, null, null, null, null, orderLogistics.getId(), 4);
+ if(!updateTrip){
+ for (int i = 0; i < 5; i++) {
+ updateTrip = fleetEngineUtil.updateTrip("CANCELED", (null != car ? car.getVehicleId() : null), null, tripId, null, null, null, null, orderLogistics.getId(), 4);
+ if(updateTrip){
+ orderLogistics.setIsover(1);
+ orderLogisticsService.updateById(orderLogistics);
+ break;
+ }
+ try {
+ Thread.sleep(3000L);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+ }else{
+ orderLogistics.setIsover(1);
+ orderLogisticsService.updateById(orderLogistics);
+ }
+ }
+ if(Arrays.asList(6, 7, 8, 9).contains(state) && !"COMPLETE".equals(tripStatus)){
+ //修改行程信息
+ boolean updateTrip = fleetEngineUtil.updateTrip("COMPLETE", (null != car ? car.getVehicleId() : null), null, tripId, null, null, null, null, orderLogistics.getId(), 4);
+ if(!updateTrip){
+ for (int i = 0; i < 5; i++) {
+ updateTrip = fleetEngineUtil.updateTrip("COMPLETE", (null != car ? car.getVehicleId() : null), null, tripId, null, null, null, null, orderLogistics.getId(), 4);
+ if(updateTrip){
+ orderLogistics.setIsover(1);
+ orderLogisticsService.updateById(orderLogistics);
+ break;
+ }
+ try {
+ Thread.sleep(3000L);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+ }else{
+ orderLogistics.setIsover(1);
+ orderLogisticsService.updateById(orderLogistics);
+ }
+ }
+ }
+ }
+ }
}
--
Gitblit v1.7.1