From 1002cb2f9a3e2a2acea323e2047de148f43e2c6e Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Fri, 17 Sep 2021 16:23:34 +0800
Subject: [PATCH] add findMallGoodsDetailsById

---
 src/main/java/cc/mrbird/febs/mall/entity/MallGoodsStyle.java                |    6 +
 src/main/java/cc/mrbird/febs/mall/entity/MallGoods.java                     |    9 +
 src/main/java/cc/mrbird/febs/mall/vo/GoodsDetailsSkuVo.java                 |   37 ++++++
 src/main/java/cc/mrbird/febs/mall/conversion/MallGoodsStyleConversion.java  |   21 +++
 src/main/resources/mapper/modules/MallGoodsImagesMapper.xml                 |    8 +
 src/main/java/cc/mrbird/febs/mall/conversion/MallGoodsConversion.java       |   21 +++
 src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsImagesMapper.java         |    5 
 src/main/java/cc/mrbird/febs/mall/service/IApiMallGoodsService.java         |    4 
 pom.xml                                                                     |   29 ++++
 src/main/java/cc/mrbird/febs/mall/vo/MallGoodsDetailsVo.java                |   46 +++++++
 src/main/resources/mapper/modules/MallGoodsMapper.xml                       |   51 ++++++++
 src/main/java/cc/mrbird/febs/mall/conversion/MallGoodsSkuConversion.java    |   21 +++
 src/main/java/cc/mrbird/febs/mall/controller/ApiMallGoodsController.java    |   17 ++
 src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsMapper.java               |    2 
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallGoodsServiceImpl.java |   19 +++
 src/main/java/cc/mrbird/febs/mall/vo/GoodsDetailsStyleVo.java               |   25 ++++
 16 files changed, 316 insertions(+), 5 deletions(-)

diff --git a/pom.xml b/pom.xml
index 3ca16cf..12801df 100644
--- a/pom.xml
+++ b/pom.xml
@@ -22,6 +22,7 @@
         <swagger.ui>2.9.2</swagger.ui>
         <tomcat.version>9.0.31</tomcat.version>
         <hutool.version>5.3.1</hutool.version>
+        <mapstruct.version>1.3.1.Final</mapstruct.version>
     </properties>
 
     <dependencies>
@@ -254,6 +255,12 @@
             <version>4.3.5</version>
         </dependency>
         <!-- submail邮件 end -->
+
+        <dependency>
+            <groupId>org.mapstruct</groupId>
+            <artifactId>mapstruct</artifactId>
+            <version>${mapstruct.version}</version>
+        </dependency>
     </dependencies>
 
     <build>
@@ -262,6 +269,28 @@
                 <groupId>org.springframework.boot</groupId>
                 <artifactId>spring-boot-maven-plugin</artifactId>
             </plugin>
+
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <version>3.5.1</version>
+                <configuration>
+                    <source>${java.version}</source>
+                    <target>${java.version}</target>
+                    <annotationProcessorPaths>
+                        <path>
+                            <groupId>org.mapstruct</groupId>
+                            <artifactId>mapstruct-processor</artifactId>
+                            <version>${mapstruct.version}</version>
+                        </path>
+                        <path>
+                            <groupId>org.projectlombok</groupId>
+                            <artifactId>lombok</artifactId>
+                            <version>${lombok.version}</version>
+                        </path>
+                    </annotationProcessorPaths>
+                </configuration>
+            </plugin>
         </plugins>
     </build>
 </project>
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallGoodsController.java b/src/main/java/cc/mrbird/febs/mall/controller/ApiMallGoodsController.java
index 2f4e723..860e466 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallGoodsController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/ApiMallGoodsController.java
@@ -3,6 +3,7 @@
 import cc.mrbird.febs.common.entity.FebsResponse;
 import cc.mrbird.febs.mall.dto.MallGoodsQueryDto;
 import cc.mrbird.febs.mall.service.IApiMallGoodsService;
