Просмотр исходного кода

优化商家查询逻辑;完善商家详情逻辑;

woody 1 год назад
Родитель
Сommit
31e7619b4a

+ 44 - 0
src/main/java/com/chelvc/cloud/maintain/controller/GoodsController.java

@@ -0,0 +1,44 @@
+package com.chelvc.cloud.maintain.controller;
+
+import java.util.List;
+import javax.validation.Valid;
+import javax.validation.constraints.Min;
+
+import com.chelvc.cloud.maintain.copier.GoodsCopier;
+import com.chelvc.cloud.maintain.vo.SimpleGoodsVO;
+import com.chelvc.cloud.vehicle.api.param.GoodsQueryParam;
+import com.chelvc.cloud.vehicle.api.service.GoodsService;
+import com.chelvc.framework.base.annotation.UnifiedResponseBody;
+import org.apache.dubbo.config.annotation.DubboReference;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 商品接口
+ *
+ * @author Woody
+ * @date 2023/8/6
+ */
+@Validated
+@RestController
+@UnifiedResponseBody
+public class GoodsController {
+    @DubboReference
+    private GoodsService goodsService;
+
+    /**
+     * 获取商家商品列表
+     *
+     * @param merchantId 商家ID
+     * @param param      查询参数
+     * @return 商品信息列表
+     */
+    @GetMapping("/merchant/{merchantId}/goods")
+    public List<SimpleGoodsVO> listMerchantSimpleGoods(
+            @PathVariable("merchantId") @Min(value = 1, message = "商家ID不能小于1") Long merchantId,
+            @Valid GoodsQueryParam param) {
+        return GoodsCopier.INSTANCE.copying(this.goodsService.listMerchantSimpleGoods(merchantId, param));
+    }
+}

+ 2 - 2
src/main/java/com/chelvc/cloud/maintain/controller/IndexController.java

@@ -62,9 +62,9 @@ public class IndexController {
     }
 
     /**
-     * 获取当前位置,如果经纬度为空则根据客户端IP定位
+     * 获取当前位置
      *
-     * @param point 经纬度(如:30.563443,104.009457)
+     * @param point 经纬度(如:30.563443,104.009457),如果为空则根据IP获取位置信息
      * @return 位置信息
      */
     @GetMapping("/location")

+ 1 - 4
src/main/java/com/chelvc/cloud/maintain/controller/MerchantController.java

@@ -10,9 +10,7 @@ import com.chelvc.cloud.maintain.vo.SimpleMerchantVO;
 import com.chelvc.cloud.vehicle.api.param.MerchantQueryParam;
 import com.chelvc.cloud.vehicle.api.service.MerchantService;
 import com.chelvc.framework.base.annotation.UnifiedResponseBody;
-import lombok.RequiredArgsConstructor;
 import org.apache.dubbo.config.annotation.DubboReference;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PathVariable;
@@ -27,7 +25,6 @@ import org.springframework.web.bind.annotation.RestController;
 @Validated
 @RestController
 @UnifiedResponseBody
-@RequiredArgsConstructor(onConstructor = @__(@Autowired))
 public class MerchantController {
     @DubboReference
     private MerchantService merchantService;
@@ -40,7 +37,7 @@ public class MerchantController {
      */
     @GetMapping("/merchants")
     public List<SimpleMerchantVO> listSimpleMerchants(@Valid MerchantQueryParam param) {
-        return MerchantCopier.INSTANCE.copying(this.merchantService.listSimpleMerchants(param, 10));
+        return MerchantCopier.INSTANCE.copying(this.merchantService.listSimpleMerchants(param));
     }
 
     /**

+ 32 - 0
src/main/java/com/chelvc/cloud/maintain/copier/GoodsCopier.java

@@ -0,0 +1,32 @@
+package com.chelvc.cloud.maintain.copier;
+
+import java.util.Collection;
+import java.util.List;
+
+import com.chelvc.cloud.maintain.vo.SimpleGoodsVO;
+import com.chelvc.cloud.vehicle.api.dto.GoodsDTO;
+import org.mapstruct.Builder;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+/**
+ * 商品信息拷贝接口
+ *
+ * @author Woody
+ * @date 2023/8/6
+ */
+@Mapper(builder = @Builder(disableBuilder = true))
+public interface GoodsCopier {
+    /**
+     * 对象拷贝接口实例
+     */
+    GoodsCopier INSTANCE = Mappers.getMapper(GoodsCopier.class);
+
+    /**
+     * 商品信息拷贝
+     *
+     * @param goods 商品信息集合
+     * @return 商品信息列表
+     */
+    List<SimpleGoodsVO> copying(Collection<GoodsDTO> goods);
+}

+ 5 - 4
src/main/java/com/chelvc/cloud/maintain/vo/MerchantDetailVO.java

@@ -3,6 +3,7 @@ package com.chelvc.cloud.maintain.vo;
 import java.io.Serializable;
 import java.util.List;
 
+import com.chelvc.cloud.vehicle.api.constant.CategoryType;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
@@ -25,12 +26,12 @@ public class MerchantDetailVO implements Serializable {
     private MerchantVO merchant;
 
     /**
-     * 分类列表
+     * 商品列表
      */
-    private List<CategoryVO> categories;
+    private List<SimpleGoodsVO> goods;
 
     /**
-     * 商品信息
+     * 分类类型列表
      */
-    private MerchantGoodsVO goods;
+    private List<CategoryType> categories;
 }

+ 0 - 31
src/main/java/com/chelvc/cloud/maintain/vo/MerchantGoodsVO.java

@@ -1,31 +0,0 @@
-package com.chelvc.cloud.maintain.vo;
-
-import java.io.Serializable;
-import java.util.List;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-import lombok.experimental.SuperBuilder;
-
-/**
- * 商家商品信息
- *
- * @author Woody
- * @date 2023/7/20
- */
-@Data
-@SuperBuilder
-@NoArgsConstructor
-@AllArgsConstructor
-public class MerchantGoodsVO implements Serializable {
-    /**
-     * 商品总数
-     */
-    private Integer total;
-
-    /**
-     * 商品列表
-     */
-    private List<SimpleGoodsVO> goods;
-}