Explorar o código

优化添加查询商品代码

java110 %!s(int64=6) %!d(string=hai) anos
pai
achega
3e04833f48
Modificáronse 22 ficheiros con 1061 adicións e 51 borrados
  1. 89 34
      java110-bean/src/main/java/com/java110/dto/product/ProductDto.java
  2. 69 0
      java110-bean/src/main/java/com/java110/dto/productDetail/ProductDetailDto.java
  3. 46 0
      java110-bean/src/main/java/com/java110/po/productDetail/ProductDetailPo.java
  4. 97 0
      java110-db/src/main/resources/mapper/goods/ProductDetailServiceDaoImplMapper.xml
  5. 7 8
      java110-generator/src/main/resources/newBack/template_1.json
  6. 33 0
      java110-generator/src/main/resources/newBack/template_productAttr.json
  7. 53 0
      java110-interface/src/main/java/com/java110/intf/goods/IProductDetailInnerServiceSMO.java
  8. 117 6
      service-goods/src/main/java/com/java110/goods/api/ProductApi.java
  9. 3 1
      service-goods/src/main/java/com/java110/goods/bmo/product/ISaveProductBMO.java
  10. 74 1
      service-goods/src/main/java/com/java110/goods/bmo/product/impl/GetProductBMOImpl.java
  11. 14 1
      service-goods/src/main/java/com/java110/goods/bmo/product/impl/SaveProductBMOImpl.java
  12. 17 0
      service-goods/src/main/java/com/java110/goods/bmo/productDetail/IDeleteProductDetailBMO.java
  13. 16 0
      service-goods/src/main/java/com/java110/goods/bmo/productDetail/IGetProductDetailBMO.java
  14. 17 0
      service-goods/src/main/java/com/java110/goods/bmo/productDetail/ISaveProductDetailBMO.java
  15. 17 0
      service-goods/src/main/java/com/java110/goods/bmo/productDetail/IUpdateProductDetailBMO.java
  16. 34 0
      service-goods/src/main/java/com/java110/goods/bmo/productDetail/impl/DeleteProductDetailBMOImpl.java
  17. 44 0
      service-goods/src/main/java/com/java110/goods/bmo/productDetail/impl/GetProductDetailBMOImpl.java
  18. 38 0
      service-goods/src/main/java/com/java110/goods/bmo/productDetail/impl/SaveProductDetailBMOImpl.java
  19. 34 0
      service-goods/src/main/java/com/java110/goods/bmo/productDetail/impl/UpdateProductDetailBMOImpl.java
  20. 61 0
      service-goods/src/main/java/com/java110/goods/dao/IProductDetailServiceDao.java
  21. 98 0
      service-goods/src/main/java/com/java110/goods/dao/impl/ProductDetailServiceDaoImpl.java
  22. 83 0
      service-goods/src/main/java/com/java110/goods/smo/impl/ProductDetailInnerServiceSMOImpl.java

+ 89 - 34
java110-bean/src/main/java/com/java110/dto/product/ProductDto.java

@@ -1,8 +1,10 @@
 package com.java110.dto.product;
 
 import com.java110.dto.PageDto;
+
 import java.io.Serializable;
 import java.util.Date;
+import java.util.List;
 
 /**
  * @ClassName FloorDto
@@ -15,17 +17,23 @@ import java.util.Date;
 public class ProductDto extends PageDto implements Serializable {
 
     private String productId;
-private String unitName;
-private String isPostage;
-private String sort;
-private String storeId;
-private String barCode;
-private String postage;
-private String prodName;
-private String state;
-private String keyword;
-private String prodDesc;
-private String categoryId;
+    private String unitName;
+    private String isPostage;
+    private String sort;
+    private String storeId;
+    private String barCode;
+    private String postage;
+    private String prodName;
+    private String state;
+    private String keyword;
+    private String prodDesc;
+    private String categoryId;
+
+    private String content;
+
+    private String coverPhoto;
+
+    private List<String> carouselFigurePhotos;
 
 
     private Date createTime;
@@ -36,73 +44,96 @@ private String categoryId;
     public String getProductId() {
         return productId;
     }
-public void setProductId(String productId) {
+
+    public void setProductId(String productId) {
         this.productId = productId;
     }
-public String getUnitName() {
+
+    public String getUnitName() {
         return unitName;
     }
-public void setUnitName(String unitName) {
+
+    public void setUnitName(String unitName) {
         this.unitName = unitName;
     }
-public String getIsPostage() {
+
+    public String getIsPostage() {
         return isPostage;
     }
-public void setIsPostage(String isPostage) {
+
+    public void setIsPostage(String isPostage) {
         this.isPostage = isPostage;
     }
-public String getSort() {
+
+    public String getSort() {
         return sort;
     }
-public void setSort(String sort) {
+
+    public void setSort(String sort) {
         this.sort = sort;
     }
-public String getStoreId() {
+
+    public String getStoreId() {
         return storeId;
     }
-public void setStoreId(String storeId) {
+
+    public void setStoreId(String storeId) {
         this.storeId = storeId;
     }
-public String getBarCode() {
+
+    public String getBarCode() {
         return barCode;
     }
-public void setBarCode(String barCode) {
+
+    public void setBarCode(String barCode) {
         this.barCode = barCode;
     }
-public String getPostage() {
+
+    public String getPostage() {
         return postage;
     }
-public void setPostage(String postage) {
+
+    public void setPostage(String postage) {
         this.postage = postage;
     }
-public String getProdName() {
+
+    public String getProdName() {
         return prodName;
     }
-public void setProdName(String prodName) {
+
+    public void setProdName(String prodName) {
         this.prodName = prodName;
     }
-public String getState() {
+
+    public String getState() {
         return state;
     }
-public void setState(String state) {
+
+    public void setState(String state) {
         this.state = state;
     }
-public String getKeyword() {
+
+    public String getKeyword() {
         return keyword;
     }
-public void setKeyword(String keyword) {
+
+    public void setKeyword(String keyword) {
         this.keyword = keyword;
     }
-public String getProdDesc() {
+
+    public String getProdDesc() {
         return prodDesc;
     }
-public void setProdDesc(String prodDesc) {
+
+    public void setProdDesc(String prodDesc) {
         this.prodDesc = prodDesc;
     }
-public String getCategoryId() {
+
+    public String getCategoryId() {
         return categoryId;
     }
-public void setCategoryId(String categoryId) {
+
+    public void setCategoryId(String categoryId) {
         this.categoryId = categoryId;
     }
 
@@ -122,4 +153,28 @@ public void setCategoryId(String categoryId) {
     public void setStatusCd(String statusCd) {
         this.statusCd = statusCd;
     }
+
+    public String getContent() {
+        return content;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+
+    public String getCoverPhoto() {
+        return coverPhoto;
+    }
+
+    public void setCoverPhoto(String coverPhoto) {
+        this.coverPhoto = coverPhoto;
+    }
+
+    public List<String> getCarouselFigurePhotos() {
+        return carouselFigurePhotos;
+    }
+
+    public void setCarouselFigurePhotos(List<String> carouselFigurePhotos) {
+        this.carouselFigurePhotos = carouselFigurePhotos;
+    }
 }

+ 69 - 0
java110-bean/src/main/java/com/java110/dto/productDetail/ProductDetailDto.java

@@ -0,0 +1,69 @@
+package com.java110.dto.productDetail;
+
+import com.java110.dto.PageDto;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @ClassName FloorDto
+ * @Description 产品属性数据层封装
+ * @Author wuxw
+ * @Date 2019/4/24 8:52
+ * @Version 1.0
+ * add by wuxw 2019/4/24
+ **/
+public class ProductDetailDto extends PageDto implements Serializable {
+
+    private String productId;
+private String detailId;
+private String storeId;
+private String content;
+
+
+    private Date createTime;
+
+    private String statusCd = "0";
+
+
+    public String getProductId() {
+        return productId;
+    }
+public void setProductId(String productId) {
+        this.productId = productId;
+    }
+public String getDetailId() {
+        return detailId;
+    }
+public void setDetailId(String detailId) {
+        this.detailId = detailId;
+    }
+public String getStoreId() {
+        return storeId;
+    }
+public void setStoreId(String storeId) {
+        this.storeId = storeId;
+    }
+public String getContent() {
+        return content;
+    }
+public void setContent(String content) {
+        this.content = content;
+    }
+
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public String getStatusCd() {
+        return statusCd;
+    }
+
+    public void setStatusCd(String statusCd) {
+        this.statusCd = statusCd;
+    }
+}

