From e35d81ec77bddf432cbf4dca4d059914ec49bb85 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Thu, 16 Sep 2021 19:34:57 +0800
Subject: [PATCH] add mall category interface

---
 src/main/resources/mapper/modules/MallGoodsCategoryMapper.xml                       |   33 +++++++++++
 src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsCategoryMapper.java               |    7 ++
 src/main/java/cc/mrbird/febs/mall/controller/ApiMallGoodsCategoryController.java    |   53 +++++++++++++++++
 src/main/java/cc/mrbird/febs/mall/service/IApiMallGoodsCategoryService.java         |   16 +++++
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallGoodsCategoryServiceImpl.java |   38 ++++++++++++
 src/main/java/cc/mrbird/febs/mall/vo/MallGoodsCategoryVo.java                       |   28 +++++++++
 6 files changed, 175 insertions(+), 0 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallGoodsCategoryController.java b/src/main/java/cc/mrbird/febs/mall/controller/ApiMallGoodsCategoryController.java
new file mode 100644
index 0000000..a7f6555
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/controller/ApiMallGoodsCategoryController.java
@@ -0,0 +1,53 @@
+package cc.mrbird.febs.mall.controller;
+
+import cc.mrbird.febs.common.entity.FebsResponse;
+import cc.mrbird.febs.mall.service.IApiMallGoodsCategoryService;
+import cc.mrbird.febs.mall.vo.MallGoodsCategoryVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * @author wzy
+ * @date 2021-09-16
+ **/
+@Slf4j
+@RestController
+@RequiredArgsConstructor
+@RequestMapping(value = "/api/category")
+@Api(value = "ApiMallGoodsCategoryController", tags = "商品分类参数接收类")
+public class ApiMallGoodsCategoryController {
+
+    private final IApiMallGoodsCategoryService mallGoodsCategoryService;
+
+    @ApiOperation(value = "findAllCategoryList", notes = "获取商品分类列表")
+    @ApiResponses({
+            @ApiResponse(code = 200, message = "success", response = MallGoodsCategoryVo.class)
+    })
+    @GetMapping(value = "/findAllCategoryList")
+    public FebsResponse findAllCategoryList() {
+        return new FebsResponse().success().data(mallGoodsCategoryService.findAllCategoryList());
+    }
+
+    @ApiOperation(value = "findChildCategoryListById", notes = "获取父分类下分类")
+    @GetMapping(value = "/findChildCategoryListById/{id}")
+    public FebsResponse findChildCategoryListById(@PathVariable("id") Long id) {
+        return new FebsResponse().success().data(mallGoodsCategoryService.findChildCategoryListById(id));
+    }
+
+    @ApiOperation(value = "findRecommendCategory", notes = "获取推荐分类")
+    @GetMapping(value = "/findRecommendCategory")
+    public FebsResponse findRecommendCategory() {
+        return new FebsResponse().success().data(mallGoodsCategoryService.findRecommendCategory());
+    }
+
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsCategoryMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsCategoryMapper.java
index f02d03d..85d069f 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsCategoryMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsCategoryMapper.java
@@ -1,6 +1,7 @@
 package cc.mrbird.febs.mall.mapper;
 
 import cc.mrbird.febs.mall.entity.MallGoodsCategory;
+import cc.mrbird.febs.mall.vo.MallGoodsCategoryVo;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -15,4 +16,10 @@
     List<MallGoodsCategory> selectCategoryByName(@Param("name")String name);
 
     List<MallGoodsCategory> getCategorys();
+
+    List<MallGoodsCategoryVo> selectAllCategoryList();
+
+    List<MallGoodsCategory> selectCategoryListByParentId(@Param("id") Long id);
+
+    List<MallGoodsCategory> selectRecommendCategoryList();
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/IApiMallGoodsCategoryService.java b/src/main/java/cc/mrbird/febs/mall/service/IApiMallGoodsCategoryService.java
new file mode 100644
index 0000000..70b88e6
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/service/IApiMallGoodsCategoryService.java
@@ -0,0 +1,16 @@
+package cc.mrbird.febs.mall.service;
+
+import cc.mrbird.febs.mall.entity.MallGoodsCategory;
+import cc.mrbird.febs.mall.vo.MallGoodsCategoryVo;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.List;
+
+public interface IApiMallGoodsCategoryService extends IService<MallGoodsCategory> {
+
+    List<MallGoodsCategoryVo> findAllCategoryList();
+
+    List<MallGoodsCategory> findChildCategoryListById(Long id);
+
+    List<MallGoodsCategory> findRecommendCategory();
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallGoodsCategoryServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallGoodsCategoryServiceImpl.java
new file mode 100644
index 0000000..b2aeb8b
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallGoodsCategoryServiceImpl.java
@@ -0,0 +1,38 @@
+package cc.mrbird.febs.mall.service.impl;
+
+import cc.mrbird.febs.mall.entity.MallGoodsCategory;
+import cc.mrbird.febs.mall.mapper.MallGoodsCategoryMapper;
+import cc.mrbird.febs.mall.service.IApiMallGoodsCategoryService;
+import cc.mrbird.febs.mall.vo.MallGoodsCategoryVo;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * @author wzy
+ * @date 2021-09-16
+ **/
+@Slf4j
+@Service
+@RequiredArgsConstructor
+public class ApiMallGoodsCategoryServiceImpl extends ServiceImpl<MallGoodsCategoryMapper, MallGoodsCategory> implements IApiMallGoodsCategoryService {
+
+
+    @Override
+    public List<MallGoodsCategoryVo> findAllCategoryList() {
+        return this.baseMapper.selectAllCategoryList();
+    }
+
+    @Override
+    public List<MallGoodsCategory> findChildCategoryListById(Long id) {
+        return this.baseMapper.selectCategoryListByParentId(id);
+    }
+
+    @Override
+    public List<MallGoodsCategory> findRecommendCategory() {
+        return this.baseMapper.selectRecommendCategoryList();
+    }
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/MallGoodsCategoryVo.java b/src/main/java/cc/mrbird/febs/mall/vo/MallGoodsCategoryVo.java
new file mode 100644
index 0000000..304b15e
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/vo/MallGoodsCategoryVo.java
@@ -0,0 +1,28 @@
+package cc.mrbird.febs.mall.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author wzy
+ * @date 2021-09-16
+ **/
+@Data
+@ApiModel(value = "MallGoodsCategoryVo", description = "商品分类返回参数类")
+public class MallGoodsCategoryVo {
+
+    @ApiModelProperty(value = "id")
+    private Long id;
+
+    @ApiModelProperty(value = "分类名称")
+    private String name;
+
+    @ApiModelProperty(value = "父级分类ID")
+    private Long parentId;
+
+    @ApiModelProperty(value = "子类集合")
+    private List<MallGoodsCategoryVo> child;
+}
diff --git a/src/main/resources/mapper/modules/MallGoodsCategoryMapper.xml b/src/main/resources/mapper/modules/MallGoodsCategoryMapper.xml
index d57592e..6d2332d 100644
--- a/src/main/resources/mapper/modules/MallGoodsCategoryMapper.xml
+++ b/src/main/resources/mapper/modules/MallGoodsCategoryMapper.xml
@@ -24,4 +24,37 @@
         SELECT * FROM mall_goods_category m where m.parent_id is null
     </select>
 
+    <resultMap id="mallGoodsCategoryVoMap" type="cc.mrbird.febs.mall.vo.MallGoodsCategoryVo">
+        <id column="id" property="id" />
+        <result column="name" property="name" />
+        <result column="parent_id" property="parentId" />
+        <collection property="child" ofType="cc.mrbird.febs.mall.vo.MallGoodsCategoryVo">
+            <id column="child_id" property="id"/>
+            <result column="child_name" property="name" />
+            <result column="child_parent_id" property="parentId" />
+        </collection>
+    </resultMap>
+
+    <select id="selectAllCategoryList" resultMap="mallGoodsCategoryVoMap">
+        select
+            a.id,
+            a.name,
+            a.parent_id,
+            b.id child_id,
+            b.name child_name,
+            b.parent_id child_parent_id
+        from mall_goods_category a
+          inner join mall_goods_category b on a.id=b.parent_id
+        where a.parent_id = 0
+    </select>
+
+    <select id="selectCategoryListByParentId" resultType="cc.mrbird.febs.mall.entity.MallGoodsCategory">
+        select * from mall_goods_category
+        where parent_id=#{id}
+    </select>
+
+    <select id="selectRecommendCategoryList" resultType="cc.mrbird.febs.mall.entity.MallGoodsCategory">
+        select * from mall_goods_category
+        where parent_id=0 and is_recommend = 1
+    </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.1