From 1aeb2be4330eb8119845b10bffca5ddaf272c2c4 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Thu, 24 Jun 2021 17:35:20 +0800
Subject: [PATCH] add xzx goods category List and goodsList
---
gc-shop/src/main/java/com/xzx/gc/shop/vo/XcxGoodsDetailSkuVo.java | 34 ++++++
gc-shop/src/main/java/com/xzx/gc/shop/vo/XcxGoodsDetailStyleVo.java | 21 ++++
gc-shop/src/main/resources/mapper/shop/ScoreGoodsMapper.xml | 18 +++
gc-shop/src/main/java/com/xzx/gc/shop/mapper/ScoreGoodsCategoryMapper.java | 3
gc-shop/src/main/java/com/xzx/gc/shop/vo/GoodsCategoryVo.java | 21 ++++
gc-shop/src/main/java/com/xzx/gc/shop/vo/XcxGoodsListVo.java | 31 ++++++
gc-shop/src/main/java/com/xzx/gc/shop/controller/ApiGoodsController.java | 50 ++++++++++
gc-shop/src/main/java/com/xzx/gc/shop/dto/XcxGoodsListDto.java | 29 +++++
gc-shop/src/main/resources/mapper/shop/ScoreGoodsCategoryMapper.xml | 15 +++
gc-shop/src/main/java/com/xzx/gc/shop/mapper/ScoreGoodsMapper.java | 6 +
gc-shop/src/main/java/com/xzx/gc/shop/service/GoodsService.java | 13 ++
gc-shop/src/main/java/com/xzx/gc/shop/vo/XcxGoodsDetailVo.java | 44 ++++++++
12 files changed, 285 insertions(+), 0 deletions(-)
diff --git a/gc-shop/src/main/java/com/xzx/gc/shop/controller/ApiGoodsController.java b/gc-shop/src/main/java/com/xzx/gc/shop/controller/ApiGoodsController.java
new file mode 100644
index 0000000..9adebb7
--- /dev/null
+++ b/gc-shop/src/main/java/com/xzx/gc/shop/controller/ApiGoodsController.java
@@ -0,0 +1,50 @@
+package com.xzx.gc.shop.controller;
+
+
+import com.github.pagehelper.PageInfo;
+import com.xzx.gc.model.JsonResult;
+import com.xzx.gc.shop.dto.XcxGoodsListDto;
+import com.xzx.gc.shop.service.GoodsService;
+import com.xzx.gc.shop.vo.GoodsCategoryVo;
+import com.xzx.gc.shop.vo.XcxGoodsListVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+
+@RestController
+@Api(tags = {"积分商城--API商品管理"})
+@Slf4j
+public class ApiGoodsController {
+
+ @Autowired
+ private GoodsService goodsService;
+
+ @ApiOperation("分类列表")
+ @ApiResponses(
+ @ApiResponse(code = 200, message = "success", response = GoodsCategoryVo.class)
+ )
+ @GetMapping(value = "/goods/goodsCategory")
+ public JsonResult<List<GoodsCategoryVo>> goodsCategory() {
+ return JsonResult.success(goodsService.findCategoryWithChildren());
+ }
+
+ @ApiOperation("商品列表")
+ @ApiResponses(
+ @ApiResponse(code = 200, message = "success", response = XcxGoodsListVo.class)
+ )
+ @PostMapping(value = "/goods/goodsList")
+ public JsonResult<PageInfo<XcxGoodsListVo>> goodsList(@RequestBody XcxGoodsListDto xcxGoodsListDto, HttpServletRequest request) {
+ return JsonResult.success(goodsService.findGoodsListInPage(xcxGoodsListDto));
+ }
+
+}
diff --git a/gc-shop/src/main/java/com/xzx/gc/shop/dto/XcxGoodsListDto.java b/gc-shop/src/main/java/com/xzx/gc/shop/dto/XcxGoodsListDto.java
new file mode 100644
index 0000000..2e6267f
--- /dev/null
+++ b/gc-shop/src/main/java/com/xzx/gc/shop/dto/XcxGoodsListDto.java
@@ -0,0 +1,29 @@
+package com.xzx.gc.shop.dto;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+@Data
+@ApiModel(value = "XcxGoodsListDto", description = "小程序商品列表参数接受类")
+public class XcxGoodsListDto {
+
+ @ApiModelProperty(value = "名称搜索")
+ private String name;
+
+ @ApiModelProperty(value = "积分")
+ private String score;
+
+ @ApiModelProperty(value = "分类ID")
+ private Long cateId;
+
+ @ApiModelProperty(value="页码")
+ private int pageNo=1;
+
+ @ApiModelProperty(value="每页显示记录数")
+ private int pageSize=10;
+
+}
diff --git a/gc-shop/src/main/java/com/xzx/gc/shop/mapper/ScoreGoodsCategoryMapper.java b/gc-shop/src/main/java/com/xzx/gc/shop/mapper/ScoreGoodsCategoryMapper.java
index fb4f34d..eb5b37b 100644
--- a/gc-shop/src/main/java/com/xzx/gc/shop/mapper/ScoreGoodsCategoryMapper.java
+++ b/gc-shop/src/main/java/com/xzx/gc/shop/mapper/ScoreGoodsCategoryMapper.java
@@ -2,6 +2,7 @@
import com.xzx.gc.entity.ScoreGoodsCategory;
import com.xzx.gc.model.admin.GoodsCategoryModel;
+import com.xzx.gc.shop.vo.GoodsCategoryVo;
import com.xzx.gc.shop.vo.QueryGoodsCategoryListVo;
import com.xzx.gc.shop.vo.ViewGoodsCategoryListVo;
import com.xzx.gc.util.GcMapper;
@@ -11,6 +12,8 @@
public interface ScoreGoodsCategoryMapper extends GcMapper<ScoreGoodsCategory> {
+ List<GoodsCategoryVo> selectCategoryWithChildren();
+
List<QueryGoodsCategoryListVo> queryGoodsCategoryList(@Param("record") GoodsCategoryModel goodsCategoryModel);
List<ViewGoodsCategoryListVo> viewGoodsCategoryOneList(@Param("parentId")Long parentId);
diff --git a/gc-shop/src/main/java/com/xzx/gc/shop/mapper/ScoreGoodsMapper.java b/gc-shop/src/main/java/com/xzx/gc/shop/mapper/ScoreGoodsMapper.java
index 05c091f..0319ae0 100644
--- a/gc-shop/src/main/java/com/xzx/gc/shop/mapper/ScoreGoodsMapper.java
+++ b/gc-shop/src/main/java/com/xzx/gc/shop/mapper/ScoreGoodsMapper.java
@@ -1,7 +1,11 @@
package com.xzx.gc.shop.mapper;
+import com.github.pagehelper.PageInfo;
import com.xzx.gc.entity.ScoreGoods;
+import com.xzx.gc.model.order.OrderInfoVo;
+import com.xzx.gc.shop.dto.XcxGoodsListDto;
import com.xzx.gc.shop.vo.QueryGoodsListVo;
+import com.xzx.gc.shop.vo.XcxGoodsListVo;
import com.xzx.gc.util.GcMapper;
import org.apache.ibatis.annotations.Param;
@@ -14,4 +18,6 @@
ScoreGoods selectById(long id);
List<QueryGoodsListVo> queryGoodsList(@Param("name")String name, @Param("delFlag")int delFlag);
+
+ List<XcxGoodsListVo> selectXcxGoodsList(@Param("record") XcxGoodsListDto xcxGoodsListDto);
}
diff --git a/gc-shop/src/main/java/com/xzx/gc/shop/service/GoodsService.java b/gc-shop/src/main/java/com/xzx/gc/shop/service/GoodsService.java
index 30c6201..58b7316 100644
--- a/gc-shop/src/main/java/com/xzx/gc/shop/service/GoodsService.java
+++ b/gc-shop/src/main/java/com/xzx/gc/shop/service/GoodsService.java
@@ -11,6 +11,7 @@
import com.xzx.gc.common.utils.MqUtil;
import com.xzx.gc.entity.*;
import com.xzx.gc.model.admin.GoodsCategoryModel;
+import com.xzx.gc.model.order.OrderInfoVo;
import com.xzx.gc.shop.dto.*;
import com.xzx.gc.shop.mapper.*;
import com.xzx.gc.shop.vo.*;
@@ -287,4 +288,16 @@
}
return maps;
}
+
+ public List<GoodsCategoryVo> findCategoryWithChildren() {
+ return scoreGoodsCategoryMapper.selectCategoryWithChildren();
+ }
+
+ public PageInfo<XcxGoodsListVo> findGoodsListInPage(XcxGoodsListDto xcxGoodsListDto) {
+
+ PageHelper.startPage(xcxGoodsListDto.getPageNo(), xcxGoodsListDto.getPageSize());
+ List<XcxGoodsListVo> data = scoreGoodsMapper.selectXcxGoodsList(xcxGoodsListDto);
+
+ return new PageInfo<>(data);
+ }
}
diff --git a/gc-shop/src/main/java/com/xzx/gc/shop/vo/GoodsCategoryVo.java b/gc-shop/src/main/java/com/xzx/gc/shop/vo/GoodsCategoryVo.java
new file mode 100644
index 0000000..84faf22
--- /dev/null
+++ b/gc-shop/src/main/java/com/xzx/gc/shop/vo/GoodsCategoryVo.java
@@ -0,0 +1,21 @@
+package com.xzx.gc.shop.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@ApiModel(value = "GoodsCategoryVo", description = "小程序分类接口返回参数类")
+public class GoodsCategoryVo {
+
+ @ApiModelProperty(value = "分类ID")
+ private Long id;
+
+ @ApiModelProperty(value = "分类名称")
+ private String name;
+
+ @ApiModelProperty(value = "子类")
+ private List<GoodsCategoryVo> children;
+}
diff --git a/gc-shop/src/main/java/com/xzx/gc/shop/vo/XcxGoodsDetailSkuVo.java b/gc-shop/src/main/java/com/xzx/gc/shop/vo/XcxGoodsDetailSkuVo.java
new file mode 100644
index 0000000..e955ee8
--- /dev/null
+++ b/gc-shop/src/main/java/com/xzx/gc/shop/vo/XcxGoodsDetailSkuVo.java
@@ -0,0 +1,34 @@
+package com.xzx.gc.shop.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author wzy
+ * @date 2021-06-24
+ **/
+@Data
+@ApiModel(value = "XcxGoodsDetailSkuVo", description = "小程序商品详情规格参数类")
+public class XcxGoodsDetailSkuVo {
+
+ @ApiModelProperty(value = "规格ID")
+ private Long id;
+
+ @ApiModelProperty(value = "规格名称")
+ private String name;
+
+ @ApiModelProperty(value = "现价")
+ private BigDecimal presentPrice;
+
+ @ApiModelProperty(value = "原价")
+ private BigDecimal originalPrice;
+
+ @ApiModelProperty(value = "销量")
+ private Integer quantity;
+
+ @ApiModelProperty(value = "库存")
+ private Integer stock;
+}
diff --git a/gc-shop/src/main/java/com/xzx/gc/shop/vo/XcxGoodsDetailStyleVo.java b/gc-shop/src/main/java/com/xzx/gc/shop/vo/XcxGoodsDetailStyleVo.java
new file mode 100644
index 0000000..acada8e
--- /dev/null
+++ b/gc-shop/src/main/java/com/xzx/gc/shop/vo/XcxGoodsDetailStyleVo.java
@@ -0,0 +1,21 @@
+package com.xzx.gc.shop.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@ApiModel(value = "XcxGoodsDetailStyleVo", description = "小程序商品详情样式参数类")
+public class XcxGoodsDetailStyleVo {
+
+ @ApiModelProperty(value = "样式ID")
+ private Long id;
+
+ @ApiModelProperty(value = "样式名称")
+ private String name;
+
+ @ApiModelProperty(value = "规格")
+ private List<XcxGoodsDetailSkuVo> skus;
+}
diff --git a/gc-shop/src/main/java/com/xzx/gc/shop/vo/XcxGoodsDetailVo.java b/gc-shop/src/main/java/com/xzx/gc/shop/vo/XcxGoodsDetailVo.java
new file mode 100644
index 0000000..6e02c2a
--- /dev/null
+++ b/gc-shop/src/main/java/com/xzx/gc/shop/vo/XcxGoodsDetailVo.java
@@ -0,0 +1,44 @@
+package com.xzx.gc.shop.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author wzy
+ * @date 2021-06-24
+ **/
+@Data
+@ApiModel(value = "XcxGoodsDetailVo", description = "小程序商品详情返回参数类")
+public class XcxGoodsDetailVo {
+
+ @ApiModelProperty(value = "商品名称")
+ private String name;
+
+ @ApiModelProperty(value = "列表缩略图")
+ private String image;
+
+ @ApiModelProperty(value = "现价")
+ private String presentPrice;
+
+ @ApiModelProperty(value = "原价")
+ private String originalPrice;
+
+ @ApiModelProperty(value = "销量")
+ private Integer quantity;
+
+ @ApiModelProperty(value = "库存")
+ private Integer stock;
+
+ @ApiModelProperty(value = "商品详情")
+ private String details;
+
+ @ApiModelProperty(value = "轮播图")
+ private List<String> images;
+
+ @ApiModelProperty(value = "样式")
+ private List<XcxGoodsDetailStyleVo> styles;
+
+}
diff --git a/gc-shop/src/main/java/com/xzx/gc/shop/vo/XcxGoodsListVo.java b/gc-shop/src/main/java/com/xzx/gc/shop/vo/XcxGoodsListVo.java
new file mode 100644
index 0000000..b939f1b
--- /dev/null
+++ b/gc-shop/src/main/java/com/xzx/gc/shop/vo/XcxGoodsListVo.java
@@ -0,0 +1,31 @@
+package com.xzx.gc.shop.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "XcxGoodsListVo", description = "小程序商品列表返回参数类")
+public class XcxGoodsListVo {
+
+ @ApiModelProperty(value = "商品ID")
+ private Long id;
+
+ @ApiModelProperty(value = "商品名称")
+ private String name;
+
+ @ApiModelProperty(value = "图片")
+ private String image;
+
+ @ApiModelProperty(value = "现价")
+ private String presentPrice;
+
+ @ApiModelProperty(value = "原价")
+ private String originalPrice;
+
+ @ApiModelProperty(value = "销量")
+ private Integer quantity;
+
+ @ApiModelProperty(value = "库存")
+ private Integer stock;
+}
diff --git a/gc-shop/src/main/resources/mapper/shop/ScoreGoodsCategoryMapper.xml b/gc-shop/src/main/resources/mapper/shop/ScoreGoodsCategoryMapper.xml
index 8c67f58..100a7f7 100644
--- a/gc-shop/src/main/resources/mapper/shop/ScoreGoodsCategoryMapper.xml
+++ b/gc-shop/src/main/resources/mapper/shop/ScoreGoodsCategoryMapper.xml
@@ -2,6 +2,21 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xzx.gc.shop.mapper.ScoreGoodsCategoryMapper">
+ <resultMap id="goodsCategoryMap" type="com.xzx.gc.shop.vo.GoodsCategoryVo">
+ <id column="id" property="id" />
+ <result column="name" property="name" />
+ <collection property="children" ofType="com.xzx.gc.shop.vo.GoodsCategoryVo">
+ <id column="c_id" property="id" />
+ <result column="c_name" property="name" />
+ </collection>
+ </resultMap>
+
+ <select id="selectCategoryWithChildren" resultMap="goodsCategoryMap">
+ select a.id id, a.name name, b.id c_id, b.name c_name
+ from xzx_score_goods_category a
+ left join xzx_score_goods_category b on a.id=b.parent_id
+ </select>
+
<select id="queryGoodsCategoryList" resultType="com.xzx.gc.shop.vo.QueryGoodsCategoryListVo">
SELECT
*
diff --git a/gc-shop/src/main/resources/mapper/shop/ScoreGoodsMapper.xml b/gc-shop/src/main/resources/mapper/shop/ScoreGoodsMapper.xml
index 793f3a9..776eeb4 100644
--- a/gc-shop/src/main/resources/mapper/shop/ScoreGoodsMapper.xml
+++ b/gc-shop/src/main/resources/mapper/shop/ScoreGoodsMapper.xml
@@ -35,4 +35,22 @@
where id=#{id}
</update>
+ <select id="selectXcxGoodsList" resultType="com.xzx.gc.shop.vo.XcxGoodsListVo">
+ select
+ a.*,
+ sum(b.quantity) quantity,
+ sum(b.stock) stock
+ from xzx_score_goods a
+ inner join xzx_score_goods_sku b on a.id=b.goods_id and b.del_flag=0
+ <where>
+ a.del_flag=0
+ <if test="record.name != null and record.name != ''">
+ and a.name like CONCAT(CONCAT(#{record.name}, "%"), "%")
+ </if>
+ <if test="record.cateId != null and record.cateId != ''">
+ and (a.category_id = #{record.cateId} or a.category in (select id from xzx_score_goods_category where parent_id=#{record.cateId}))
+ </if>
+ </where>
+ order by a.CREATED_TIME desc
+ </select>
</mapper>
--
Gitblit v1.9.1