+ 46 - 0
java110-bean/src/main/java/com/java110/po/productDetail/ProductDetailPo.java

@@ -0,0 +1,46 @@
+package com.java110.po.productDetail;
+
+import java.io.Serializable;
+import java.util.Date;
+
+public class ProductDetailPo implements Serializable {
+
+    private String productId;
+private String detailId;
+private String statusCd = "0";
+private String storeId;
+private String content;
+public String getProductId() {
+        return productId;
+    }
+public void setProductId(String productId) {
+        this.productId = productId;
+    }
+public String getDetailId() {
+        return detailId;
+    }
+public void setDetailId(String detailId) {
+        this.detailId = detailId;
+    }
+public String getStatusCd() {
+        return statusCd;
+    }
+public void setStatusCd(String statusCd) {
+        this.statusCd = statusCd;
+    }
+public String getStoreId() {
+        return storeId;
+    }
+public void setStoreId(String storeId) {
+        this.storeId = storeId;
+    }
+public String getContent() {
+        return content;
+    }
+public void setContent(String content) {
+        this.content = content;
+    }
+
+
+
+}

+ 97 - 0
java110-db/src/main/resources/mapper/goods/ProductDetailServiceDaoImplMapper.xml

@@ -0,0 +1,97 @@
+<?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="productDetailServiceDaoImpl">
+
+
+
+
+
+    <!-- 保存产品属性信息 add by wuxw 2018-07-03 -->
+    <insert id="saveProductDetailInfo" parameterType="Map">
+        insert into product_detail(
+product_id,detail_id,store_id,content
+) values (
+#{productId},#{detailId},#{storeId},#{content}
+)
+    </insert>
+
+
+
+    <!-- 查询产品属性信息 add by wuxw 2018-07-03 -->
+    <select id="getProductDetailInfo" parameterType="Map" resultType="Map">
+        select  t.product_id,t.product_id productId,t.detail_id,t.detail_id detailId,t.status_cd,t.status_cd statusCd,t.store_id,t.store_id storeId,t.content 
+from product_detail t 
+where 1 =1 
+<if test="productId !=null and productId != ''">
+   and t.product_id= #{productId}
+</if> 
+<if test="detailId !=null and detailId != ''">
+   and t.detail_id= #{detailId}
+</if> 
+<if test="statusCd !=null and statusCd != ''">
+   and t.status_cd= #{statusCd}
+</if> 
+<if test="storeId !=null and storeId != ''">
+   and t.store_id= #{storeId}
+</if> 
+<if test="content !=null and content != ''">
+   and t.content= #{content}
+</if> 
+order by t.create_time desc
+<if test="page != -1 and page != null ">
+   limit #{page}, #{row}
+</if> 
+
+    </select>
+
+
+
+
+    <!-- 修改产品属性信息 add by wuxw 2018-07-03 -->
+    <update id="updateProductDetailInfo" parameterType="Map">
+        update  product_detail t set t.status_cd = #{statusCd}
+<if test="newBId != null and newBId != ''">
+,t.b_id = #{newBId}
+</if> 
+<if test="productId !=null and productId != ''">
+, t.product_id= #{productId}
+</if> 
+<if test="storeId !=null and storeId != ''">
+, t.store_id= #{storeId}
+</if> 
+<if test="content !=null and content != ''">
+, t.content= #{content}
+</if> 
+ where 1=1 <if test="detailId !=null and detailId != ''">
+and t.detail_id= #{detailId}
+</if> 
+
+    </update>
+
+    <!-- 查询产品属性数量 add by wuxw 2018-07-03 -->
+     <select id="queryProductDetailsCount" parameterType="Map" resultType="Map">
+        select  count(1) count 
+from product_detail t 
+where 1 =1 
+<if test="productId !=null and productId != ''">
+   and t.product_id= #{productId}
+</if> 
+<if test="detailId !=null and detailId != ''">
+   and t.detail_id= #{detailId}
+</if> 
+<if test="statusCd !=null and statusCd != ''">
+   and t.status_cd= #{statusCd}
+</if> 
+<if test="storeId !=null and storeId != ''">
+   and t.store_id= #{storeId}
+</if> 
+<if test="content !=null and content != ''">
+   and t.content= #{content}
+</if> 
+
+
+     </select>
+
+</mapper>

+ 7 - 8
java110-generator/src/main/resources/newBack/template_1.json

