From 22bef59bbd7a0ca2718abeaa15f5918480483791 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Thu, 24 Dec 2020 15:36:32 +0800
Subject: [PATCH] finish shopping goods detail interface

---
 zq-erp/src/main/java/com/matrix/system/hive/dao/ShoppingGoodsAssembleDao.java         |    3 
 zq-erp/src/main/resources/mybatis/mapper/hive/ShoppingGoodsAssembleDao.xml            |   13 ++
 zq-erp/src/main/resources/mybatis/mapper/hive/MoneyCardAssembleDao.xml                |   20 +++
 zq-erp/src/main/java/com/matrix/system/app/action/ApiOrderAction.java                 |   15 ++
 zq-erp/src/main/java/com/matrix/system/hive/service/imp/ShoppingGoodsServiceImpl.java |   49 +++++++
 zq-erp/src/main/java/com/matrix/system/hive/service/ShoppingGoodsService.java         |    3 
 zq-erp/src/main/java/com/matrix/system/hive/dao/MoneyCardAssembleDao.java             |    6 +
 zq-erp/src/main/java/com/matrix/system/app/vo/ShoppingGoodsDetailVo.java              |  203 +++++++++++++++++++++++++++++++++
 8 files changed, 308 insertions(+), 4 deletions(-)

diff --git a/zq-erp/src/main/java/com/matrix/system/app/action/ApiOrderAction.java b/zq-erp/src/main/java/com/matrix/system/app/action/ApiOrderAction.java
index f81ea0c..f712eeb 100644
--- a/zq-erp/src/main/java/com/matrix/system/app/action/ApiOrderAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/app/action/ApiOrderAction.java
@@ -9,6 +9,7 @@
 import com.matrix.system.app.dto.OrderListDto;
 import com.matrix.system.app.dto.ShoppingGoodsListDto;
 import com.matrix.system.app.vo.OrderDetailVo;
+import com.matrix.system.app.vo.ShoppingGoodsDetailVo;
 import com.matrix.system.app.vo.ShoppingGoodsListVo;
 import com.matrix.system.common.bean.SysUsers;
 import com.matrix.system.hive.bean.ShoppingGoodsCategory;
@@ -70,6 +71,20 @@
         return AjaxResult.buildSuccessInstance(shoppingGoodsService.findShoppingGoodsListForApi(shoppingGoodsListDto), shoppingGoodsService.findShoppingGoodsListTotalForApi(shoppingGoodsListDto));
     }
 
