瀏覽代碼

no message

zy 7 月之前
父節點
當前提交
111e484c9a

+ 3 - 1
bus-biz/src/main/java/bus/mapper/BCourseInfoMapper.java

@@ -24,7 +24,9 @@ public interface BCourseInfoMapper extends BaseMapper<BCourseInfoPo> {
 
     List<BStationInfoDto> findNearbyStations(@Param("longitude") BigDecimal longitude,
                                              @Param("latitude") BigDecimal latitude,
-                                             @Param("radius") Integer radius);
+                                             @Param("radius") Integer radius,
+                                             @Param("BigDistance") Integer BigDistance
+    );
     List<BCourseInfoVo> findRoutesByStations(@Param("stationIds") List<String> stationIds);
 
     List<BCourseInfoVo> findRoutesByStationId(@Param("stationIds") List<String> stationIds);

+ 1 - 1
bus-biz/src/main/java/bus/service/BCourseInfoService.java

@@ -61,7 +61,7 @@ public interface BCourseInfoService extends IService<BCourseInfoPo> {
      * @param radius
      * @return
      */
-    List<WBusTrackInfoDto> getNearbyRoutes(BigDecimal latitude, BigDecimal longitude, Integer radius);
+    List<WBusTrackInfoDto> getNearbyRoutes(NearbyRoutesDto nearbyRoutesDto);
 
     List<BCourseTrackTreeDto> getTreeList();
 

+ 7 - 12
bus-biz/src/main/java/bus/service/impl/BCourseInfoServiceImpl.java

@@ -354,26 +354,21 @@ public class BCourseInfoServiceImpl extends ServiceImpl<BCourseInfoMapper, BCour
 
     /**
      * 根据经纬度和半径(米)获取附近的路线
-     * @param latitude 纬度
-     * @param longitude 经度
-     * @param radius 半径(米)
      * @return 附近的路线列表
      */
     @Override
-    public List<WBusTrackInfoDto> getNearbyRoutes(BigDecimal latitude, BigDecimal longitude, Integer radius) {
+    public List<WBusTrackInfoDto> getNearbyRoutes(NearbyRoutesDto nearbyRoutesDto) {
+        Integer radius = nearbyRoutesDto.getRadius();
+        Integer bigDistance = nearbyRoutesDto.getBigDistance();
+        BigDecimal latitude = nearbyRoutesDto.getLatitude();
+        BigDecimal longitude = nearbyRoutesDto.getLongitude();
         // 参数验证
-        if (latitude == null || longitude == null || radius == null) {
+        if (latitude == null || longitude == null || radius == null || bigDistance == null) {
             return Collections.emptyList();
         }
-        
-        // 限制查询半径,最大10公里
-        int maxRadius = 10000;
-        if (radius <= 0 || radius > maxRadius) {
-            radius = maxRadius;
-        }
 
         // 1. 查询附近站点
-        List<BStationInfoDto> nearbyStations = bCourseInfoMapper.findNearbyStations(latitude, longitude, radius);
+        List<BStationInfoDto> nearbyStations = bCourseInfoMapper.findNearbyStations(latitude, longitude, radius,bigDistance);
         if (CollectionUtil.isEmpty(nearbyStations)) {
             return Collections.emptyList();
         }

+ 1 - 1
bus-biz/src/main/resources/mapper/BCourseInfoMapper.xml

@@ -67,7 +67,7 @@
                                 AND #{longitude} + #{radius} / (111300 * COS(#{latitude} * PI() / 180))
         HAVING distance  &lt; #{radius}
         ORDER BY distance
-        LIMIT 50
+        LIMIT #{BigDistance}
     </select>
 
     <!-- 查询经过指定站点的路线 -->

+ 18 - 0
bus-common/src/main/java/bus/model/dto/NearbyRoutesDto.java

@@ -0,0 +1,18 @@
+package bus.model.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class NearbyRoutesDto {
+    @ApiModelProperty("纬度")
+    private BigDecimal latitude;
+    @ApiModelProperty("经度")
+    private BigDecimal longitude;
+    @ApiModelProperty("半径米")
+    private Integer radius;
+    @ApiModelProperty("最大距离米")
+    private Integer bigDistance;
+}

+ 6 - 12
bus-web/src/main/java/bus/controller/biz/BCourseInfoController.java

@@ -1,11 +1,8 @@
 package bus.controller.biz;
 
-import bus.model.dto.WBusTrackInfoDto;
-import bus.model.dto.WCourseInfoByTypeDto;
-import bus.model.dto.WStationNameDto;
+import bus.model.dto.*;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageSerializable;
-import bus.model.dto.BCourseInfoDto;
 import bus.model.dto.page.BCourseInfoPageDto;
 import bus.model.vo.BCourseInfoVo;
 import bus.service.BCourseInfoService;
@@ -124,17 +121,14 @@ public class BCourseInfoController implements BaseController {
 
     /**
      * 根据经纬度和半径(米)获取附近的路线
-     * @param latitude
-     * @param longitude
-     * @param radius
+
      * @return
      */
     @ApiOperation("根据经纬度和半径(米)获取附近的路线")
-    @GetMapping(value = "getNearbyRoutes")
-    List<WBusTrackInfoDto> getNearbyRoutes(@RequestParam BigDecimal latitude,
-                                           @RequestParam BigDecimal longitude,
-                                           @RequestParam Integer radius){
-        return bCourseInfoService.getNearbyRoutes(latitude,longitude,radius);
+    @PostMapping(value = "getNearbyRoutes")
+    List<WBusTrackInfoDto> getNearbyRoutes(@RequestBody NearbyRoutesDto nearbyRoutesDto
+                                           ){
+        return bCourseInfoService.getNearbyRoutes(nearbyRoutesDto);
     }
 
 }