@@ -1,18 +1,17 @@
 {
   "autoMove": true,
-  "id": "attrId",
-  "name": "productAttr",
+  "id": "detailId",
+  "name": "productDetail",
   "desc": "产品属性",
   "shareParam": "storeId",
   "shareColumn": "store_id",
   "shareName": "goods",
-  "tableName": "product_attr",
+  "tableName": "product_detail",
   "param": {
     "storeId": "store_id",
     "productId": "product_id",
-    "attrId": "attr_id",
-    "specCd": "spec_cd",
-    "value": "value",
+    "detailId": "detail_id",
+    "content": "content",
     "statusCd": "status_cd"
   },
   "required": [
@@ -25,8 +24,8 @@
       "msg": "商户ID不能为空"
     },
     {
-      "code": "specCd",
-      "msg": "用户规格不能为空"
+      "code": "content",
+      "msg": "产品详情不能为空"
     }
   ]
 }

+ 33 - 0
java110-generator/src/main/resources/newBack/template_productAttr.json

@@ -0,0 +1,33 @@
+{
+  "autoMove": true,
+  "id": "attrId",
+  "name": "productAttr",
+  "desc": "产品属性",
+  "shareParam": "storeId",
+  "shareColumn": "store_id",
+  "shareName": "goods",
+  "tableName": "product_attr",
+  "param": {
+    "storeId": "store_id",
+    "productId": "product_id",
+    "attrId": "attr_id",
+    "specCd": "spec_cd",
+    "value": "value",
+    "statusCd": "status_cd"
+  },
+  "required": [
+    {
+      "code": "productId",
+      "msg": "产品不能为空"
+    },
+    {
+      "code": "storeId",
+      "msg": "商户ID不能为空"
+    },
+    {
+      "code": "specCd",
+      "msg": "用户规格不能为空"
+    }
+  ]
+}
+

+ 53 - 0
java110-interface/src/main/java/com/java110/intf/goods/IProductDetailInnerServiceSMO.java

@@ -0,0 +1,53 @@
+package com.java110.intf;
+
+import com.java110.config.feign.FeignConfiguration;
+import com.java110.dto.productDetail.ProductDetailDto;
+import com.java110.po.productDetail.ProductDetailPo;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+
+import java.util.List;
+
+/**
+ * @ClassName IProductDetailInnerServiceSMO
+ * @Description 产品属性接口类
+ * @Author wuxw
+ * @Date 2019/4/24 9:04
+ * @Version 1.0
+ * add by wuxw 2019/4/24
+ **/
+@FeignClient(name = "goods-service", configuration = {FeignConfiguration.class})
+@RequestMapping("/productDetailApi")
+public interface IProductDetailInnerServiceSMO {
+
+
+    @RequestMapping(value = "/saveProductDetail", method = RequestMethod.POST)
+    public int saveProductDetail(@RequestBody ProductDetailPo productDetailPo);
+
+    @RequestMapping(value = "/updateProductDetail", method = RequestMethod.POST)
+    public int updateProductDetail(@RequestBody  ProductDetailPo productDetailPo);
+
+    @RequestMapping(value = "/deleteProductDetail", method = RequestMethod.POST)
+    public int deleteProductDetail(@RequestBody  ProductDetailPo productDetailPo);
+
+    /**
+     * <p>查询小区楼信息</p>
+     *
+     *
+     * @param productDetailDto 数据对象分享
+     * @return ProductDetailDto 对象数据
+     */
+    @RequestMapping(value = "/queryProductDetails", method = RequestMethod.POST)
+    List<ProductDetailDto> queryProductDetails(@RequestBody ProductDetailDto productDetailDto);
+
+    /**
+     * 查询<p>小区楼</p>总记录数
+     *
+     * @param productDetailDto 数据对象分享
+     * @return 小区下的小区楼记录数
+     */
+    @RequestMapping(value = "/queryProductDetailsCount", method = RequestMethod.POST)
+    int queryProductDetailsCount(@RequestBody ProductDetailDto productDetailDto);
+}

+ 117 - 6
service-goods/src/main/java/com/java110/goods/api/ProductApi.java

@@ -6,6 +6,7 @@ import com.java110.dto.product.ProductDto;
 import com.java110.dto.product.ProductSpecDetailDto;
 import com.java110.dto.product.ProductSpecDto;
 import com.java110.dto.productAttr.ProductAttrDto;
+import com.java110.dto.productDetail.ProductDetailDto;
 import com.java110.dto.productSpecValue.ProductSpecValueDto;
 import com.java110.goods.bmo.product.IDeleteProductBMO;
 import com.java110.goods.bmo.product.IGetProductBMO;
@@ -15,6 +16,10 @@ import com.java110.goods.bmo.productAttr.IDeleteProductAttrBMO;
 import com.java110.goods.bmo.productAttr.IGetProductAttrBMO;
 import com.java110.goods.bmo.productAttr.ISaveProductAttrBMO;
 import com.java110.goods.bmo.productAttr.IUpdateProductAttrBMO;
+import com.java110.goods.bmo.productDetail.IDeleteProductDetailBMO;
+import com.java110.goods.bmo.productDetail.IGetProductDetailBMO;
+import com.java110.goods.bmo.productDetail.ISaveProductDetailBMO;
+import com.java110.goods.bmo.productDetail.IUpdateProductDetailBMO;
 import com.java110.goods.bmo.productSpec.IDeleteProductSpecBMO;
 import com.java110.goods.bmo.productSpec.IGetProductSpecBMO;
 import com.java110.goods.bmo.productSpec.ISaveProductSpecBMO;
@@ -31,6 +36,7 @@ import com.java110.po.product.ProductPo;
 import com.java110.po.product.ProductSpecDetailPo;
 import com.java110.po.product.ProductSpecPo;
 import com.java110.po.productAttr.ProductAttrPo;
+import com.java110.po.productDetail.ProductDetailPo;
 import com.java110.po.productSpecValue.ProductSpecValuePo;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.BeanConvertUtil;
