diff --git a/src/main/java/com/ycwl/basic/controller/mobile/AppScenicController.java b/src/main/java/com/ycwl/basic/controller/mobile/AppScenicController.java index a131661..7d92dde 100644 --- a/src/main/java/com/ycwl/basic/controller/mobile/AppScenicController.java +++ b/src/main/java/com/ycwl/basic/controller/mobile/AppScenicController.java @@ -2,9 +2,11 @@ package com.ycwl.basic.controller.mobile; import com.github.pagehelper.PageInfo; import com.ycwl.basic.annotation.IgnoreToken; +import com.ycwl.basic.constant.BaseContextHandler; import com.ycwl.basic.model.jwt.JwtInfo; import com.ycwl.basic.model.mobile.scenic.ScenicAppVO; import com.ycwl.basic.model.mobile.scenic.ScenicDeviceCountVO; +import com.ycwl.basic.model.mobile.scenic.ScenicIndexVO; import com.ycwl.basic.model.mobile.scenic.content.ContentPageVO; import com.ycwl.basic.model.pc.scenic.entity.ScenicConfigEntity; import com.ycwl.basic.model.pc.scenic.req.ScenicReqQuery; @@ -22,6 +24,7 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.util.ArrayList; import java.util.List; /** @@ -41,11 +44,21 @@ public class AppScenicController { private AppScenicService appScenicService; @Autowired private ScenicRepository scenicRepository; + private static final List ENABLED_USER_IDs = new ArrayList<>(){{ + add("3932535453961555968"); + add("3936121342868459520"); + add("3936940597855784960"); + }}; @ApiOperation("分页查询景区列表") @PostMapping("/page") public ApiResponse> pageQuery(@RequestBody ScenicReqQuery scenicReqQuery){ - return appScenicService.pageQuery(scenicReqQuery); + String userId = BaseContextHandler.getUserId(); + if (ENABLED_USER_IDs.contains(userId)) { + return appScenicService.pageQuery(scenicReqQuery); + } else { + return ApiResponse.success(new PageInfo<>(new ArrayList<>())); + } } @ApiOperation("根据id查询景区详情") @IgnoreToken @@ -96,4 +109,10 @@ public class AppScenicController { List contentPageVOS = faceService.faceContentList(faceId); return ApiResponse.success(contentPageVOS); } + + @PostMapping("/nearby") + public ApiResponse> nearby(@RequestBody ScenicIndexVO scenicIndexVO) { + List list = appScenicService.scenicListByLnLa(scenicIndexVO); + return ApiResponse.success(list); + } } diff --git a/src/main/java/com/ycwl/basic/model/mobile/scenic/ScenicAppVO.java b/src/main/java/com/ycwl/basic/model/mobile/scenic/ScenicAppVO.java index 82391a3..3a1a272 100644 --- a/src/main/java/com/ycwl/basic/model/mobile/scenic/ScenicAppVO.java +++ b/src/main/java/com/ycwl/basic/model/mobile/scenic/ScenicAppVO.java @@ -70,7 +70,7 @@ public class ScenicAppVO { /** * 距离 */ - @ApiModelProperty("距离") + @ApiModelProperty("距离米") private BigDecimal distance; /** diff --git a/src/main/java/com/ycwl/basic/service/mobile/AppScenicService.java b/src/main/java/com/ycwl/basic/service/mobile/AppScenicService.java index ae6c76d..ff19560 100644 --- a/src/main/java/com/ycwl/basic/service/mobile/AppScenicService.java +++ b/src/main/java/com/ycwl/basic/service/mobile/AppScenicService.java @@ -3,6 +3,7 @@ package com.ycwl.basic.service.mobile; import com.github.pagehelper.PageInfo; import com.ycwl.basic.model.mobile.scenic.ScenicAppVO; import com.ycwl.basic.model.mobile.scenic.ScenicDeviceCountVO; +import com.ycwl.basic.model.mobile.scenic.ScenicIndexVO; import com.ycwl.basic.model.mobile.scenic.account.ScenicLoginReq; import com.ycwl.basic.model.mobile.scenic.account.ScenicLoginRespVO; import com.ycwl.basic.model.pc.device.resp.DeviceRespVO; @@ -28,4 +29,6 @@ public interface AppScenicService { ApiResponse getMyScenic(); ApiResponse> getMyDevices(); + + List scenicListByLnLa(ScenicIndexVO scenicIndexVO); } diff --git a/src/main/java/com/ycwl/basic/service/mobile/impl/AppScenicServiceImpl.java b/src/main/java/com/ycwl/basic/service/mobile/impl/AppScenicServiceImpl.java index 61ba225..65da5d1 100644 --- a/src/main/java/com/ycwl/basic/service/mobile/impl/AppScenicServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/mobile/impl/AppScenicServiceImpl.java @@ -8,6 +8,7 @@ import com.ycwl.basic.mapper.*; import com.ycwl.basic.model.jwt.JwtInfo; import com.ycwl.basic.model.mobile.scenic.ScenicAppVO; import com.ycwl.basic.model.mobile.scenic.ScenicDeviceCountVO; +import com.ycwl.basic.model.mobile.scenic.ScenicIndexVO; import com.ycwl.basic.model.mobile.scenic.account.ScenicLoginReq; import com.ycwl.basic.model.mobile.scenic.account.ScenicLoginRespVO; import com.ycwl.basic.model.pc.device.resp.DeviceRespVO; @@ -21,6 +22,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.math.BigDecimal; import java.util.List; /** @@ -110,4 +112,10 @@ public class AppScenicServiceImpl implements AppScenicService { List deviceRespVOList = deviceMapper.listByScenicIdWithWVP(account.getScenicId()); return ApiResponse.success(deviceRespVOList); } + + @Override + public List scenicListByLnLa(ScenicIndexVO scenicIndexVO) { + List scenicAppVOS = scenicMapper.scenicListByLnLa(scenicIndexVO); + return scenicAppVOS.stream().filter(scenic -> scenic.getDistance().compareTo(scenic.getRadius().multiply(BigDecimal.valueOf(1_000L))) < 0).toList(); + } } diff --git a/src/main/resources/mapper/ScenicMapper.xml b/src/main/resources/mapper/ScenicMapper.xml index df2d7dc..9bfe100 100644 --- a/src/main/resources/mapper/ScenicMapper.xml +++ b/src/main/resources/mapper/ScenicMapper.xml @@ -173,7 +173,8 @@ where s.id = #{id}