From f9fcb0635583d932fbf22137e233eba0b40e7702 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Thu, 5 Jun 2025 17:27:55 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E7=BB=8F=E7=BA=AC=E5=BA=A6?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=99=AF=E5=8C=BA=EF=BC=8C=E5=B9=B6=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E6=9F=A5=E8=AF=A2=E6=89=80=E6=9C=89=E6=99=AF=E5=8C=BA?= =?UTF-8?q?=E7=9A=84=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mobile/AppScenicController.java | 21 ++++++++++++++++++- .../model/mobile/scenic/ScenicAppVO.java | 2 +- .../service/mobile/AppScenicService.java | 3 +++ .../mobile/impl/AppScenicServiceImpl.java | 8 +++++++ src/main/resources/mapper/ScenicMapper.xml | 7 +++++-- 5 files changed, 37 insertions(+), 4 deletions(-) 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}