@@ -102,6 +108,17 @@ public class ProductApi {
     private IGetProductAttrBMO getProductAttrBMOImpl;
 
 
+    @Autowired
+    private ISaveProductDetailBMO saveProductDetailBMOImpl;
+    @Autowired
+    private IUpdateProductDetailBMO updateProductDetailBMOImpl;
+    @Autowired
+    private IDeleteProductDetailBMO deleteProductDetailBMOImpl;
+
+    @Autowired
+    private IGetProductDetailBMO getProductDetailBMOImpl;
+
+
     /**
      * 微信保存消息模板
      *
@@ -121,9 +138,10 @@ public class ProductApi {
         Assert.hasKeyAndValue(reqJson, "sort", "请求报文中未包含sort");
         Assert.hasKeyAndValue(reqJson, "isPostage", "请求报文中未包含isPostage");
         Assert.hasKeyAndValue(reqJson, "coverPhoto", "请求报文中未包含商品封面");
+        Assert.hasKeyAndValue(reqJson, "content", "请求报文中未包含商品描述");
 
-        Assert.hasKey(reqJson,"carouselFigurePhoto","请求报文中未包含轮播图");
-        Assert.hasKey(reqJson,"productSpecs","请求报文中未包含规格信息");
+        Assert.hasKey(reqJson, "carouselFigurePhoto", "请求报文中未包含轮播图");
+        Assert.hasKey(reqJson, "productSpecs", "请求报文中未包含规格信息");
 
 
         String coverPhoto = reqJson.getString("coverPhoto");
@@ -131,10 +149,10 @@ public class ProductApi {
 
         JSONArray productSpecs = reqJson.getJSONArray("productSpecs");
 
-        if(carouselFigurePhoto.size() < 1){
+        if (carouselFigurePhoto.size() < 1) {
             throw new IllegalArgumentException("请求报文中未包含轮播图");
         }
-        if(productSpecs.size() < 1){
+        if (productSpecs.size() < 1) {
             throw new IllegalArgumentException("请求报文中未包含规格信息");
         }
 
@@ -142,12 +160,16 @@ public class ProductApi {
         List<ProductSpecValuePo> productSpecValuePos = new ArrayList<>();
         for (int specIndex = 0; specIndex < productSpecs.size(); specIndex++) {
             spec = productSpecs.getJSONObject(specIndex);
-            productSpecValuePos.add(BeanConvertUtil.covertBean(spec,ProductSpecValuePo.class));
+            productSpecValuePos.add(BeanConvertUtil.covertBean(spec, ProductSpecValuePo.class));
         }
 
         ProductPo productPo = BeanConvertUtil.covertBean(reqJson, ProductPo.class);
         productPo.setStoreId(storeId);
-        return saveProductBMOImpl.save(productPo,coverPhoto,carouselFigurePhoto,productSpecValuePos);
+
+        ProductDetailPo productDetailPo = new ProductDetailPo();
+        productDetailPo.setStoreId(storeId);
+        productDetailPo.setContent(reqJson.getString("content"));
+        return saveProductBMOImpl.save(productPo, coverPhoto, carouselFigurePhoto, productSpecValuePos, productDetailPo);
     }
 
     /**
@@ -206,12 +228,14 @@ public class ProductApi {
      */
     @RequestMapping(value = "/queryProduct", method = RequestMethod.GET)
     public ResponseEntity<String> queryProduct(@RequestHeader(value = "store-id") String storeId,
+                                               @RequestParam(value = "productId", required = false) String productId,
                                                @RequestParam(value = "page") int page,
                                                @RequestParam(value = "row") int row) {
         ProductDto productDto = new ProductDto();
         productDto.setPage(page);
         productDto.setRow(row);
         productDto.setStoreId(storeId);
+        productDto.setProductId(productId);
         return getProductBMOImpl.get(productDto);
     }
 
@@ -603,4 +627,91 @@ public class ProductApi {
         productAttrDto.setProductId(productId);
         return getProductAttrBMOImpl.get(productAttrDto);
     }
+
+
+    /**
+     * 微信保存消息模板
+     *
+     * @param reqJson
+     * @return
+     * @serviceCode /productDetail/saveProductDetail
+     * @path /app/productDetail/saveProductDetail
+     */
+    @RequestMapping(value = "/saveProductDetail", method = RequestMethod.POST)
+    public ResponseEntity<String> saveProductDetail(@RequestBody JSONObject reqJson,
+                                                    @RequestHeader(value = "store-id") String storeId) {
+
+        Assert.hasKeyAndValue(reqJson, "productId", "请求报文中未包含productId");
+        Assert.hasKeyAndValue(reqJson, "storeId", "请求报文中未包含storeId");
+        Assert.hasKeyAndValue(reqJson, "content", "请求报文中未包含content");
+
+
+        ProductDetailPo productDetailPo = BeanConvertUtil.covertBean(reqJson, ProductDetailPo.class);
+        productDetailPo.setStoreId(storeId);
+        return saveProductDetailBMOImpl.save(productDetailPo);
+    }
+
+    /**
+     * 微信修改消息模板
+     *
+     * @param reqJson
+     * @return
+     * @serviceCode /productDetail/updateProductDetail
+     * @path /app/productDetail/updateProductDetail
+     */
+    @RequestMapping(value = "/updateProductDetail", method = RequestMethod.POST)
+    public ResponseEntity<String> updateProductDetail(@RequestBody JSONObject reqJson,
+                                                      @RequestHeader(value = "store-id") String storeId) {
+
+        Assert.hasKeyAndValue(reqJson, "productId", "请求报文中未包含productId");
+        Assert.hasKeyAndValue(reqJson, "storeId", "请求报文中未包含storeId");
+        Assert.hasKeyAndValue(reqJson, "content", "请求报文中未包含content");
+        Assert.hasKeyAndValue(reqJson, "detailId", "detailId不能为空");
+
+
+        ProductDetailPo productDetailPo = BeanConvertUtil.covertBean(reqJson, ProductDetailPo.class);
+        productDetailPo.setStoreId(storeId);
+        return updateProductDetailBMOImpl.update(productDetailPo);
+    }
+
+    /**
+     * 微信删除消息模板
+     *
+     * @param reqJson
+     * @return
+     * @serviceCode /productDetail/deleteProductDetail
+     * @path /app/productDetail/deleteProductDetail
+     */
+    @RequestMapping(value = "/deleteProductDetail", method = RequestMethod.POST)
+    public ResponseEntity<String> deleteProductDetail(@RequestBody JSONObject reqJson, @RequestHeader(value = "store-id") String storeId) {
+        Assert.hasKeyAndValue(reqJson, "communityId", "小区ID不能为空");
+
+        Assert.hasKeyAndValue(reqJson, "detailId", "detailId不能为空");
+
+
+        ProductDetailPo productDetailPo = BeanConvertUtil.covertBean(reqJson, ProductDetailPo.class);
+        productDetailPo.setStoreId(storeId);
+        return deleteProductDetailBMOImpl.delete(productDetailPo);
+    }
+
+    /**
+     * 微信删除消息模板
+     *
+     * @param storeId 小区ID
+     * @return
+     * @serviceCode /productDetail/queryProductDetail
+     * @path /app/productDetail/queryProductDetail
+     */
+    @RequestMapping(value = "/queryProductDetail", method = RequestMethod.GET)
+    public ResponseEntity<String> queryProductDetail(@RequestHeader(value = "store-id") String storeId,
+                                                     @RequestParam(value = "productId") String productId,
+                                                     @RequestParam(value = "page") int page,
+                                                     @RequestParam(value = "row") int row) {
+        ProductDetailDto productDetailDto = new ProductDetailDto();
+        productDetailDto.setPage(page);
+        productDetailDto.setRow(row);
+        productDetailDto.setStoreId(storeId);
+        productDetailDto.setProductId(productId);
+        return getProductDetailBMOImpl.get(productDetailDto);
+    }
 }