+
+    @ApiOperation(value = "获取商品详情", notes = "获取商品详情")
+    @ApiResponses({
+            @ApiResponse(code = 200, message = "ok", response = ShoppingGoodsDetailVo.class)
+    })
+    @GetMapping(value = "/findGoodsDetailById/{goodsId}")
+    public AjaxResult findGoodsDetailById(@PathVariable("goodsId") Long goodsId) {
+        ShoppingGoodsDetailVo goodsDetail = shoppingGoodsService.findApiShoppingGoodsDetailById(goodsId);
+        AjaxResult ajaxResult = AjaxResult.buildSuccessInstance("获取成功");
+        ajaxResult.putInMap("goods", goodsDetail);
+        return ajaxResult;
+    }
+
+
     @ApiOperation(value = "创建订单", notes = "创建订单")
     @PostMapping(value = "/createOrder")
     public AjaxResult createOrder(@RequestBody @Validated CreateOrderDto createOrderDto) {
diff --git a/zq-erp/src/main/java/com/matrix/system/app/vo/ShoppingGoodsDetailVo.java b/zq-erp/src/main/java/com/matrix/system/app/vo/ShoppingGoodsDetailVo.java
new file mode 100644
index 0000000..d1be69c
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/app/vo/ShoppingGoodsDetailVo.java
@@ -0,0 +1,203 @@
+package com.matrix.system.app.vo;
+
+import com.matrix.system.hive.bean.ShoppingGoodsCategory;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * @author wzy
+ * @date 2020-12-24
+ **/
+@ApiModel(value = "ShoppingGoodsDetailVo", description = "商品详情返回参数类")
+public class ShoppingGoodsDetailVo {
+
+    @ApiModelProperty(value = "商品编号")
+    private String goodsNo;
+
+    @ApiModelProperty(value = "商品名称")
+    private String goodsName;
+
+    @ApiModelProperty(value = "销售价格")
+    private BigDecimal salePrice;
+
+    @ApiModelProperty(value = "销量")
+    private Integer saleCnt;
+
+    @ApiModelProperty(value = "主图")
+    private String img;
+
+    @ApiModelProperty(value = "详情")
+    private String desc;
+
+    @ApiModelProperty(value = "商品类型")
+    private String goodsType;
+
+    @ApiModelProperty(value = "容积")
+    private Integer volume;
+
+    @ApiModelProperty(value = "规格")
+    private String measure;
+
+    @ApiModelProperty(value = "最大销售数量")
+    private Integer maxSaleCnt;
+
+    @ApiModelProperty(value = "每人限购次数")
+    private String limitBuyCnt;
+
+    @ApiModelProperty(value = "充值卡使用范围 是-所有产品 否-部分产品")
+    private String carIsAll;
+
+    @ApiModelProperty(value = "赠送金额")
+    private BigDecimal giftPrice;
+
+    @ApiModelProperty(value = "项目关联产品--配料表、卡项可消费产品")
+    List<ShoppingGoodsDetailVo> assembleProj;
+
+    @ApiModelProperty(value = "套餐项目权益")
+    List<ShoppingGoodsDetailVo> assembleTaocanProj;
+
+    @ApiModelProperty(value = "套餐产品权益")
+    List<ShoppingGoodsDetailVo> assembleTaocanProduct;
+
+    @ApiModelProperty(value = "卡项产品可消费类型")
+    List<ShoppingGoodsCategory> cardCategory;
+
+    public BigDecimal getGiftPrice() {
+        return giftPrice;
+    }
+
+    public void setGiftPrice(BigDecimal giftPrice) {
+        this.giftPrice = giftPrice;
+    }
+
+    public String getCarIsAll() {
+        return carIsAll;
+    }
+
+    public void setCarIsAll(String carIsAll) {
+        this.carIsAll = carIsAll;
+    }
+
+    public String getGoodsNo() {
+        return goodsNo;
+    }
+
+    public void setGoodsNo(String goodsNo) {
+        this.goodsNo = goodsNo;
+    }
+
+    public String getGoodsName() {
+        return goodsName;
+    }
+
+    public void setGoodsName(String goodsName) {
+        this.goodsName = goodsName;
+    }
+
+    public BigDecimal getSalePrice() {
+        return salePrice;
+    }
+
+    public void setSalePrice(BigDecimal salePrice) {
+        this.salePrice = salePrice;
+    }
+
+    public Integer getSaleCnt() {
+        return saleCnt;
+    }
+
+    public void setSaleCnt(Integer saleCnt) {
+        this.saleCnt = saleCnt;
+    }
+
+    public String getImg() {
+        return img;
+    }
+
+    public void setImg(String img) {
+        this.img = img;
+    }
+
+    public String getDesc() {
+        return desc;
+    }
+
+    public void setDesc(String desc) {
+        this.desc = desc;
+    }
+
+    public String getGoodsType() {
+        return goodsType;
+    }
+
+    public void setGoodsType(String goodsType) {
+        this.goodsType = goodsType;
+    }
+
+    public Integer getVolume() {
+        return volume;
+    }
+
+    public void setVolume(Integer volume) {
+        this.volume = volume;
+    }
+
+    public String getMeasure() {
+        return measure;
+    }
+
+    public void setMeasure(String measure) {
+        this.measure = measure;
+    }
+
+    public Integer getMaxSaleCnt() {
+        return maxSaleCnt;
+    }
+
+    public void setMaxSaleCnt(Integer maxSaleCnt) {
+        this.maxSaleCnt = maxSaleCnt;
+    }
+
+    public String getLimitBuyCnt() {
+        return limitBuyCnt;
+    }
+
+    public void setLimitBuyCnt(String limitBuyCnt) {
+        this.limitBuyCnt = limitBuyCnt;
+    }
+
+    public List<ShoppingGoodsDetailVo> getAssembleProj() {
+        return assembleProj;
+    }
+
+    public void setAssembleProj(List<ShoppingGoodsDetailVo> assembleProj) {
+        this.assembleProj = assembleProj;
+    }
+
+    public List<ShoppingGoodsDetailVo> getAssembleTaocanProj() {
+        return assembleTaocanProj;
+    }
+
+    public void setAssembleTaocanProj(List<ShoppingGoodsDetailVo> assembleTaocanProj) {
+        this.assembleTaocanProj = assembleTaocanProj;
+    }
+
+    public List<ShoppingGoodsDetailVo> getAssembleTaocanProduct() {
+        return assembleTaocanProduct;
+    }
+
+    public void setAssembleTaocanProduct(List<ShoppingGoodsDetailVo> assembleTaocanProduct) {
+        this.assembleTaocanProduct = assembleTaocanProduct;
+    }
+
+    public List<ShoppingGoodsCategory> getCardCategory() {
+        return cardCategory;
+    }
+
+    public void setCardCategory(List<ShoppingGoodsCategory> cardCategory) {
+        this.cardCategory = cardCategory;
+    }
+}
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/dao/MoneyCardAssembleDao.java b/zq-erp/src/main/java/com/matrix/system/hive/dao/MoneyCardAssembleDao.java
index 516c0ca..1e9ccb6 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/dao/MoneyCardAssembleDao.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/dao/MoneyCardAssembleDao.java
@@ -3,7 +3,9 @@
 import java.util.List;
 
 import com.matrix.core.pojo.PaginationVO;
+import com.matrix.system.app.vo.ShoppingGoodsDetailVo;
 import com.matrix.system.hive.bean.MoneyCardAssemble;
+import com.matrix.system.hive.bean.ShoppingGoodsCategory;
 import org.apache.ibatis.annotations.Param;
 
 
@@ -37,4 +39,8 @@
 	public void batchInsert(@Param("list") List<MoneyCardAssemble> newAssemble);
 
     public    List<MoneyCardAssemble> selectByCardId(Long cardId);
+
+    List<ShoppingGoodsDetailVo> selectCardRelationGoods(@Param("cardId") Long cardId);
+
+    List<ShoppingGoodsCategory> selectCardRelationCategory(@Param("cardId") Long cardId);
 }
