|
@@ -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);
|
|
|
+
|
|
|
|
|
|
}
|
|
|
}
|