+ 3 - 1
service-goods/src/main/java/com/java110/goods/bmo/product/ISaveProductBMO.java

@@ -2,6 +2,7 @@ package com.java110.goods.bmo.product;
 
 import com.alibaba.fastjson.JSONArray;
 import com.java110.po.product.ProductPo;
+import com.java110.po.productDetail.ProductDetailPo;
 import com.java110.po.productSpecValue.ProductSpecValuePo;
 import org.springframework.http.ResponseEntity;
 
@@ -16,7 +17,8 @@ public interface ISaveProductBMO {
      * @param productPo
      * @return
      */
-    ResponseEntity<String> save(ProductPo productPo, String coverPhoto, JSONArray carouselFigurePhoto, List<ProductSpecValuePo> productSpecValuePos);
+    ResponseEntity<String> save(ProductPo productPo, String coverPhoto, JSONArray carouselFigurePhoto,
+                                List<ProductSpecValuePo> productSpecValuePos, ProductDetailPo productDetailPo);
 
 
 }

+ 74 - 1
service-goods/src/main/java/com/java110/goods/bmo/product/impl/GetProductBMOImpl.java

@@ -1,7 +1,11 @@
 package com.java110.goods.bmo.product.impl;
 
+import com.java110.dto.file.FileRelDto;
 import com.java110.dto.product.ProductDto;
+import com.java110.dto.productDetail.ProductDetailDto;
 import com.java110.goods.bmo.product.IGetProductBMO;
+import com.java110.intf.IProductDetailInnerServiceSMO;
+import com.java110.intf.common.IFileRelInnerServiceSMO;
 import com.java110.intf.goods.IProductInnerServiceSMO;
 import com.java110.vo.ResultVo;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -18,18 +22,25 @@ public class GetProductBMOImpl implements IGetProductBMO {
     @Autowired
     private IProductInnerServiceSMO productInnerServiceSMOImpl;
 
+    @Autowired
+    private IFileRelInnerServiceSMO fileRelInnerServiceSMOImpl;
+
+    @Autowired
+    private IProductDetailInnerServiceSMO productDetailInnerServiceSMOImpl;
+
     /**
      * @param productDto
      * @return 订单服务能够接受的报文
      */
     public ResponseEntity<String> get(ProductDto productDto) {
 
-
         int count = productInnerServiceSMOImpl.queryProductsCount(productDto);
 
         List<ProductDto> productDtos = null;
         if (count > 0) {
             productDtos = productInnerServiceSMOImpl.queryProducts(productDto);
+
+            freshProductDtos(productDtos, productDto);
         } else {
             productDtos = new ArrayList<>();
         }
@@ -41,4 +52,66 @@ public class GetProductBMOImpl implements IGetProductBMO {
         return responseEntity;
     }
 
+    private void freshProductDtos(List<ProductDto> productDtos, ProductDto productDto) {
+
+        if (productDtos == null || productDtos.size() < 1) {
+            return;
+        }
+
+        //输入
+        List<String> productIds = new ArrayList<>();
+
+        for (ProductDto tmpProductDto : productDtos) {
+            productIds.add(tmpProductDto.getProductId());
+        }
+
+        FileRelDto fileRelDto = new FileRelDto();
+        fileRelDto.setObjIds(productIds.toArray(new String[productIds.size()]));
+        fileRelDto.setRelTypeCd(FileRelDto.REL_TYPE_CD_GOODS_COVER);
+        List<FileRelDto> fileRelDtos = fileRelInnerServiceSMOImpl.queryFileRels(fileRelDto);
+
+        //刷入图片信息
+        List<String> photoVos = null;
+        String url = null;
+        for (ProductDto tmpProductDto : productDtos) {
+            for (FileRelDto tmpFileRelDto : fileRelDtos) {
+                if (tmpProductDto.getProductId().equals(tmpFileRelDto.getObjId())) {
+                    url = "/callComponent/download/getFile/file?fileId=" + tmpFileRelDto.getFileRealName() + "&communityId=-1";
+                    tmpProductDto.setCoverPhoto(url);
+                }
+            }
+        }
+
+        if (productDtos.size() > 1) {
+            return;
+        }
+
+        //输入轮播图
+        fileRelDto = new FileRelDto();
+        fileRelDto.setObjId(productDtos.get(0).getProductId());
+        fileRelDto.setRelTypeCd(FileRelDto.REL_TYPE_CD_GOODS_CAROUSEL_FIGURE);
+        fileRelDtos = fileRelInnerServiceSMOImpl.queryFileRels(fileRelDto);
+        List<String> photos = new ArrayList<>();
+        for (ProductDto tmpProductDto : productDtos) {
+            for (FileRelDto tmpFileRelDto : fileRelDtos) {
+                if (tmpProductDto.getProductId().equals(tmpFileRelDto.getObjId())) {
+                    url = "/callComponent/download/getFile/file?fileId=" + tmpFileRelDto.getFileRealName() + "&communityId=-1";
+                    photos.add(url);
+                }
+            }
+            tmpProductDto.setCarouselFigurePhotos(photos);
+        }
+
+        ProductDetailDto productDetailDto = new ProductDetailDto();
+        productDetailDto.setProductId(productDtos.get(0).getProductId());
+        productDetailDto.setStoreId(productDtos.get(0).getStoreId());
+        List<ProductDetailDto> productDetailDtos = productDetailInnerServiceSMOImpl.queryProductDetails(productDetailDto);
+
+        if (productDetailDtos == null || productDetailDtos.size() < 1) {
+            return;
+        }
+
+        productDtos.get(0).setContent(productDetailDtos.get(0).getContent());
+    }
+
 }

+ 14 - 1
service-goods/src/main/java/com/java110/goods/bmo/product/impl/SaveProductBMOImpl.java

@@ -6,12 +6,14 @@ import com.java110.core.factory.GenerateCodeFactory;
 import com.java110.dto.file.FileDto;
 import com.java110.dto.file.FileRelDto;
 import com.java110.goods.bmo.product.ISaveProductBMO;
+import com.java110.intf.IProductDetailInnerServiceSMO;
 import com.java110.intf.IProductSpecValueInnerServiceSMO;
 import com.java110.intf.common.IFileInnerServiceSMO;
 import com.java110.intf.common.IFileRelInnerServiceSMO;
 import com.java110.intf.goods.IProductInnerServiceSMO;
 import com.java110.po.file.FileRelPo;
 import com.java110.po.product.ProductPo;
+import com.java110.po.productDetail.ProductDetailPo;
 import com.java110.po.productSpecValue.ProductSpecValuePo;
 import com.java110.vo.ResultVo;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -35,6 +37,9 @@ public class SaveProductBMOImpl implements ISaveProductBMO {
     @Autowired
     private IProductSpecValueInnerServiceSMO productSpecValueInnerServiceSMOImpl;
 
+    @Autowired
+    private IProductDetailInnerServiceSMO productDetailInnerServiceSMOImpl;
+
     /**
      * 添加小区信息
      *
@@ -43,7 +48,7 @@ public class SaveProductBMOImpl implements ISaveProductBMO {
      */
     @Java110Transactional
     public ResponseEntity<String> save(ProductPo productPo, String coverPhoto, JSONArray carouselFigurePhoto,
-                                       List<ProductSpecValuePo> productSpecValuePos) {
+                                       List<ProductSpecValuePo> productSpecValuePos, ProductDetailPo productDetailPo) {
 
         productPo.setProductId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_productId));
         int flag = productInnerServiceSMOImpl.saveProduct(productPo);
@@ -69,6 +74,14 @@ public class SaveProductBMOImpl implements ISaveProductBMO {
             }
         }
 
