From 51d4bcf7580a18e1ec8bae50348713e84c264f45 Mon Sep 17 00:00:00 2001 From: phpcjl <phpcjl@gmail.com> Date: 星期四, 05 十二月 2024 10:54:31 +0800 Subject: [PATCH] 1.完成开发门店打分接口 --- ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java | 4 ++-- ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/ShopService.java | 2 +- ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopServiceImpl.java | 13 +++++++++++-- ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/ShopMapper.java | 3 ++- 4 files changed, 16 insertions(+), 6 deletions(-) diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java index ac7e4e9..e6fc1b1 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java @@ -66,8 +66,8 @@ */ @GetMapping("/nearbyShopList") @ApiOperation(value = "附近门店列表", tags = {"小程序-首页-附近门店列表"}) - public R<List<NearbyShopVO>> nearbyShopList(@ApiParam("经度") @RequestParam String longitude, - @ApiParam("纬度") @RequestParam String latitude) { + public R<List<NearbyShopVO>> nearbyShopList(@ApiParam("经度") @RequestParam BigDecimal longitude, + @ApiParam("纬度") @RequestParam BigDecimal latitude) { return R.ok(shopService.nearbyShopList(longitude, latitude)); } diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/ShopMapper.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/ShopMapper.java index be480ad..898b0c1 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/ShopMapper.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/ShopMapper.java @@ -6,6 +6,7 @@ import com.ruoyi.other.vo.ShopDetailVO; import org.apache.ibatis.annotations.Param; +import java.math.BigDecimal; import java.util.List; /** @@ -18,7 +19,7 @@ */ public interface ShopMapper extends BaseMapper<Shop> { - List<NearbyShopVO> selectNearbyShopList(@Param("longitude") String longitude,@Param("latitude") String latitude); + List<NearbyShopVO> selectNearbyShopList(@Param("longitude") BigDecimal longitude,@Param("latitude") BigDecimal latitude); ShopDetailVO selectShopDetail(Integer shopId); diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/ShopService.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/ShopService.java index 78bd58c..7784358 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/ShopService.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/ShopService.java @@ -18,7 +18,7 @@ */ public interface ShopService extends IService<Shop> { - List<NearbyShopVO> nearbyShopList(String longitude, String latitude); + List<NearbyShopVO> nearbyShopList(BigDecimal longitude, BigDecimal latitude); ShopDetailVO getShopDetail(Integer shopId, BigDecimal longitude, BigDecimal latitude); } diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopServiceImpl.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopServiceImpl.java index 38fcdf3..980350e 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopServiceImpl.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopServiceImpl.java @@ -16,6 +16,7 @@ import javax.annotation.Resource; import java.math.BigDecimal; import java.math.RoundingMode; +import java.util.Collections; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -36,10 +37,18 @@ private ShopScoreService shopScoreService; @Override - public List<NearbyShopVO> nearbyShopList(String longitude, String latitude) { - List<NearbyShopVO> nearbyShopVOS = shopMapper.selectNearbyShopList(longitude, latitude); + public List<NearbyShopVO> nearbyShopList(BigDecimal longitude, BigDecimal latitude) { + List<NearbyShopVO> nearbyShopVOS = shopMapper.selectNearbyShopList(longitude, longitude); + if (nearbyShopVOS == null || nearbyShopVOS.isEmpty()) { + return Collections.emptyList(); + } + List<Long> shopIds = nearbyShopVOS.stream().map(NearbyShopVO::getId).collect(Collectors.toList()); List<ShopScore> shopScores = shopScoreService.list(new LambdaQueryWrapper<ShopScore>().in(ShopScore::getShopId, shopIds)); + if (shopScores == null || shopScores.isEmpty()) { + return nearbyShopVOS; + } + Map<Long, List<ShopScore>> shopScoreMap = shopScores.stream().collect(Collectors.groupingBy(ShopScore::getShopId)); nearbyShopVOS.forEach(nearbyShopVO -> { -- Gitblit v1.7.1