Browse Source

Merge remote-tracking branch 'origin/master'

xiao547607 4 năm trước cách đây
mục cha
commit
ff6bcc62b9

+ 4 - 0
common/src/main/java/com/jpsoft/bus/modules/bus/dto/NearbyShiftDTO.java

@@ -11,6 +11,8 @@ public class NearbyShiftDTO {
 
     private String id;
 
+    private String routeId;
+
     private String routeName;
 
     private String startStationName;
@@ -24,4 +26,6 @@ public class NearbyShiftDTO {
     private Integer stationNum;
 
     private String licensePlateNumber;
+
+    private String des;
 }

+ 83 - 61
web/src/main/java/com/jpsoft/bus/modules/mobile/controller/PassengerApiController.java

@@ -715,7 +715,7 @@ public class PassengerApiController {
             @ApiImplicitParam(name = "latitude", value = "纬度", required = true, paramType = "form")
     })
     public MessageResult<List<NearbyStationDTO>> passengerNearbyStation(String longitude, String latitude, @RequestParam(value = "pageIndex", defaultValue = "1") int pageIndex,
-                                                                        @RequestParam(value = "pageSize", defaultValue = "5") int pageSize) {
+                                                                        @RequestParam(value = "pageSize", defaultValue = "2") int pageSize) {
         MessageResult<List<NearbyStationDTO>> messageResult = new MessageResult<>();
 
         try {
@@ -747,52 +747,10 @@ public class PassengerApiController {
             if (stationInfoList.size() > 0) {
                 for (StationInfo stationInfo : stationInfoList) {
 
+                    RouteInfo routeInfo0 = routeInfoService.get(stationInfo.getRouteId());
 
                     List<ShiftInfo> shiftInfoList = shiftInfoService.findByRouteIdAndStatus(stationInfo.getRouteId(), "1");
                     if (shiftInfoList.size() > 0) {
-                        if (shiftInfoList.size() == 1) {
-
-                            NearbyStationDTO nearbyStationDTO = new NearbyStationDTO();
-
-
-                            ShiftInfo shiftInfo = shiftInfoList.get(0);
-
-                            if (!shiftIdList.contains(shiftInfo.getId())) {
-
-
-                                //线路
-                                RouteInfo routeInfo = routeInfoService.get(shiftInfo.getRouteId());
-                                VehicleInfo vehicleInfo = vehicleInfoService.get(shiftInfo.getVehicleId());
-                                //起始站
-                                StationInfo startStation = stationInfoService.get(shiftInfo.getStartStationId());
-                                //终点站
-                                StationInfo endStation = stationInfoService.get(shiftInfo.getEndStationId());
-                                //当前站
-                                StationInfo currentStation = stationInfoService.get(shiftInfo.getCurrentStationId());
-                                nearbyStationDTO.setStationName(stationInfo.getName());
-                                List<NearbyShiftDTO> nearbyShiftDTOList = new ArrayList<>();
-                                NearbyShiftDTO nearbyShiftDTO = new NearbyShiftDTO();
-                                nearbyShiftDTO.setId(shiftInfo.getVehicleId());
-                                nearbyShiftDTO.setRouteName(routeInfo.getName());
-                                nearbyShiftDTO.setStartStationName(startStation.getName());
-                                nearbyShiftDTO.setEndStationName(endStation.getName());
-                                nearbyShiftDTO.setCurrentStationName(currentStation.getName());
-
-                                //距离
-                                GlobalCoordinates source = new GlobalCoordinates(Double.valueOf(vehicleInfo.getLatitude()), Double.valueOf(vehicleInfo.getLongitude()));
-                                GlobalCoordinates target = new GlobalCoordinates(Double.valueOf(latitude), Double.valueOf(longitude));
-
-                                double meter1 = CommonUtil.getDistanceMeter(source, target, Ellipsoid.Sphere);
-                                nearbyShiftDTO.setDistance((new Double(meter1)).intValue());
-
-
-                                nearbyShiftDTOList.add(nearbyShiftDTO);
-                                nearbyStationDTO.setNearbyShiftDTOList(nearbyShiftDTOList);
-                                nearbyStationDTOList.add(nearbyStationDTO);
-                                shiftIdList.add(shiftInfo.getId());
-
-                            }
-                        } else {
                             NearbyStationDTO nearbyStationDTO = new NearbyStationDTO();
                             List<NearbyShiftDTO> nearbyShiftDTOList = new ArrayList<>();
                             for (ShiftInfo shiftInfo : shiftInfoList) {
@@ -800,37 +758,79 @@ public class PassengerApiController {
 
                                 if (!shiftIdList.contains(shiftInfo.getId())) {
 
-
                                     //线路
                                     RouteInfo routeInfo = routeInfoService.get(shiftInfo.getRouteId());
+                                    List<StationInfo> stationInfos = stationInfoService.findByRouteId(routeInfo.getId());
+
+                                    //当前站
+                                    StationInfo currentStation = stationInfoService.get(shiftInfo.getCurrentStationId());
+
                                     VehicleInfo vehicleInfo = vehicleInfoService.get(shiftInfo.getVehicleId());
                                     //起始站
                                     StationInfo startStation = stationInfoService.get(shiftInfo.getStartStationId());
                                     //终点站
                                     StationInfo endStation = stationInfoService.get(shiftInfo.getEndStationId());
-                                    //当前站
-                                    StationInfo currentStation = stationInfoService.get(shiftInfo.getCurrentStationId());
-
-                                    NearbyShiftDTO nearbyShiftDTO = new NearbyShiftDTO();
-                                    nearbyShiftDTO.setId(shiftInfo.getVehicleId());
-                                    nearbyShiftDTO.setRouteName(routeInfo.getName());
-                                    nearbyShiftDTO.setStartStationName(startStation.getName());
-                                    nearbyShiftDTO.setEndStationName(endStation.getName());
-                                    nearbyShiftDTO.setCurrentStationName(currentStation.getName());
-
-                                    //增加车牌号
-                                    nearbyShiftDTO.setLicensePlateNumber(vehicleInfo.getLicensePlateNumber());
 
                                     //距离
                                     GlobalCoordinates source = new GlobalCoordinates(Double.valueOf(vehicleInfo.getLatitude()), Double.valueOf(vehicleInfo.getLongitude()));
                                     GlobalCoordinates target = new GlobalCoordinates(Double.valueOf(latitude), Double.valueOf(longitude));
 
                                     double meter1 = CommonUtil.getDistanceMeter(source, target, Ellipsoid.Sphere);
-                                    nearbyShiftDTO.setDistance((new Double(meter1)).intValue());
-                                    nearbyShiftDTOList.add(nearbyShiftDTO);
+
+                                    //班次当前站下标
+                                    int stationIndex = stationInfos.indexOf(currentStation);
+                                    //行人当前站
+                                    int personStationIndex = stationInfos.indexOf(stationInfo);
+
+                                    //判断顺行还是逆行
+                                    Boolean tmp = false;
+                                    String des = null;
+                                    if (shiftInfo.getStartStationId().equals(stationInfos.get(0).getId())){
+                                        //顺行
+                                        tmp = true;
+                                    }
+                                    if (tmp){
+                                        if (personStationIndex > stationIndex){
+
+                                            int diff = personStationIndex - stationIndex;
+                                            des = diff + "站 "+ (new Double(meter1)).intValue() + "米";
+
+                                        }
+                                    }
+                                    if (!tmp){
+                                        if (personStationIndex < stationIndex){
+                                            int diff = stationIndex - personStationIndex;
+                                            des = diff + "站 "+ (new Double(meter1)).intValue() + "米";
+
+                                        }
+                                    }
+
+                                    if (personStationIndex == stationIndex){
+                                        des = "已到站";
+
+                                    }
+
+                                    if (StringUtils.isNotBlank(des)){
+                                        nearbyStationDTO.setStationName(stationInfo.getName());
+                                       // List<NearbyShiftDTO> nearbyShiftDTOList = new ArrayList<>();
+                                        NearbyShiftDTO nearbyShiftDTO = new NearbyShiftDTO();
+                                        nearbyShiftDTO.setId(shiftInfo.getVehicleId());
+                                        nearbyShiftDTO.setRouteName(routeInfo.getName());
+                                        nearbyShiftDTO.setStartStationName(startStation.getName());
+                                        nearbyShiftDTO.setEndStationName(endStation.getName());
+                                        nearbyShiftDTO.setCurrentStationName(currentStation.getName());
+
+
+                                        nearbyShiftDTO.setDistance((new Double(meter1)).intValue());
+                                        nearbyShiftDTO.setDes(des);
+
+
+                                        nearbyShiftDTOList.add(nearbyShiftDTO);
+                                        nearbyStationDTO.setNearbyShiftDTOList(nearbyShiftDTOList);
+                                        shiftIdList.add(shiftInfo.getId());
+                                    }
 
 
-                                    shiftIdList.add(shiftInfo.getId());
                                 }
                             }
                             nearbyStationDTO.setStationName(stationInfo.getName());
@@ -840,7 +840,29 @@ public class PassengerApiController {
                             }
 
 
-                        }
+                  //      }
+
+                    }else {
+                        NearbyStationDTO nearbyStationDTO = new NearbyStationDTO();
+                        nearbyStationDTO.setStationName(stationInfo.getName());
+                        List<NearbyShiftDTO> nearbyShiftDTOList = new ArrayList<>();
+                        NearbyShiftDTO nearbyShiftDTO = new NearbyShiftDTO();
+
+                        //起始站
+                        List<StationInfo> startStations = stationInfoService.findByRouteIdAndClassify(routeInfo0.getId(),1);
+                        //终点站
+                        List<StationInfo> endStations = stationInfoService.findByRouteIdAndClassify(routeInfo0.getId(),3);
+                        nearbyShiftDTO.setRouteId(routeInfo0.getId());
+                        nearbyShiftDTO.setStartStationName(startStations.get(0).getName());
+                        nearbyShiftDTO.setEndStationName(endStations.get(0).getName());
+
+                        nearbyShiftDTO.setDes("等待发车");
+                        nearbyShiftDTOList.add(nearbyShiftDTO);
+
+                        nearbyStationDTO.setNearbyShiftDTOList(nearbyShiftDTOList);
+
+                        nearbyStationDTOList.add(nearbyStationDTO);
+
 
                     }
                 }