\ No newline at end of file
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/dao/ShoppingGoodsAssembleDao.java b/zq-erp/src/main/java/com/matrix/system/hive/dao/ShoppingGoodsAssembleDao.java
index ac6776e..3abe996 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/dao/ShoppingGoodsAssembleDao.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/dao/ShoppingGoodsAssembleDao.java
@@ -3,6 +3,7 @@
 import java.util.List;
 
 import com.matrix.core.pojo.PaginationVO;
+import com.matrix.system.app.vo.ShoppingGoodsDetailVo;
 import com.matrix.system.hive.bean.ShoppingGoodsAssemble;
 import org.apache.ibatis.annotations.Param;
 
@@ -63,4 +64,6 @@
 	public int deleteByGoodsId(@Param("shoppingGoodsId") Long shoppingGoodsId);
 
 	public void batchInsert(@Param("list") List<ShoppingGoodsAssemble> list);
+
+	List<ShoppingGoodsDetailVo> selectGoodsRelationGoodsList(@Param("goodsId") Long id, @Param("goodsType") String goodsType);
 }
\ No newline at end of file
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/ShoppingGoodsService.java b/zq-erp/src/main/java/com/matrix/system/hive/service/ShoppingGoodsService.java
index 1b7a8a9..366dbf4 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/service/ShoppingGoodsService.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/service/ShoppingGoodsService.java
@@ -2,6 +2,7 @@
 
 import com.matrix.core.pojo.PaginationVO;
 import com.matrix.system.app.dto.ShoppingGoodsListDto;
+import com.matrix.system.app.vo.ShoppingGoodsDetailVo;
 import com.matrix.system.app.vo.ShoppingGoodsListVo;
 import com.matrix.system.hive.bean.ShoppingGoods;
 import com.matrix.system.hive.plugin.util.BaseServices;
