puzhibing
2022-09-14 ab7cc0cb35f3375b35f7f3d866704d1383ddcff5
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java
@@ -22,6 +22,8 @@
import com.stylefeng.guns.modular.system.service.IOrderService;
import com.stylefeng.guns.modular.system.service.ISystemNoticeService;
import com.stylefeng.guns.modular.system.util.*;
import com.stylefeng.guns.modular.system.util.GoogleMap.DistancematrixVo;
import com.stylefeng.guns.modular.system.util.GoogleMap.GoogleMapUtil;
import com.stylefeng.guns.modular.system.warpper.OrderListWarpper;
import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
@@ -102,14 +104,14 @@
        pageNum = (pageNum - 1) * size;
        List<Map<String, Object>> datas = new ArrayList<>();
        //出租车
        List<Map<String, Object>> list = orderTaxiService.queryOrderList(state, uid);
        datas.addAll(list);
//        List<Map<String, Object>> list = orderTaxiService.queryOrderList(state, uid);
//        datas.addAll(list);
        //专车
        List<Map<String, Object>> list1 = orderPrivateCarService.queryOrderList(state, uid);
        datas.addAll(list1);
        //跨城
        List<Map<String, Object>> list2 = orderCrossCityService.queryOrderList(state, uid);
        datas.addAll(list2);
//        List<Map<String, Object>> list2 = orderCrossCityService.queryOrderList(state, uid);
//        datas.addAll(list2);
        //小件物流
        List<Map<String, Object>> list3 = orderLogisticsService.queryOrderList(uid);
        datas.addAll(list3);
@@ -183,14 +185,14 @@
        pageNum = (pageNum - 1) * size;
        List<Map<String, Object>> datas = new ArrayList<>();
        //出租车
        List<Map<String, Object>> list = orderTaxiService.queryMyAllOrder(state, uid);
        datas.addAll(list);
//        List<Map<String, Object>> list = orderTaxiService.queryMyAllOrder(state, uid);
//        datas.addAll(list);
        //专车
        List<Map<String, Object>> list1 = orderPrivateCarService.queryMyAllOrder(state, uid);
        datas.addAll(list1);
        //跨城
        List<Map<String, Object>> list2 = orderCrossCityService.queryMyAllOrder(state, uid);
        datas.addAll(list2);
//        List<Map<String, Object>> list2 = orderCrossCityService.queryMyAllOrder(state, uid);
//        datas.addAll(list2);
        //小件物流
        List<Map<String, Object>> list3 = orderLogisticsService.queryMyAllOrder(state, uid);
        datas.addAll(list3);
@@ -222,14 +224,12 @@
        switch (orderType){
            case 1://专车
                map = orderPrivateCarService.queryPushOrder(orderId);
                String order = String.valueOf(map.get("startLon")) + "," + String.valueOf(map.get("startLat"));
                String distance = gdMapElectricFenceUtil.getDistance(lon + "," + lat, order, 1).get("distance");
                map.put("startDistance", ToolUtil.isNotEmpty(distance) ? Double.valueOf(distance) / 1000 : 0);
                DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(Double.valueOf(map.get("startLat").toString()), Double.valueOf(map.get("startLon").toString()), Double.valueOf(lat), Double.valueOf(lon));
                map.put("startDistance", null != distancematrix ? distancematrix.getDistance() / 1000 : 0);
                //总距离
                String end = String.valueOf(map.get("endLon")) + "," + String.valueOf(map.get("endLat"));
                distance = gdMapElectricFenceUtil.getDistance(end, order, 1).get("distance");
                map.put("totalDistance", ToolUtil.isNotEmpty(distance) ? Double.valueOf(distance) / 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()));
                map.put("totalDistance", null != distancematrix ? distancematrix.getDistance() / 1000 : 0);
                Integer orderSource = Integer.valueOf(String.valueOf(map.get("orderSource")));
                if(orderSource == 1 || orderSource == 2 || orderSource == 3){
@@ -262,85 +262,83 @@
                }
                break;
            case 2://出租
                map = orderTaxiService.queryPushOrder(orderId);
                String order1 = String.valueOf(map.get("startLon")) + "," + String.valueOf(map.get("startLat"));
                String distance1 = gdMapElectricFenceUtil.getDistance(lon + "," + lat, order1, 1).get("distance");
                map.put("startDistance", ToolUtil.isNotEmpty(distance1) ? Double.valueOf(distance1) / 1000 : 0);
                //总距离
                String end1 = String.valueOf(map.get("endLon")) + "," + String.valueOf(map.get("endLat"));
                distance = gdMapElectricFenceUtil.getDistance(end1, order1, 1).get("distance");
                map.put("totalDistance", ToolUtil.isNotEmpty(distance) ? Double.valueOf(distance) / 1000 : 0);
                Integer orderSource1 = Integer.valueOf(String.valueOf(map.get("orderSource")));
                if(orderSource1 == 1 || orderSource1 == 2 || orderSource1 == 3){
                    if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 1 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 1){
                        map.put("type", "乘客下单");
                    }
                    if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 1 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 2){
                        map.put("type", "改派");
                    }
                    if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 2 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 1){
                        map.put("type", "预约");
                    }
                    if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 2 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 2){
                        map.put("type", "改派");
                    }
                }
                if(orderSource1 == 5){
                    if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 1 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 1){
                        map.put("type", "调度下单");
                    }
                    if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 1 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 2){
                        map.put("type", "改派");
                    }
                    if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 2 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 1){
                        map.put("type", "预约");
                    }
                    if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 2 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 2){
                        map.put("type", "改派");
                    }
                }