+        productDetailPo.setProductId(productPo.getProductId());
+        productDetailPo.setDetailId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_detailId));
+
+        flag = productDetailInnerServiceSMOImpl.saveProductDetail(productDetailPo);
+        if (flag < 1) {
+            throw new IllegalArgumentException("保存规格失败");
+        }
+
         return ResultVo.createResponseEntity(ResultVo.CODE_OK, "保存成功");
     }
 

+ 17 - 0
service-goods/src/main/java/com/java110/goods/bmo/productDetail/IDeleteProductDetailBMO.java

@@ -0,0 +1,17 @@
+package com.java110.goods.bmo.productDetail;
+import com.java110.po.productDetail.ProductDetailPo;
+import org.springframework.http.ResponseEntity;
+
+public interface IDeleteProductDetailBMO {
+
+
+    /**
+     * 修改产品属性
+     * add by wuxw
+     * @param productDetailPo
+     * @return
+     */
+    ResponseEntity<String> delete(ProductDetailPo productDetailPo);
+
+
+}

+ 16 - 0
service-goods/src/main/java/com/java110/goods/bmo/productDetail/IGetProductDetailBMO.java

@@ -0,0 +1,16 @@
+package com.java110.goods.bmo.productDetail;
+import com.java110.dto.productDetail.ProductDetailDto;
+import org.springframework.http.ResponseEntity;
+public interface IGetProductDetailBMO {
+
+
+    /**
+     * 查询产品属性
+     * add by wuxw
+     * @param  productDetailDto
+     * @return
+     */
+    ResponseEntity<String> get(ProductDetailDto productDetailDto);
+
+
+}

+ 17 - 0
service-goods/src/main/java/com/java110/goods/bmo/productDetail/ISaveProductDetailBMO.java

@@ -0,0 +1,17 @@
+package com.java110.goods.bmo.productDetail;
+
+import com.java110.po.productDetail.ProductDetailPo;
+import org.springframework.http.ResponseEntity;
+public interface ISaveProductDetailBMO {
+
+
+    /**
+     * 添加产品属性
+     * add by wuxw
+     * @param productDetailPo
+     * @return
+     */
+    ResponseEntity<String> save(ProductDetailPo productDetailPo);
+
+
+}

+ 17 - 0
service-goods/src/main/java/com/java110/goods/bmo/productDetail/IUpdateProductDetailBMO.java

@@ -0,0 +1,17 @@
+package com.java110.goods.bmo.productDetail;
+import com.java110.po.productDetail.ProductDetailPo;
+import org.springframework.http.ResponseEntity;
+
+public interface IUpdateProductDetailBMO {
+
+
+    /**
+     * 修改产品属性
+     * add by wuxw
+     * @param productDetailPo
+     * @return
+     */
+    ResponseEntity<String> update(ProductDetailPo productDetailPo);
+
+
+}

+ 34 - 0
service-goods/src/main/java/com/java110/goods/bmo/productDetail/impl/DeleteProductDetailBMOImpl.java

@@ -0,0 +1,34 @@
+package com.java110.goods.bmo.productDetail.impl;
+
+import com.java110.core.annotation.Java110Transactional;
+import com.java110.goods.bmo.productDetail.IDeleteProductDetailBMO;
+import com.java110.intf.IProductDetailInnerServiceSMO;
+import com.java110.po.productDetail.ProductDetailPo;
+import com.java110.vo.ResultVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+
+@Service("deleteProductDetailBMOImpl")
+public class DeleteProductDetailBMOImpl implements IDeleteProductDetailBMO {
+
+    @Autowired
+    private IProductDetailInnerServiceSMO productDetailInnerServiceSMOImpl;
+
+    /**
+     * @param productDetailPo 数据
+     * @return 订单服务能够接受的报文
+     */
+    @Java110Transactional
+    public ResponseEntity<String> delete(ProductDetailPo productDetailPo) {
+
+        int flag = productDetailInnerServiceSMOImpl.deleteProductDetail(productDetailPo);
+
+        if (flag > 0) {
+            return ResultVo.createResponseEntity(ResultVo.CODE_OK, "保存成功");
+        }
+
+        return ResultVo.createResponseEntity(ResultVo.CODE_ERROR, "保存失败");
+    }
+
+}

