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