//                map = orderTaxiService.queryPushOrder(orderId);
//                String order1 = String.valueOf(map.get("startLon")) + "," + String.valueOf(map.get("startLat"));
//                String distance1 = gdMapElectricFenceUtil.getDistance(lon + "," + lat, order1, 1).get("distance");
//                map.put("startDistance", ToolUtil.isNotEmpty(distance1) ? Double.valueOf(distance1) / 1000 : 0);
//
//                //总距离
//                String end1 = String.valueOf(map.get("endLon")) + "," + String.valueOf(map.get("endLat"));
//                distance = gdMapElectricFenceUtil.getDistance(end1, order1, 1).get("distance");
//                map.put("totalDistance", ToolUtil.isNotEmpty(distance) ? Double.valueOf(distance) / 1000 : 0);
//
//                Integer orderSource1 = Integer.valueOf(String.valueOf(map.get("orderSource")));
//                if(orderSource1 == 1 || orderSource1 == 2 || orderSource1 == 3){
//                    if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 1 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 1){
//                        map.put("type", "乘客下单");
//                    }
//                    if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 1 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 2){
//                        map.put("type", "改派");
//                    }
//                    if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 2 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 1){
//                        map.put("type", "预约");
//                    }
//                    if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 2 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 2){
//                        map.put("type", "改派");
//                    }
//                }
//                if(orderSource1 == 5){
//                    if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 1 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 1){
//                        map.put("type", "调度下单");
//                    }
//                    if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 1 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 2){
//                        map.put("type", "改派");
//                    }
//                    if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 2 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 1){
//                        map.put("type", "预约");
//                    }
//                    if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 2 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 2){
//                        map.put("type", "改派");
//                    }
//                }
                break;
            case 3://城际
                map = orderCrossCityService.queryPushOrder(orderId);
                String order2 = String.valueOf(map.get("startLon")) + "," + String.valueOf(map.get("startLat"));
                String distance2 = gdMapElectricFenceUtil.getDistance(lon + "," + lat, order2, 1).get("distance");
                map.put("startDistance", ToolUtil.isNotEmpty(distance2) ? Double.valueOf(distance2) / 1000 : 0);
                //总距离
                String end2 = String.valueOf(map.get("endLon")) + "," + String.valueOf(map.get("endLat"));
                distance = gdMapElectricFenceUtil.getDistance(end2, order2, 1).get("distance");
                map.put("totalDistance", ToolUtil.isNotEmpty(distance) ? Double.valueOf(distance) / 1000 : 0);
                Integer orderSource2 = Integer.valueOf(String.valueOf(map.get("orderSource")));
                if(orderSource2 == 1 || orderSource2 == 2 || orderSource2 == 3){
                    if(Integer.valueOf(String.valueOf(map.get("isReassign"))) == 1){
                        map.put("type", "乘客下单");
                    }
                    if(Integer.valueOf(String.valueOf(map.get("isReassign"))) == 2){
                        map.put("type", "改派");
                    }
                }
                if(orderSource2 == 5){
                    if(Integer.valueOf(String.valueOf(map.get("isReassign"))) == 1){
                        map.put("type", "调度下单");
                    }
                    if(Integer.valueOf(String.valueOf(map.get("isReassign"))) == 2){
                        map.put("type", "改派");
                    }
                }