+ 44 - 0
service-goods/src/main/java/com/java110/goods/bmo/productDetail/impl/GetProductDetailBMOImpl.java

@@ -0,0 +1,44 @@
+package com.java110.goods.bmo.productDetail.impl;
+
+import com.java110.dto.productDetail.ProductDetailDto;
+import com.java110.goods.bmo.productDetail.IGetProductDetailBMO;
+import com.java110.intf.IProductDetailInnerServiceSMO;
+import com.java110.vo.ResultVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Service("getProductDetailBMOImpl")
+public class GetProductDetailBMOImpl implements IGetProductDetailBMO {
+
+    @Autowired
+    private IProductDetailInnerServiceSMO productDetailInnerServiceSMOImpl;
+
+    /**
+     * @param productDetailDto
+     * @return 订单服务能够接受的报文
+     */
+    public ResponseEntity<String> get(ProductDetailDto productDetailDto) {
+
+
+        int count = productDetailInnerServiceSMOImpl.queryProductDetailsCount(productDetailDto);
+
+        List<ProductDetailDto> productDetailDtos = null;
+        if (count > 0) {
+            productDetailDtos = productDetailInnerServiceSMOImpl.queryProductDetails(productDetailDto);
+        } else {
+            productDetailDtos = new ArrayList<>();
+        }
+
+        ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) productDetailDto.getRow()), count, productDetailDtos);
+
+        ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
+
+        return responseEntity;
+    }
+
+}

+ 38 - 0
service-goods/src/main/java/com/java110/goods/bmo/productDetail/impl/SaveProductDetailBMOImpl.java

@@ -0,0 +1,38 @@
+package com.java110.goods.bmo.productDetail.impl;
+
+import com.java110.core.annotation.Java110Transactional;
+import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.goods.bmo.productDetail.ISaveProductDetailBMO;
+import com.java110.intf.IProductDetailInnerServiceSMO;
+import com.java110.po.productDetail.ProductDetailPo;
+import com.java110.vo.ResultVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+
+@Service("saveProductDetailBMOImpl")
+public class SaveProductDetailBMOImpl implements ISaveProductDetailBMO {
+
+    @Autowired
+    private IProductDetailInnerServiceSMO productDetailInnerServiceSMOImpl;
+
+    /**
+     * 添加小区信息
+     *
+     * @param productDetailPo
+     * @return 订单服务能够接受的报文
+     */
+    @Java110Transactional
+    public ResponseEntity<String> save(ProductDetailPo productDetailPo) {
+
+        productDetailPo.setDetailId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_detailId));
+        int flag = productDetailInnerServiceSMOImpl.saveProductDetail(productDetailPo);
+
+        if (flag > 0) {
+            return ResultVo.createResponseEntity(ResultVo.CODE_OK, "保存成功");
+        }
+
+        return ResultVo.createResponseEntity(ResultVo.CODE_ERROR, "保存失败");
+    }
+
+}

+ 34 - 0
service-goods/src/main/java/com/java110/goods/bmo/productDetail/impl/UpdateProductDetailBMOImpl.java

@@ -0,0 +1,34 @@
+package com.java110.goods.bmo.productDetail.impl;
+
+import com.java110.core.annotation.Java110Transactional;
+import com.java110.goods.bmo.productDetail.IUpdateProductDetailBMO;
+import com.java110.intf.IProductDetailInnerServiceSMO;
+import com.java110.po.productDetail.ProductDetailPo;
+import com.java110.vo.ResultVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+
+@Service("updateProductDetailBMOImpl")
+public class UpdateProductDetailBMOImpl implements IUpdateProductDetailBMO {
+
+    @Autowired
+    private IProductDetailInnerServiceSMO productDetailInnerServiceSMOImpl;
+
+    /**
+     * @param productDetailPo
+     * @return 订单服务能够接受的报文
+     */
+    @Java110Transactional
+    public ResponseEntity<String> update(ProductDetailPo productDetailPo) {
+
+        int flag = productDetailInnerServiceSMOImpl.updateProductDetail(productDetailPo);
+
+        if (flag > 0) {
+            return ResultVo.createResponseEntity(ResultVo.CODE_OK, "保存成功");
+        }
+
+        return ResultVo.createResponseEntity(ResultVo.CODE_ERROR, "保存失败");
+    }
+
+}

+ 61 - 0
service-goods/src/main/java/com/java110/goods/dao/IProductDetailServiceDao.java

@@ -0,0 +1,61 @@
+package com.java110.goods.dao;
+
+
+import com.java110.utils.exception.DAOException;
+import com.java110.entity.merchant.BoMerchant;
+import com.java110.entity.merchant.BoMerchantAttr;
+import com.java110.entity.merchant.Merchant;
+import com.java110.entity.merchant.MerchantAttr;
+
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 产品属性组件内部之间使用,没有给外围系统提供服务能力
+ * 产品属性服务接口类,要求全部以字符串传输,方便微服务化
+ * 新建客户,修改客户,删除客户,查询客户等功能
+ *
+ * Created by wuxw on 2016/12/27.
+ */
+public interface IProductDetailServiceDao {
+
+
+    /**
+     * 保存 产品属性信息
+     * @param info
+     * @throws DAOException DAO异常
+     */
+    void saveProductDetailInfo(Map info) throws DAOException;
+
+
+
+
+    /**
+     * 查询产品属性信息(instance过程)
+     * 根据bId 查询产品属性信息
+     * @param info bId 信息
+     * @return 产品属性信息
+     * @throws DAOException DAO异常
+     */
+    List<Map> getProductDetailInfo(Map info) throws DAOException;
+
+
+
+    /**
+     * 修改产品属性信息
+     * @param info 修改信息
+     * @throws DAOException DAO异常
+     */
+    void updateProductDetailInfo(Map info) throws DAOException;
+
+
+    /**
+     * 查询产品属性总数
+     *
+     * @param info 产品属性信息
+     * @return 产品属性数量
+     */
+    int queryProductDetailsCount(Map info);
+
+}

+ 98 - 0
service-goods/src/main/java/com/java110/goods/dao/impl/ProductDetailServiceDaoImpl.java