@@ -107,4 +108,6 @@
 	List<ShoppingGoodsListVo> findShoppingGoodsListForApi(ShoppingGoodsListDto shoppingGoodsListDto);
 
 	int findShoppingGoodsListTotalForApi(ShoppingGoodsListDto shoppingGoodsListDto);
+
+	ShoppingGoodsDetailVo findApiShoppingGoodsDetailById(Long id);
 }
\ No newline at end of file
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/ShoppingGoodsServiceImpl.java b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/ShoppingGoodsServiceImpl.java
index 161010c..80af2ef 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/ShoppingGoodsServiceImpl.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/ShoppingGoodsServiceImpl.java
@@ -7,16 +7,14 @@
 import com.matrix.core.tools.StringUtils;
 import com.matrix.core.tools.WebUtil;
 import com.matrix.system.app.dto.ShoppingGoodsListDto;
+import com.matrix.system.app.vo.ShoppingGoodsDetailVo;
 import com.matrix.system.app.vo.ShoppingGoodsListVo;
 import com.matrix.system.common.bean.SysUsers;
 import com.matrix.system.common.dao.UtilDao;
 import com.matrix.system.common.tools.ServiceUtil;
 import com.matrix.system.constance.Dictionary;
 import com.matrix.system.constance.TableMapping;
-import com.matrix.system.hive.bean.MoneyCardAssemble;
-import com.matrix.system.hive.bean.ShoppingGoods;
-import com.matrix.system.hive.bean.ShoppingGoodsAssemble;
-import com.matrix.system.hive.bean.SysShopInfo;
+import com.matrix.system.hive.bean.*;
 import com.matrix.system.hive.dao.MoneyCardAssembleDao;
 import com.matrix.system.hive.dao.ShoppingGoodsAssembleDao;
 import com.matrix.system.hive.dao.ShoppingGoodsDao;
@@ -30,6 +28,7 @@
 
 import javax.validation.constraints.NotNull;
 import java.awt.event.WindowStateListener;
+import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.util.ArrayList;
 import java.util.Date;
@@ -487,6 +486,48 @@
     public int findShoppingGoodsListTotalForApi(ShoppingGoodsListDto shoppingGoodsListDto) {
         SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
         shoppingGoodsListDto.setShopId(user.getShopId());
+
         return shoppingGoodsDao.selectShopppingGoodsAipTotal(shoppingGoodsListDto);
     }