//                map = orderCrossCityService.queryPushOrder(orderId);
//                String order2 = String.valueOf(map.get("startLon")) + "," + String.valueOf(map.get("startLat"));
//                String distance2 = gdMapElectricFenceUtil.getDistance(lon + "," + lat, order2, 1).get("distance");
//                map.put("startDistance", ToolUtil.isNotEmpty(distance2) ? Double.valueOf(distance2) / 1000 : 0);
//
//                //总距离
//                String end2 = String.valueOf(map.get("endLon")) + "," + String.valueOf(map.get("endLat"));
//                distance = gdMapElectricFenceUtil.getDistance(end2, order2, 1).get("distance");
//                map.put("totalDistance", ToolUtil.isNotEmpty(distance) ? Double.valueOf(distance) / 1000 : 0);
//
//                Integer orderSource2 = Integer.valueOf(String.valueOf(map.get("orderSource")));
//                if(orderSource2 == 1 || orderSource2 == 2 || orderSource2 == 3){
//                    if(Integer.valueOf(String.valueOf(map.get("isReassign"))) == 1){
//                        map.put("type", "乘客下单");
//                    }
//                    if(Integer.valueOf(String.valueOf(map.get("isReassign"))) == 2){
//                        map.put("type", "改派");
//                    }
//                }
//                if(orderSource2 == 5){
//                    if(Integer.valueOf(String.valueOf(map.get("isReassign"))) == 1){
//                        map.put("type", "调度下单");
//                    }
//                    if(Integer.valueOf(String.valueOf(map.get("isReassign"))) == 2){
//                        map.put("type", "改派");
//                    }
//                }
                break;
            case 4://同城小件物流
                map = orderLogisticsService.queryPushOrder(orderId);
                String order3 = String.valueOf(map.get("startLon")) + "," + String.valueOf(map.get("startLat"));
                String distance3 = gdMapElectricFenceUtil.getDistance(lon + "," + lat, order3, 1).get("distance");
                map.put("startDistance", ToolUtil.isNotEmpty(distance3) ? Double.valueOf(distance3) / 1000 : 0);
                DistancematrixVo distancematrix1 = GoogleMapUtil.getDistancematrix(Double.valueOf(map.get("startLat").toString()), Double.valueOf(map.get("startLon").toString()), Double.valueOf(lat), Double.valueOf(lon));
                map.put("startDistance", null != distancematrix1 ? distancematrix1.getDistance() / 1000 : 0);
                //总距离
                String end3 = String.valueOf(map.get("endLon")) + "," + String.valueOf(map.get("endLat"));
                distance = gdMapElectricFenceUtil.getDistance(end3, order3, 1).get("distance");
                map.put("totalDistance", ToolUtil.isNotEmpty(distance) ? Double.valueOf(distance) / 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()));
                map.put("totalDistance", null != distancematrix1 ? distancematrix1.getDistance() / 1000 : 0);
                Integer orderSource3 = Integer.valueOf(String.valueOf(map.get("orderSource")));
                if(orderSource3 == 1 || orderSource3 == 2 || orderSource3 == 3){
@@ -361,33 +359,33 @@
                }
                break;
            case 5://跨城小件物流
                map = orderLogisticsService.queryPushOrder(orderId);
                String order4 = String.valueOf(map.get("startLon")) + "," + String.valueOf(map.get("startLat"));
                String distance4 = gdMapElectricFenceUtil.getDistance(lon + "," + lat, order4, 1).get("distance");
                map.put("startDistance", ToolUtil.isNotEmpty(distance4) ? Double.valueOf(distance4) / 1000 : 0);
                //总距离
                String end4 = String.valueOf(map.get("endLon")) + "," + String.valueOf(map.get("endLat"));
                distance = gdMapElectricFenceUtil.getDistance(end4, order4, 1).get("distance");
                map.put("totalDistance", ToolUtil.isNotEmpty(distance) ? Double.valueOf(distance) / 1000 : 0);
                Integer orderSource4 = Integer.valueOf(String.valueOf(map.get("orderSource")));
                if(orderSource4 == 1 || orderSource4 == 2 || orderSource4 == 3){
                    if(Integer.valueOf(String.valueOf(map.get("isReassign"))) == 1){
                        map.put("type", "乘客下单");
                    }
                    if(Integer.valueOf(String.valueOf(map.get("isReassign"))) == 2){
                        map.put("type", "改派");
                    }
                }
                if(orderSource4 == 5){
                    if(Integer.valueOf(String.valueOf(map.get("isReassign"))) == 1){
                        map.put("type", "调度下单");
                    }
                    if(Integer.valueOf(String.valueOf(map.get("isReassign"))) == 2){
                        map.put("type", "改派");
                    }
                }