@@ -0,0 +1,98 @@
+package com.java110.goods.dao.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.utils.constant.ResponseConstant;
+import com.java110.utils.exception.DAOException;
+import com.java110.utils.util.DateUtil;
+import com.java110.core.base.dao.BaseServiceDao;
+import com.java110.goods.dao.IProductDetailServiceDao;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 产品属性服务 与数据库交互
+ * Created by wuxw on 2017/4/5.
+ */
+@Service("productDetailServiceDaoImpl")
+//@Transactional
+public class ProductDetailServiceDaoImpl extends BaseServiceDao implements IProductDetailServiceDao {
+
+    private static Logger logger = LoggerFactory.getLogger(ProductDetailServiceDaoImpl.class);
+
+
+
+
+
+    /**
+     * 保存产品属性信息 到 instance
+     * @param info   bId 信息
+     * @throws DAOException DAO异常
+     */
+    @Override
+    public void saveProductDetailInfo(Map info) throws DAOException {
+        logger.debug("保存产品属性信息Instance 入参 info : {}",info);
+
+        int saveFlag = sqlSessionTemplate.insert("productDetailServiceDaoImpl.saveProductDetailInfo",info);
+
+        if(saveFlag < 1){
+            throw new DAOException(ResponseConstant.RESULT_PARAM_ERROR,"保存产品属性信息Instance数据失败:"+ JSONObject.toJSONString(info));
+        }
+    }
+
+
+    /**
+     * 查询产品属性信息(instance)
+     * @param info bId 信息
+     * @return List<Map>
+     * @throws DAOException DAO异常
+     */
+    @Override
+    public List<Map> getProductDetailInfo(Map info) throws DAOException {
+        logger.debug("查询产品属性信息 入参 info : {}",info);
+
+        List<Map> businessProductDetailInfos = sqlSessionTemplate.selectList("productDetailServiceDaoImpl.getProductDetailInfo",info);
+
+        return businessProductDetailInfos;
+    }
+
+
+    /**
+     * 修改产品属性信息
+     * @param info 修改信息
+     * @throws DAOException DAO异常
+     */
+    @Override
+    public void updateProductDetailInfo(Map info) throws DAOException {
+        logger.debug("修改产品属性信息Instance 入参 info : {}",info);
+
+        int saveFlag = sqlSessionTemplate.update("productDetailServiceDaoImpl.updateProductDetailInfo",info);
+
+        if(saveFlag < 1){
+            throw new DAOException(ResponseConstant.RESULT_PARAM_ERROR,"修改产品属性信息Instance数据失败:"+ JSONObject.toJSONString(info));
+        }
+    }
+
+     /**
+     * 查询产品属性数量
+     * @param info 产品属性信息
+     * @return 产品属性数量
+     */
+    @Override
+    public int queryProductDetailsCount(Map info) {
+        logger.debug("查询产品属性数据 入参 info : {}",info);
+
+        List<Map> businessProductDetailInfos = sqlSessionTemplate.selectList("productDetailServiceDaoImpl.queryProductDetailsCount", info);
+        if (businessProductDetailInfos.size() < 1) {
+            return 0;
+        }
+
+        return Integer.parseInt(businessProductDetailInfos.get(0).get("count").toString());
+    }
+
+
+}

+ 83 - 0
service-goods/src/main/java/com/java110/goods/smo/impl/ProductDetailInnerServiceSMOImpl.java

@@ -0,0 +1,83 @@
+package com.java110.goods.smo.impl;
+
+
+import com.java110.core.base.smo.BaseServiceSMO;
+import com.java110.dto.PageDto;
+import com.java110.dto.productDetail.ProductDetailDto;
+import com.java110.goods.dao.IProductDetailServiceDao;
+import com.java110.intf.IProductDetailInnerServiceSMO;
+import com.java110.po.productDetail.ProductDetailPo;
+import com.java110.utils.util.BeanConvertUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * @ClassName FloorInnerServiceSMOImpl
+ * @Description 产品属性内部服务实现类
+ * @Author wuxw
+ * @Date 2019/4/24 9:20
+ * @Version 1.0
+ * add by wuxw 2019/4/24
+ **/
+@RestController
+public class ProductDetailInnerServiceSMOImpl extends BaseServiceSMO implements IProductDetailInnerServiceSMO {
+
+    @Autowired
+    private IProductDetailServiceDao productDetailServiceDaoImpl;
+
+
+    @Override
+    public int saveProductDetail(@RequestBody ProductDetailPo productDetailPo) {
+        int saveFlag = 1;
+        productDetailServiceDaoImpl.saveProductDetailInfo(BeanConvertUtil.beanCovertMap(productDetailPo));
+        return saveFlag;
+    }
+
+    @Override
+    public int updateProductDetail(@RequestBody ProductDetailPo productDetailPo) {
+        int saveFlag = 1;
+        productDetailServiceDaoImpl.updateProductDetailInfo(BeanConvertUtil.beanCovertMap(productDetailPo));
+        return saveFlag;
+    }
+
+    @Override
+    public int deleteProductDetail(@RequestBody ProductDetailPo productDetailPo) {
+        int saveFlag = 1;
+        productDetailPo.setStatusCd("1");
+        productDetailServiceDaoImpl.updateProductDetailInfo(BeanConvertUtil.beanCovertMap(productDetailPo));
+        return saveFlag;
+    }
+
+    @Override
+    public List<ProductDetailDto> queryProductDetails(@RequestBody ProductDetailDto productDetailDto) {
+
+        //校验是否传了 分页信息
+
+        int page = productDetailDto.getPage();
+
+        if (page != PageDto.DEFAULT_PAGE) {
+            productDetailDto.setPage((page - 1) * productDetailDto.getRow());
+        }
+
+        List<ProductDetailDto> productDetails = BeanConvertUtil.covertBeanList(productDetailServiceDaoImpl.getProductDetailInfo(BeanConvertUtil.beanCovertMap(productDetailDto)), ProductDetailDto.class);
+
+        return productDetails;
+    }
+
+
+    @Override
+    public int queryProductDetailsCount(@RequestBody ProductDetailDto productDetailDto) {
+        return productDetailServiceDaoImpl.queryProductDetailsCount(BeanConvertUtil.beanCovertMap(productDetailDto));
+    }
+
+    public IProductDetailServiceDao getProductDetailServiceDaoImpl() {
+        return productDetailServiceDaoImpl;
+    }
+
+    public void setProductDetailServiceDaoImpl(IProductDetailServiceDao productDetailServiceDaoImpl) {
+        this.productDetailServiceDaoImpl = productDetailServiceDaoImpl;
+    }
+}