+
+    @Override
+    public ShoppingGoodsDetailVo findApiShoppingGoodsDetailById(Long id) {
+        ShoppingGoods shoppingGoods = shoppingGoodsDao.selectById(id);
+        ShoppingGoodsDetailVo goodsDetailVo = goodsToGoodsDetailVo(shoppingGoods);
+
+        if (ShoppingGoods.SHOPPING_GOODS_TYPE_TC.equals(shoppingGoods.getGoodType())) {
+            List<ShoppingGoodsDetailVo> products = shoppingGoodsAssembleDao.selectGoodsRelationGoodsList(shoppingGoods.getId(), ShoppingGoods.SHOPPING_GOODS_TYPE_JJCP);
+            List<ShoppingGoodsDetailVo> proj = shoppingGoodsAssembleDao.selectGoodsRelationGoodsList(shoppingGoods.getId(), ShoppingGoods.SHOPPING_GOODS_TYPE_XM);
+
+            goodsDetailVo.setAssembleTaocanProduct(products);
+            goodsDetailVo.setAssembleTaocanProj(proj);
+        } else if (ShoppingGoods.SHOPPING_GOODS_TYPE_XM.equals(shoppingGoods.getGoodType())) {
+            List<ShoppingGoodsDetailVo> products = shoppingGoodsAssembleDao.selectGoodsRelationGoodsList(shoppingGoods.getId(), null);
+            goodsDetailVo.setAssembleProj(products);
+        } else if (ShoppingGoods.SHOPPING_GOODS_TYPE_CZK.equals(shoppingGoods.getGoodType())) {
+            List<ShoppingGoodsDetailVo> cardGoods = moneyCardAssembleDao.selectCardRelationGoods(shoppingGoods.getId());
+            List<ShoppingGoodsCategory> cardCategory = moneyCardAssembleDao.selectCardRelationCategory(shoppingGoods.getId());
+
+            goodsDetailVo.setAssembleProj(cardGoods);
+            goodsDetailVo.setCardCategory(cardCategory);
+        }
+        return goodsDetailVo;
+    }
+
+    private ShoppingGoodsDetailVo goodsToGoodsDetailVo(ShoppingGoods shoppingGoods) {
+        ShoppingGoodsDetailVo goodsDetailVo = new ShoppingGoodsDetailVo();
+        goodsDetailVo.setImg(shoppingGoods.getImg());
+        goodsDetailVo.setGoodsName(shoppingGoods.getName());
+        goodsDetailVo.setGoodsNo(shoppingGoods.getGoodsNo());
+        goodsDetailVo.setGoodsType(shoppingGoods.getGoodType());
+        goodsDetailVo.setDesc(shoppingGoods.getDescription());
+        goodsDetailVo.setMaxSaleCnt(shoppingGoods.getCarMaxSaleCount());
+        goodsDetailVo.setLimitBuyCnt(shoppingGoods.getIsOnce());
+        goodsDetailVo.setMeasure(shoppingGoods.getMeasure());
+        goodsDetailVo.setVolume(shoppingGoods.getVolume());
+        goodsDetailVo.setSalePrice(BigDecimal.valueOf(shoppingGoods.getSealPice()));
+        goodsDetailVo.setSaleCnt(shoppingGoods.getRealSealCount());
+        goodsDetailVo.setGiftPrice(BigDecimal.valueOf(shoppingGoods.getReferencePice() == null ? 0 : shoppingGoods.getReferencePice()));
+        return goodsDetailVo;
+    }
 }
diff --git a/zq-erp/src/main/resources/mybatis/mapper/hive/MoneyCardAssembleDao.xml b/zq-erp/src/main/resources/mybatis/mapper/hive/MoneyCardAssembleDao.xml
index 213bd3a..62d7d53 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/hive/MoneyCardAssembleDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/hive/MoneyCardAssembleDao.xml
@@ -224,4 +224,24 @@
 			card_id
 		from money_card_assemble where card_id=#{cardId}
 	</select>
+
+	<select id="selectCardRelationGoods" resultType="com.matrix.system.app.vo.ShoppingGoodsDetailVo">
+		select
+		    b.name goodsName,
+            b.measure measure,
+            b.volume volume
+		from money_card_assemble a
+		inner join shopping_goods b on a.goods_id=b.id
+		where a.card_id=#{cardId}
+	</select>
+
+	<select id="selectCardRelationCategory" resultType="com.matrix.system.hive.bean.ShoppingGoodsCategory">
+		select
+			a.id id,
+			a.name name,
+			a.parent_id parentId
+		from shopping_goods_category a
+		inner join money_card_assemble b on a.id=b.cate_id
+		where b.card_id=#{cardId};
+	</select>
 </mapper>
\ No newline at end of file
diff --git a/zq-erp/src/main/resources/mybatis/mapper/hive/ShoppingGoodsAssembleDao.xml b/zq-erp/src/main/resources/mybatis/mapper/hive/ShoppingGoodsAssembleDao.xml
index 9597a28..7a1c514 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/hive/ShoppingGoodsAssembleDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/hive/ShoppingGoodsAssembleDao.xml
@@ -432,5 +432,18 @@
         WHERE shopping_goods_id = #{shoppingGoodsId}
     </update>
 
+    <select id="selectGoodsRelationGoodsList" resultType="com.matrix.system.app.vo.ShoppingGoodsDetailVo">
+        select
+            b.name goodsName,
+            b.measure measure,
+            b.volume volume
+        from shopping_goods_assemble a
+        inner join shopping_goods b on a.assembleGoodId=b.id
+        where a.shopping_goods_id=#{goodsId}
+        <if test="goodsType!= null and goodsType != ''">
+            and b.good_type=#{goodsType}
+        </if>
+    </select>
+
 
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.1