//                map = orderLogisticsService.queryPushOrder(orderId);
//                String order4 = String.valueOf(map.get("startLon")) + "," + String.valueOf(map.get("startLat"));
//                String distance4 = gdMapElectricFenceUtil.getDistance(lon + "," + lat, order4, 1).get("distance");
//                map.put("startDistance", ToolUtil.isNotEmpty(distance4) ? Double.valueOf(distance4) / 1000 : 0);
//
//                //总距离
//                String end4 = String.valueOf(map.get("endLon")) + "," + String.valueOf(map.get("endLat"));
//                distance = gdMapElectricFenceUtil.getDistance(end4, order4, 1).get("distance");
//                map.put("totalDistance", ToolUtil.isNotEmpty(distance) ? Double.valueOf(distance) / 1000 : 0);
//
//                Integer orderSource4 = Integer.valueOf(String.valueOf(map.get("orderSource")));
//                if(orderSource4 == 1 || orderSource4 == 2 || orderSource4 == 3){
//                    if(Integer.valueOf(String.valueOf(map.get("isReassign"))) == 1){
//                        map.put("type", "乘客下单");
//                    }
//                    if(Integer.valueOf(String.valueOf(map.get("isReassign"))) == 2){
//                        map.put("type", "改派");
//                    }
//                }
//                if(orderSource4 == 5){
//                    if(Integer.valueOf(String.valueOf(map.get("isReassign"))) == 1){
//                        map.put("type", "调度下单");
//                    }
//                    if(Integer.valueOf(String.valueOf(map.get("isReassign"))) == 2){
//                        map.put("type", "改派");
//                    }
//                }
                break;
            case 6:
                break;
@@ -410,13 +408,13 @@
            case 1://专车
                return orderPrivateCarService.grabOrder(orderId, uid);
            case 2://出租
                return orderTaxiService.grabOrder(orderId, uid);
//                return orderTaxiService.grabOrder(orderId, uid);
            case 3://城际
                return ResultUtil.success();//不作任何操作,跨城默认选择的司机
            case 4://同城小件
                return orderLogisticsService.grabOrder(orderId, uid);
            case 5://跨城小件
                return orderLogisticsService.grabOrder(orderId, uid);
//                return orderLogisticsService.grabOrder(orderId, uid);
            case 6:
                break;
        }
@@ -468,16 +466,16 @@
                map = orderPrivateCarService.queryOrderInfo(orderId);
                break;
            case 2://出租
                map = orderTaxiService.queryOrderInfo(orderId);
//                map = orderTaxiService.queryOrderInfo(orderId);
                break;
            case 3://城际
                map = orderCrossCityService.queryOrderCrossCityInfo(orderId);
//                map = orderCrossCityService.queryOrderCrossCityInfo(orderId);
                break;
            case 4://同城小件
                map = orderLogisticsService.queryOrderInfo(orderId);
                break;
            case 5://跨城小件
                map = orderLogisticsService.queryOrderInfo(orderId);
//                map = orderLogisticsService.queryOrderInfo(orderId);
                break;
            case 6:
                break;
@@ -538,13 +536,13 @@
            case 1://专车
                return orderPrivateCarService.process(orderId, state, lon, lat, address,phone);
            case 2://出租
                return orderTaxiService.process(orderId, state, lon, lat, address);
//                return orderTaxiService.process(orderId, state, lon, lat, address);
            case 3://城际
                return orderCrossCityService.process(orderId, state, lon, lat, address);
//                return orderCrossCityService.process(orderId, state, lon, lat, address);
            case 4://同城小件
                return orderLogisticsService.process(orderId, state, lon, lat, address);
            case 5://跨城小件
                return orderLogisticsService.process(orderId, state, lon, lat, address);
//                return orderLogisticsService.process(orderId, state, lon, lat, address);
            case 6:
                break;
        }