+import cc.mrbird.febs.mall.vo.MallGoodsDetailsVo;
 import cc.mrbird.febs.mall.vo.MallGoodsListVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -11,10 +12,7 @@
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 /**
  * @author wzy
@@ -29,7 +27,7 @@
 public class ApiMallGoodsController {
     private final IApiMallGoodsService mallGoodsService;
 
-    @ApiOperation(value = "findMallGoodsList", notes = "获取商城商品列表")
+    @ApiOperation(value = "获取商城商品列表", notes = "获取商城商品列表")
     @ApiResponses({
             @ApiResponse(code = 200, message = "success", response = MallGoodsListVo.class)
     })
@@ -38,4 +36,13 @@
         return new FebsResponse().success().data(mallGoodsService.findMallGoodsListInPage(queryDto));
     }
 
+    @ApiOperation(value = "获取商品详情", notes = "获取商品详情")
+    @ApiResponses({
+            @ApiResponse(code = 200, message = "success", response = MallGoodsDetailsVo.class)
+    })
+    @GetMapping(value = "/findMallGoodsDetailsById/{id}")
+    public FebsResponse findMallGoodsDetailsById(@PathVariable("id") Long id) {
+        return new FebsResponse().success().data(mallGoodsService.findMallGoodsDetailsById(id));
+    }
+
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/conversion/MallGoodsConversion.java b/src/main/java/cc/mrbird/febs/mall/conversion/MallGoodsConversion.java
new file mode 100644
index 0000000..407f677
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/conversion/MallGoodsConversion.java
@@ -0,0 +1,21 @@
+package cc.mrbird.febs.mall.conversion;
+
+import cc.mrbird.febs.mall.entity.MallGoods;
+import cc.mrbird.febs.mall.vo.MallGoodsDetailsVo;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+import java.util.List;
+
+/**
+ * @author wzy
+ * @date 2021-09-17
+ **/
+@Mapper
+public abstract class MallGoodsConversion {
+    public static final MallGoodsConversion INSTANCE = Mappers.getMapper(MallGoodsConversion.class);
+
+    public abstract MallGoodsDetailsVo entityToDetailsVo(MallGoods mallGoods);
+
+    public abstract List<MallGoodsDetailsVo> entityListToDetailsVoList(List<MallGoods> mallGoods);
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/conversion/MallGoodsSkuConversion.java b/src/main/java/cc/mrbird/febs/mall/conversion/MallGoodsSkuConversion.java
new file mode 100644
index 0000000..d8a0c76
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/conversion/MallGoodsSkuConversion.java
@@ -0,0 +1,21 @@
+package cc.mrbird.febs.mall.conversion;
+
+import cc.mrbird.febs.mall.entity.MallGoodsSku;
+import cc.mrbird.febs.mall.vo.GoodsDetailsSkuVo;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+import java.util.List;
+
+/**
+ * @author wzy
+ * @date 2021-09-17
+ **/
+@Mapper
+public abstract class MallGoodsSkuConversion {
+    public static final MallGoodsSkuConversion INSTANCE = Mappers.getMapper(MallGoodsSkuConversion.class);
+
+    public abstract GoodsDetailsSkuVo entityToVo(MallGoodsSku sku);
+
+    public abstract List<GoodsDetailsSkuVo> entityListToSkuVoList(List<MallGoodsSku> skus);
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/conversion/MallGoodsStyleConversion.java b/src/main/java/cc/mrbird/febs/mall/conversion/MallGoodsStyleConversion.java
new file mode 100644
index 0000000..55de7f5
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/conversion/MallGoodsStyleConversion.java
@@ -0,0 +1,21 @@
+package cc.mrbird.febs.mall.conversion;
+
+import cc.mrbird.febs.mall.entity.MallGoodsStyle;
+import cc.mrbird.febs.mall.vo.GoodsDetailsStyleVo;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+import java.util.List;
+
+/**
+ * @author wzy
+ * @date 2021-09-17
+ **/
+@Mapper
+public abstract class MallGoodsStyleConversion {
+    public static final MallGoodsStyleConversion INSTANCE = Mappers.getMapper(MallGoodsStyleConversion.class);
+
+    public abstract GoodsDetailsStyleVo entityToStyleVo(MallGoodsStyle goodsStyle);
+
+    public abstract List<GoodsDetailsStyleVo> entityListToStyleVoList(List<MallGoodsStyle> goodsStyleList);
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/entity/MallGoods.java b/src/main/java/cc/mrbird/febs/mall/entity/MallGoods.java
index 25ca13b..df5c4df 100644
--- a/src/main/java/cc/mrbird/febs/mall/entity/MallGoods.java
+++ b/src/main/java/cc/mrbird/febs/mall/entity/MallGoods.java
@@ -1,8 +1,11 @@
 package cc.mrbird.febs.mall.entity;
 
 import cc.mrbird.febs.common.entity.BaseEntity;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
+
+import java.util.List;
 
 /**
  * @author wzy
@@ -33,4 +36,10 @@
     private Long categoryId;
 
     private Integer isHot;
+
+    @TableField(exist = false)
+    private List<MallGoodsStyle> styles;
+
+    @TableField(exist = false)
+    private List<String> images;
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/entity/MallGoodsStyle.java b/src/main/java/cc/mrbird/febs/mall/entity/MallGoodsStyle.java
index f07408e..c3d9f23 100644
--- a/src/main/java/cc/mrbird/febs/mall/entity/MallGoodsStyle.java
+++ b/src/main/java/cc/mrbird/febs/mall/entity/MallGoodsStyle.java
@@ -1,8 +1,11 @@
 package cc.mrbird.febs.mall.entity;
 
 import cc.mrbird.febs.common.entity.BaseEntity;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
+
+import java.util.List;
 
 /**
  * @author wzy
@@ -15,4 +18,7 @@
     private Long goodsId;
 
     private String name;
+
+    @TableField(exist = false)
+    private List<MallGoodsSku> skus;
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsImagesMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsImagesMapper.java
index 37fc3b1..5732c2f 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsImagesMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsImagesMapper.java
@@ -1,10 +1,15 @@
 package cc.mrbird.febs.mall.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * @author wzy
  * @date 2021-09-17
  **/
 public interface MallGoodsImagesMapper extends BaseMapper<MallGoodsMapper> {
+
+    List<String> selectGoodsImagesByGoodsId(@Param("goodsId") Long goodsId);
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsMapper.java
index 275006c..30e3ed0 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsMapper.java
@@ -12,4 +12,6 @@
 public interface MallGoodsMapper extends BaseMapper<MallGoods> {
 
     IPage<MallGoodsListVo> selectMallGoodsListQueryInPage(@Param("record") MallGoodsQueryDto queryDto, Page<MallGoodsListVo> page);
+
+    MallGoods selectGoodsDetailById(@Param("id") Long id);
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/IApiMallGoodsService.java b/src/main/java/cc/mrbird/febs/mall/service/IApiMallGoodsService.java
index 9c0a7a8..58ea980 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/IApiMallGoodsService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/IApiMallGoodsService.java
@@ -2,11 +2,15 @@
 
 import cc.mrbird.febs.mall.dto.MallGoodsQueryDto;
 import cc.mrbird.febs.mall.entity.MallGoods;
+import cc.mrbird.febs.mall.vo.MallGoodsDetailsVo;
 import cc.mrbird.febs.mall.vo.MallGoodsListVo;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
+import org.apache.ibatis.annotations.Param;
 
 public interface IApiMallGoodsService extends IService<MallGoods> {
 
     IPage<MallGoodsListVo> findMallGoodsListInPage(MallGoodsQueryDto queryDto);
+
+    MallGoodsDetailsVo findMallGoodsDetailsById(@Param("id") Long id);
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallGoodsServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallGoodsServiceImpl.java
index 6a9f5a0..7471bf9 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallGoodsServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallGoodsServiceImpl.java
@@ -1,9 +1,14 @@
 package cc.mrbird.febs.mall.service.impl;
 
+import cc.mrbird.febs.common.exception.FebsException;
+import cc.mrbird.febs.mall.conversion.MallGoodsConversion;
+import cc.mrbird.febs.mall.conversion.MallMemberConversion;
 import cc.mrbird.febs.mall.dto.MallGoodsQueryDto;
 import cc.mrbird.febs.mall.entity.MallGoods;
+import cc.mrbird.febs.mall.mapper.MallGoodsImagesMapper;
 import cc.mrbird.febs.mall.mapper.MallGoodsMapper;
 import cc.mrbird.febs.mall.service.IApiMallGoodsService;
+import cc.mrbird.febs.mall.vo.MallGoodsDetailsVo;
 import cc.mrbird.febs.mall.vo.MallGoodsListVo;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -23,9 +28,23 @@
 @RequiredArgsConstructor
 public class ApiMallGoodsServiceImpl extends ServiceImpl<MallGoodsMapper, MallGoods> implements IApiMallGoodsService {
 
+    private final MallGoodsImagesMapper goodsImagesMapper;
+
     @Override
     public IPage<MallGoodsListVo> findMallGoodsListInPage(MallGoodsQueryDto queryDto) {
         Page<MallGoodsListVo> page = new Page<>(queryDto.getPageNow(), queryDto.getPageSize());
         return this.baseMapper.selectMallGoodsListQueryInPage(queryDto, page);
     }
+
+    @Override
+    public MallGoodsDetailsVo findMallGoodsDetailsById(Long id) {
+        MallGoods mallGoods = this.baseMapper.selectGoodsDetailById(id);
+        if (mallGoods == null) {
+            throw new FebsException("商品不存在");
+        }
+        List<String> images = goodsImagesMapper.selectGoodsImagesByGoodsId(mallGoods.getId());
+        MallGoodsDetailsVo mallGoodsDetailsVo = MallGoodsConversion.INSTANCE.entityToDetailsVo(mallGoods);
+        mallGoodsDetailsVo.setImages(images);
+        return mallGoodsDetailsVo;
+    }
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/GoodsDetailsSkuVo.java b/src/main/java/cc/mrbird/febs/mall/vo/GoodsDetailsSkuVo.java
new file mode 100644
index 0000000..4479aa1
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/vo/GoodsDetailsSkuVo.java
@@ -0,0 +1,37 @@
+package cc.mrbird.febs.mall.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author wzy
+ * @date 2021-09-17
+ **/
+@Data
+@ApiModel(value = "GoodsDetailsSkuVo", description = "商品详情sku返回参数类")
+public class GoodsDetailsSkuVo {
+
+    @ApiModelProperty(value = "id")
+    private Long id;
+
+    @ApiModelProperty(value = "sku名称")
+    private String skuName;
+
+    @ApiModelProperty(value = "sku图片")
+    private String skuImage;
+
+    @ApiModelProperty(value = "库存")
+    private Integer stock;
+
+    @ApiModelProperty(value = "销量")
+    private Integer skuVolume;
+
+    @ApiModelProperty(value = "原价")
+    private BigDecimal originalPrice;
+
+    @ApiModelProperty(value = "现价")
+    private BigDecimal presentPrice;
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/GoodsDetailsStyleVo.java b/src/main/java/cc/mrbird/febs/mall/vo/GoodsDetailsStyleVo.java
new file mode 100644
index 0000000..05550e8
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/vo/GoodsDetailsStyleVo.java
@@ -0,0 +1,25 @@
+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-17
+ **/
+@Data
+@ApiModel(value = "GoodsDetailsStyleVo", description = "商品详情样式返回参数类")
+public class GoodsDetailsStyleVo {
+
+    @ApiModelProperty(value = "id")
+    private String id;
+
+    @ApiModelProperty(value = "样式名称")
+    private String name;
+
+    @ApiModelProperty(value = "sku")
+    private List<GoodsDetailsSkuVo> skus;
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/MallGoodsDetailsVo.java b/src/main/java/cc/mrbird/febs/mall/vo/MallGoodsDetailsVo.java
new file mode 100644
index 0000000..f94ff77
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/vo/MallGoodsDetailsVo.java
@@ -0,0 +1,46 @@
+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-17
+ **/
+@Data
+@ApiModel(value = "MallGoodsDetailsVo", description = "商品详情返回参数类")
+public class MallGoodsDetailsVo {
+
+    @ApiModelProperty(value = "id")
+    private Long id;
+
+    @ApiModelProperty(value = "商品编号")
+    private String goodsNo;
+
+    @ApiModelProperty(value = "商品名称")
+    private String goodsName;
+
+    @ApiModelProperty(value = "商品介绍")
+    private String goodsIntrodution;
+
+    @ApiModelProperty(value = "商品详情")
+    private String goodsDetails;
+
+    @ApiModelProperty(value = "原价")
+    private String originalPrice;
+
+    @ApiModelProperty(value = "现价")
+    private String presentPrice;
+
+    @ApiModelProperty(value = "是否上架 1-上架 2-下架")
+    private Integer isSale;
+
+    @ApiModelProperty(value = "轮播图")
+    private List<String> images;
+
+    @ApiModelProperty(value = "样式")
+    private List<GoodsDetailsStyleVo> styles;
+}
diff --git a/src/main/resources/mapper/modules/MallGoodsImagesMapper.xml b/src/main/resources/mapper/modules/MallGoodsImagesMapper.xml
new file mode 100644
index 0000000..6b3049e
--- /dev/null
+++ b/src/main/resources/mapper/modules/MallGoodsImagesMapper.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cc.mrbird.febs.mall.mapper.MallGoodsImagesMapper">
+
+    <select id="selectGoodsImagesByGoodsId" resultType="java.lang.String">
+        select image_url from mall_goods_images where goods_id=#{goodsId}
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/modules/MallGoodsMapper.xml b/src/main/resources/mapper/modules/MallGoodsMapper.xml
index 85a4ea2..4b7b35d 100644
--- a/src/main/resources/mapper/modules/MallGoodsMapper.xml
+++ b/src/main/resources/mapper/modules/MallGoodsMapper.xml
@@ -2,6 +2,57 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="cc.mrbird.febs.mall.mapper.MallGoodsMapper">
 
+    <resultMap id="MallGoodsMap" type="cc.mrbird.febs.mall.entity.MallGoods">
+        <id property="id" column="id" />
+        <result property="goodsNo" column="goods_no" />
+        <result property="goodsName" column="goods_name" />
+        <result property="goodsIntrodution" column="goods_introdution" />
+        <result property="unit" column="unit" />
+        <result property="thumb" column="thumb" />
+        <result property="goodsDetails" column="goods_details" />
+        <result property="isSale" column="is_sale" />
+        <result property="originalPrice" column="original_price" />
+        <result property="presentPrice" column="present_price" />
+        <result property="categoryId" column="category_id" />
+        <collection property="styles" ofType="cc.mrbird.febs.mall.entity.MallGoodsStyle">
+            <id property="id" column="style_id" />
+            <result property="name" column="style_name" />
+            <result property="goodsId" column="style_goods_id" />
+            <collection property="skus" ofType="cc.mrbird.febs.mall.entity.MallGoodsSku">
+                <id property="id" column="sku_id" />
+                <result property="skuName" column="sku_name" />
+                <result property="skuImage" column="sku_image" />
+                <result property="stock" column="stock" />
+                <result property="skuVolume" column="sku_volume" />
+                <result property="originalPrice" column="sku_original_price" />
+                <result property="presentPrice" column="sku_present_price" />
+                <result property="styleId" column="sku_style_id"/>
+                <result property="goodsId" column="sku_goods_id" />
+            </collection>
+        </collection>
+    </resultMap>
+
+    <select id="selectGoodsDetailById" resultMap="MallGoodsMap">
+        select
+            a.*,
+            b.id style_id,
+            b.name style_name,
+            b.goods_id style_goods_id,
+            c.id sku_id,
+            c.sku_name,
+            c.sku_image,
+            c.stock,
+            c.sku_volume,
+            c.original_price sku_original_price,
+            c.present_price sku_present_price,
+            c.style_id sku_style_id,
+            c.goods_id sku_goods_id
+        from mall_goods a
+          inner join mall_goods_style b on a.id = b.goods_id
+          inner join mall_goods_sku c on b.id=c.style_id
+        where a.id=#{id}
+    </select>
+
     <select id="selectMallGoodsListQueryInPage" resultType="cc.mrbird.febs.mall.vo.MallGoodsListVo">
         select
             a.id,

--
Gitblit v1.9.1