Przeglądaj źródła

更新商家查询逻辑

woody 1 rok temu
rodzic
commit
99e01d46f4

+ 8 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/LocationQueryParam.java

@@ -1,6 +1,7 @@
 package com.chelvc.cloud.vehicle.api.param;
 
 import java.io.Serializable;
+import javax.validation.constraints.Min;
 import javax.validation.constraints.NotNull;
 
 import lombok.AllArgsConstructor;
@@ -19,6 +20,13 @@ import lombok.experimental.SuperBuilder;
 @NoArgsConstructor
 @AllArgsConstructor
 public class LocationQueryParam implements Serializable {
+    /**
+     * 地区编码
+     */
+    @NotNull(message = "地区编码不能为空")
+    @Min(value = 100000, message = "地区编码不能小于100000")
+    private Integer region;
+
     /**
      * 经度
      */

+ 9 - 12
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/service/MerchantService.java

@@ -17,32 +17,29 @@ public interface MerchantService {
     /**
      * 获取附近商家
      *
-     * @param region 所属地区
-     * @param param  查询参数
-     * @param size   商家数量
+     * @param param 查询参数
+     * @param size  商家数量
      * @return 商家信息列表
      */
-    List<MerchantDTO> listNearbyMerchants(int region, LocationQueryParam param, int size);
+    List<MerchantDTO> listNearbyMerchants(LocationQueryParam param, int size);
 
     /**
      * 获取推荐商家
      *
-     * @param region 所属地区
-     * @param param  查询参数
-     * @param size   商家数量
+     * @param param 查询参数
+     * @param size  商家数量
      * @return 商家信息列表
      */
-    List<MerchantDTO> listRecommendMerchants(int region, LocationQueryParam param, int size);
+    List<MerchantDTO> listRecommendMerchants(LocationQueryParam param, int size);
 
     /**
      * 查询商家
      *
-     * @param region 所属地区
-     * @param param  查询参数
-     * @param size   商家数量
+     * @param param 查询参数
+     * @param size  商家数量
      * @return 商家信息列表
      */
-    List<MerchantDTO> listSimpleMerchants(int region, MerchantQueryParam param, int size);
+    List<MerchantDTO> listSimpleMerchants(MerchantQueryParam param, int size);
 
     /**
      * 获取商家详情

+ 9 - 15
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/dao/MerchantMapper.java

@@ -21,33 +21,27 @@ public interface MerchantMapper extends BaseMapper<Merchant> {
     /**
      * 获取附近商家
      *
-     * @param region 所属地区
-     * @param param  查询参数
-     * @param size   商家数量
+     * @param param 查询参数
+     * @param size  商家数量
      * @return 商家信息列表
      */
-    List<MerchantDTO> listNearbyMerchants(@Param("region") int region, @Param("param") LocationQueryParam param,
-                                          @Param("size") int size);
+    List<MerchantDTO> listNearbyMerchants(@Param("param") LocationQueryParam param, @Param("size") int size);
 
     /**
      * 获取推荐商家
      *
-     * @param region 所属地区
-     * @param param  查询参数
-     * @param size   商家数量
+     * @param param 查询参数
+     * @param size  商家数量
      * @return 商家信息列表
      */
-    List<MerchantDTO> listRecommendMerchants(@Param("region") int region, @Param("param") LocationQueryParam param,
-                                             @Param("size") int size);
+    List<MerchantDTO> listRecommendMerchants(@Param("param") LocationQueryParam param, @Param("size") int size);
 
     /**
      * 查询商家
      *
-     * @param region 所属地区
-     * @param param  查询参数
-     * @param size   商家数量
+     * @param param 查询参数
+     * @param size  商家数量
      * @return 商家信息列表
      */
-    List<MerchantDTO> listSimpleMerchants(@Param("region") int region, @Param("param") MerchantQueryParam param,
-                                          @Param("size") int size);
+    List<MerchantDTO> listSimpleMerchants(@Param("param") MerchantQueryParam param, @Param("size") int size);
 }

+ 6 - 6
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/MerchantServiceImpl.java

@@ -36,18 +36,18 @@ public class MerchantServiceImpl extends ServiceImpl<MerchantMapper, Merchant> i
     private final CategoryService categoryService;
 
     @Override
-    public List<MerchantDTO> listNearbyMerchants(int region, @NonNull LocationQueryParam param, int size) {
-        return this.baseMapper.listNearbyMerchants(region, param, size);
+    public List<MerchantDTO> listNearbyMerchants(@NonNull LocationQueryParam param, int size) {
+        return this.baseMapper.listNearbyMerchants(param, size);
     }
 
     @Override
-    public List<MerchantDTO> listRecommendMerchants(int region, @NonNull LocationQueryParam param, int size) {
-        return this.baseMapper.listRecommendMerchants(region, param, size);
+    public List<MerchantDTO> listRecommendMerchants(@NonNull LocationQueryParam param, int size) {
+        return this.baseMapper.listRecommendMerchants(param, size);
     }
 
     @Override
-    public List<MerchantDTO> listSimpleMerchants(int region, @NonNull MerchantQueryParam param, int size) {
-        return this.baseMapper.listSimpleMerchants(region, param, size);
+    public List<MerchantDTO> listSimpleMerchants(@NonNull MerchantQueryParam param, int size) {
+        return this.baseMapper.listSimpleMerchants(param, size);
     }
 
     @Override

+ 3 - 16
vehicle-server/src/main/resources/mapper/MerchantMapper.xml

@@ -14,12 +14,7 @@
             point(mt.longitude, mt.latitude), point(#{param.longitude}, #{param.latitude})
         )) distance
         from `merchant` mt
-        <where>
-            <if test="region > 0">
-                mt.region = #{region}
-            </if>
-            and mt.status = 'ONLINE'
-        </where>
+        where mt.region = #{param.region} and mt.status = 'ONLINE'
         order by distance asc limit #{size}
     </select>
 
@@ -29,12 +24,7 @@
             point(mt.longitude, mt.latitude), point(#{param.longitude}, #{param.latitude})
         )) distance
         from `merchant` mt
-        <where>
-            <if test="region > 0">
-                mt.region = #{region}
-            </if>
-            and mt.status = 'ONLINE' and mt.recommend = 1
-        </where>
+        where mt.region = #{param.region} and mt.status = 'ONLINE' and mt.recommend = 1
         order by distance asc limit #{size}
     </select>
 
@@ -58,10 +48,7 @@
             <if test="param.offset != null">
                 mt.id > #{param.offset}
             </if>
-            <if test="region > 0">
-                and mt.region = #{region}
-            </if>
-            and mt.status = 'ONLINE'
+            mt.region = #{param.region} and mt.status = 'ONLINE'
             <if test="param.keyword != null and !param.keyword.isEmpty()">
                 and mt.name like concat('%', #{param.keyword}, '%')
             </if>