From 0fe7faa4395a8f3e2dfcc41818de5fa715c57518 Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期一, 12 十月 2020 01:25:50 +0800
Subject: [PATCH] 修改商品

---
 service-goods/src/main/java/com/java110/goods/api/ProductApi.java |  515 ++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 476 insertions(+), 39 deletions(-)

diff --git a/service-goods/src/main/java/com/java110/goods/api/ProductApi.java b/service-goods/src/main/java/com/java110/goods/api/ProductApi.java
index 28a8ba4..09275e7 100644
--- a/service-goods/src/main/java/com/java110/goods/api/ProductApi.java
+++ b/service-goods/src/main/java/com/java110/goods/api/ProductApi.java
@@ -1,13 +1,25 @@
 package com.java110.goods.api;
 
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 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;
 import com.java110.goods.bmo.product.ISaveProductBMO;
 import com.java110.goods.bmo.product.IUpdateProductBMO;
+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;
@@ -16,14 +28,29 @@
 import com.java110.goods.bmo.productSpecDetail.IGetProductSpecDetailBMO;
 import com.java110.goods.bmo.productSpecDetail.ISaveProductSpecDetailBMO;
 import com.java110.goods.bmo.productSpecDetail.IUpdateProductSpecDetailBMO;
+import com.java110.goods.bmo.productSpecValue.IDeleteProductSpecValueBMO;
+import com.java110.goods.bmo.productSpecValue.IGetProductSpecValueBMO;
+import com.java110.goods.bmo.productSpecValue.ISaveProductSpecValueBMO;
+import com.java110.goods.bmo.productSpecValue.IUpdateProductSpecValueBMO;
 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;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestHeader;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.ArrayList;
+import java.util.List;
 
 
 @RestController
@@ -60,6 +87,37 @@
     @Autowired
     private IGetProductSpecDetailBMO getProductSpecDetailBMOImpl;
 
+    @Autowired
+    private ISaveProductSpecValueBMO saveProductSpecValueBMOImpl;
+    @Autowired
+    private IUpdateProductSpecValueBMO updateProductSpecValueBMOImpl;
+    @Autowired
+    private IDeleteProductSpecValueBMO deleteProductSpecValueBMOImpl;
+
+    @Autowired
+    private IGetProductSpecValueBMO getProductSpecValueBMOImpl;
+
+    @Autowired
+    private ISaveProductAttrBMO saveProductAttrBMOImpl;
+    @Autowired
+    private IUpdateProductAttrBMO updateProductAttrBMOImpl;
+    @Autowired
+    private IDeleteProductAttrBMO deleteProductAttrBMOImpl;
+
+    @Autowired
+    private IGetProductAttrBMO getProductAttrBMOImpl;
+
+
+    @Autowired
+    private ISaveProductDetailBMO saveProductDetailBMOImpl;
+    @Autowired
+    private IUpdateProductDetailBMO updateProductDetailBMOImpl;
+    @Autowired
+    private IDeleteProductDetailBMO deleteProductDetailBMOImpl;
+
+    @Autowired
+    private IGetProductDetailBMO getProductDetailBMOImpl;
+
 
     /**
      * 寰俊淇濆瓨娑堟伅妯℃澘
@@ -70,19 +128,48 @@
      * @path /app/product/saveProduct
      */
     @RequestMapping(value = "/saveProduct", method = RequestMethod.POST)
-    public ResponseEntity<String> saveProduct(@RequestBody JSONObject reqJson) {
+    public ResponseEntity<String> saveProduct(@RequestBody JSONObject reqJson,
+                                              @RequestHeader(value = "store-id") String storeId) {
 
         Assert.hasKeyAndValue(reqJson, "prodName", "璇锋眰鎶ユ枃涓湭鍖呭惈prodName");
-        Assert.hasKeyAndValue(reqJson, "storeId", "璇锋眰鎶ユ枃涓湭鍖呭惈storeId");
         Assert.hasKeyAndValue(reqJson, "keyword", "璇锋眰鎶ユ枃涓湭鍖呭惈keyword");
         Assert.hasKeyAndValue(reqJson, "categoryId", "璇锋眰鎶ユ枃涓湭鍖呭惈categoryId");
         Assert.hasKeyAndValue(reqJson, "unitName", "璇锋眰鎶ユ枃涓湭鍖呭惈unitName");
         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", "璇锋眰鎶ユ枃涓湭鍖呭惈瑙勬牸淇℃伅");
+
+
+        String coverPhoto = reqJson.getString("coverPhoto");
+        JSONArray carouselFigurePhoto = reqJson.getJSONArray("carouselFigurePhoto");
+
+        JSONArray productSpecs = reqJson.getJSONArray("productSpecs");
+
+        if (carouselFigurePhoto.size() < 1) {
+            throw new IllegalArgumentException("璇锋眰鎶ユ枃涓湭鍖呭惈杞挱鍥�");
+        }
+        if (productSpecs.size() < 1) {
+            throw new IllegalArgumentException("璇锋眰鎶ユ枃涓湭鍖呭惈瑙勬牸淇℃伅");
+        }
+
+        JSONObject spec = null;
+        List<ProductSpecValuePo> productSpecValuePos = new ArrayList<>();
+        for (int specIndex = 0; specIndex < productSpecs.size(); specIndex++) {
+            spec = productSpecs.getJSONObject(specIndex);
+            productSpecValuePos.add(BeanConvertUtil.covertBean(spec, ProductSpecValuePo.class));
+        }
 
         ProductPo productPo = BeanConvertUtil.covertBean(reqJson, ProductPo.class);
-        return saveProductBMOImpl.save(productPo);
+        productPo.setStoreId(storeId);
+
+        ProductDetailPo productDetailPo = new ProductDetailPo();
+        productDetailPo.setStoreId(storeId);
+        productDetailPo.setContent(reqJson.getString("content"));
+        return saveProductBMOImpl.save(productPo, coverPhoto, carouselFigurePhoto, productSpecValuePos, productDetailPo);
     }
 
     /**
@@ -94,10 +181,9 @@
      * @path /app/product/updateProduct
      */
     @RequestMapping(value = "/updateProduct", method = RequestMethod.POST)
-    public ResponseEntity<String> updateProduct(@RequestBody JSONObject reqJson) {
+    public ResponseEntity<String> updateProduct(@RequestBody JSONObject reqJson, @RequestHeader(value = "store-id") String storeId) {
 
         Assert.hasKeyAndValue(reqJson, "prodName", "璇锋眰鎶ユ枃涓湭鍖呭惈prodName");
-        Assert.hasKeyAndValue(reqJson, "storeId", "璇锋眰鎶ユ枃涓湭鍖呭惈storeId");
         Assert.hasKeyAndValue(reqJson, "keyword", "璇锋眰鎶ユ枃涓湭鍖呭惈keyword");
         Assert.hasKeyAndValue(reqJson, "categoryId", "璇锋眰鎶ユ枃涓湭鍖呭惈categoryId");
         Assert.hasKeyAndValue(reqJson, "unitName", "璇锋眰鎶ユ枃涓湭鍖呭惈unitName");
@@ -105,9 +191,33 @@
         Assert.hasKeyAndValue(reqJson, "isPostage", "璇锋眰鎶ユ枃涓湭鍖呭惈isPostage");
         Assert.hasKeyAndValue(reqJson, "productId", "productId涓嶈兘涓虹┖");
 
+        String coverPhoto = reqJson.containsKey("coverPhoto") ? reqJson.getString("coverPhoto") : "";
+        JSONArray carouselFigurePhoto = reqJson.containsKey("carouselFigurePhoto") ? reqJson.getJSONArray("carouselFigurePhoto") : null;
+
+        JSONArray productSpecs = reqJson.containsKey("productSpecs") ? reqJson.getJSONArray("productSpecs") : null;
+
+        JSONObject spec = null;
+        List<ProductSpecValuePo> productSpecValuePos = null;;
+        if (productSpecs != null) {
+            productSpecValuePos = new ArrayList<>();
+            for (int specIndex = 0; specIndex < productSpecs.size(); specIndex++) {
+                spec = productSpecs.getJSONObject(specIndex);
+                productSpecValuePos.add(BeanConvertUtil.covertBean(spec, ProductSpecValuePo.class));
+            }
+        }
 
         ProductPo productPo = BeanConvertUtil.covertBean(reqJson, ProductPo.class);
-        return updateProductBMOImpl.update(productPo);
+        productPo.setStoreId(storeId);
+
+
+        ProductDetailPo productDetailPo = null;
+        if(reqJson.containsKey("content")) {
+            productDetailPo = new ProductDetailPo();
+            productDetailPo.setStoreId(storeId);
+            productDetailPo.setContent(reqJson.getString("content"));
+        }
+
+        return updateProductBMOImpl.update(productPo, coverPhoto, carouselFigurePhoto, productSpecValuePos, productDetailPo);
     }
 
     /**
@@ -119,13 +229,15 @@
      * @path /app/product/deleteProduct
      */
     @RequestMapping(value = "/deleteProduct", method = RequestMethod.POST)
-    public ResponseEntity<String> deleteProduct(@RequestBody JSONObject reqJson) {
+    public ResponseEntity<String> deleteProduct(@RequestBody JSONObject reqJson,
+                                                @RequestHeader(value = "store-id") String storeId) {
         Assert.hasKeyAndValue(reqJson, "communityId", "灏忓尯ID涓嶈兘涓虹┖");
 
         Assert.hasKeyAndValue(reqJson, "productId", "productId涓嶈兘涓虹┖");
 
 
         ProductPo productPo = BeanConvertUtil.covertBean(reqJson, ProductPo.class);
+        productPo.setStoreId(storeId);
         return deleteProductBMOImpl.delete(productPo);
     }
 
@@ -139,76 +251,125 @@
      */
     @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);
     }
 
     /**
      * 寰俊淇濆瓨娑堟伅妯℃澘
-     * @serviceCode /product/saveProductSpec
-     * @path /app/product/saveProductSpec
+     *
      * @param reqJson
      * @return
+     * @serviceCode /product/saveProductSpec
+     * @path /app/product/saveProductSpec
      */
     @RequestMapping(value = "/saveProductSpec", method = RequestMethod.POST)
-    public ResponseEntity<String> saveProductSpec(@RequestBody JSONObject reqJson) {
+    public ResponseEntity<String> saveProductSpec(@RequestBody JSONObject reqJson,
+                                                  @RequestHeader(value = "store-id") String storeId) {
 
         Assert.hasKeyAndValue(reqJson, "specName", "璇锋眰鎶ユ枃涓湭鍖呭惈specName");
-        Assert.hasKeyAndValue(reqJson, "storeId", "璇锋眰鎶ユ枃涓湭鍖呭惈storeId");
+
+        if (!reqJson.containsKey("specDetails")) {
+            throw new IllegalArgumentException("鏈寘鍚鏍间俊鎭�");
+        }
+
+        JSONArray specDetails = reqJson.getJSONArray("specDetails");
+
+        if (specDetails.size() < 1) {
+            throw new IllegalArgumentException("鏈寘鍚鏍间俊鎭�");
+        }
+        ProductSpecDetailPo productSpecDetailPo = null;
+        JSONObject specDetail = null;
+        List<ProductSpecDetailPo> productSpecDetailPos = new ArrayList<>();
+        for (int detailIndex = 0; detailIndex < specDetails.size(); detailIndex++) {
+            specDetail = specDetails.getJSONObject(detailIndex);
+            Assert.hasKeyAndValue(specDetail, "detailName", "鏈寘鍚鏍�");
+            Assert.hasKeyAndValue(specDetail, "detailValue", "鏈寘鍚鏍煎��");
+            productSpecDetailPo = BeanConvertUtil.covertBean(specDetail, ProductSpecDetailPo.class);
+            productSpecDetailPos.add(productSpecDetailPo);
+        }
 
 
         ProductSpecPo productSpecPo = BeanConvertUtil.covertBean(reqJson, ProductSpecPo.class);
-        return saveProductSpecBMOImpl.save(productSpecPo);
+        productSpecPo.setStoreId(storeId);
+        return saveProductSpecBMOImpl.save(productSpecPo, productSpecDetailPos);
     }
 
     /**
      * 寰俊淇敼娑堟伅妯℃澘
-     * @serviceCode /product/updateProductSpec
-     * @path /app/product/updateProductSpec
+     *
      * @param reqJson
      * @return
+     * @serviceCode /product/updateProductSpec
+     * @path /app/product/updateProductSpec
      */
     @RequestMapping(value = "/updateProductSpec", method = RequestMethod.POST)
-    public ResponseEntity<String> updateProductSpec(@RequestBody JSONObject reqJson) {
+    public ResponseEntity<String> updateProductSpec(@RequestBody JSONObject reqJson,
+                                                    @RequestHeader(value = "store-id") String storeId) {
 
         Assert.hasKeyAndValue(reqJson, "specName", "璇锋眰鎶ユ枃涓湭鍖呭惈specName");
-        Assert.hasKeyAndValue(reqJson, "storeId", "璇锋眰鎶ユ枃涓湭鍖呭惈storeId");
         Assert.hasKeyAndValue(reqJson, "specId", "specId涓嶈兘涓虹┖");
 
 
+        if (!reqJson.containsKey("specDetails")) {
+            throw new IllegalArgumentException("鏈寘鍚鏍间俊鎭�");
+        }
+
+        JSONArray specDetails = reqJson.getJSONArray("specDetails");
+
+        if (specDetails.size() < 1) {
+            throw new IllegalArgumentException("鏈寘鍚鏍间俊鎭�");
+        }
+        ProductSpecDetailPo productSpecDetailPo = null;
+        JSONObject specDetail = null;
+        List<ProductSpecDetailPo> productSpecDetailPos = new ArrayList<>();
+        for (int detailIndex = 0; detailIndex < specDetails.size(); detailIndex++) {
+            specDetail = specDetails.getJSONObject(detailIndex);
+            Assert.hasKeyAndValue(specDetail, "detailName", "鏈寘鍚鏍�");
+            Assert.hasKeyAndValue(specDetail, "detailValue", "鏈寘鍚鏍煎��");
+            productSpecDetailPo = BeanConvertUtil.covertBean(specDetail, ProductSpecDetailPo.class);
+            productSpecDetailPos.add(productSpecDetailPo);
+        }
+
         ProductSpecPo productSpecPo = BeanConvertUtil.covertBean(reqJson, ProductSpecPo.class);
-        return updateProductSpecBMOImpl.update(productSpecPo);
+        productSpecPo.setStoreId(storeId);
+        return updateProductSpecBMOImpl.update(productSpecPo, productSpecDetailPos);
     }
 
     /**
      * 寰俊鍒犻櫎娑堟伅妯℃澘
-     * @serviceCode /product/deleteProductSpec
-     * @path /app/product/deleteProductSpec
+     *
      * @param reqJson
      * @return
+     * @serviceCode /product/deleteProductSpec
+     * @path /app/product/deleteProductSpec
      */
     @RequestMapping(value = "/deleteProductSpec", method = RequestMethod.POST)
-    public ResponseEntity<String> deleteProductSpec(@RequestBody JSONObject reqJson) {
-        Assert.hasKeyAndValue(reqJson, "communityId", "灏忓尯ID涓嶈兘涓虹┖");
+    public ResponseEntity<String> deleteProductSpec(@RequestBody JSONObject reqJson,
+                                                    @RequestHeader(value = "store-id") String storeId) {
 
         Assert.hasKeyAndValue(reqJson, "specId", "specId涓嶈兘涓虹┖");
 
 
         ProductSpecPo productSpecPo = BeanConvertUtil.covertBean(reqJson, ProductSpecPo.class);
+        productSpecPo.setStoreId(storeId);
         return deleteProductSpecBMOImpl.delete(productSpecPo);
     }
 
     /**
      * 寰俊鍒犻櫎娑堟伅妯℃澘
-     * @serviceCode /product/queryProductSpec
-     * @path /app/product/queryProductSpec
+     *
      * @param storeId 鍟嗘埛ID
      * @return
+     * @serviceCode /product/queryProductSpec
+     * @path /app/product/queryProductSpec
      */
     @RequestMapping(value = "/queryProductSpec", method = RequestMethod.GET)
     public ResponseEntity<String> queryProductSpec(@RequestHeader(value = "store-id") String storeId,
@@ -224,73 +385,80 @@
 
     /**
      * 寰俊淇濆瓨娑堟伅妯℃澘
-     * @serviceCode /product/saveProductSpecDetail
-     * @path /app/product/saveProductSpecDetail
+     *
      * @param reqJson
      * @return
+     * @serviceCode /product/saveProductSpecDetail
+     * @path /app/product/saveProductSpecDetail
      */
     @RequestMapping(value = "/saveProductSpecDetail", method = RequestMethod.POST)
-    public ResponseEntity<String> saveProductSpecDetail(@RequestBody JSONObject reqJson) {
+    public ResponseEntity<String> saveProductSpecDetail(@RequestBody JSONObject reqJson,
+                                                        @RequestHeader(value = "store-id") String storeId) {
 
         Assert.hasKeyAndValue(reqJson, "specId", "璇锋眰鎶ユ枃涓湭鍖呭惈specId");
-        Assert.hasKeyAndValue(reqJson, "storeId", "璇锋眰鎶ユ枃涓湭鍖呭惈storeId");
         Assert.hasKeyAndValue(reqJson, "detailName", "璇锋眰鎶ユ枃涓湭鍖呭惈detailName");
         Assert.hasKeyAndValue(reqJson, "detailValue", "璇锋眰鎶ユ枃涓湭鍖呭惈detailValue");
 
 
         ProductSpecDetailPo productSpecDetailPo = BeanConvertUtil.covertBean(reqJson, ProductSpecDetailPo.class);
+        productSpecDetailPo.setStoreId(storeId);
         return saveProductSpecDetailBMOImpl.save(productSpecDetailPo);
     }
 
     /**
      * 寰俊淇敼娑堟伅妯℃澘
-     * @serviceCode /product/updateProductSpecDetail
-     * @path /app/product/updateProductSpecDetail
+     *
      * @param reqJson
      * @return
+     * @serviceCode /product/updateProductSpecDetail
+     * @path /app/product/updateProductSpecDetail
      */
     @RequestMapping(value = "/updateProductSpecDetail", method = RequestMethod.POST)
-    public ResponseEntity<String> updateProductSpecDetail(@RequestBody JSONObject reqJson) {
+    public ResponseEntity<String> updateProductSpecDetail(@RequestBody JSONObject reqJson,
+                                                          @RequestHeader(value = "store-id") String storeId) {
 
         Assert.hasKeyAndValue(reqJson, "specId", "璇锋眰鎶ユ枃涓湭鍖呭惈specId");
-        Assert.hasKeyAndValue(reqJson, "storeId", "璇锋眰鎶ユ枃涓湭鍖呭惈storeId");
         Assert.hasKeyAndValue(reqJson, "detailName", "璇锋眰鎶ユ枃涓湭鍖呭惈detailName");
         Assert.hasKeyAndValue(reqJson, "detailValue", "璇锋眰鎶ユ枃涓湭鍖呭惈detailValue");
         Assert.hasKeyAndValue(reqJson, "detailId", "detailId涓嶈兘涓虹┖");
 
 
         ProductSpecDetailPo productSpecDetailPo = BeanConvertUtil.covertBean(reqJson, ProductSpecDetailPo.class);
+        productSpecDetailPo.setStoreId(storeId);
         return updateProductSpecDetailBMOImpl.update(productSpecDetailPo);
     }
 
     /**
      * 寰俊鍒犻櫎娑堟伅妯℃澘
-     * @serviceCode /product/deleteProductSpecDetail
-     * @path /app/product/deleteProductSpecDetail
+     *
      * @param reqJson
      * @return
+     * @serviceCode /product/deleteProductSpecDetail
+     * @path /app/product/deleteProductSpecDetail
      */
     @RequestMapping(value = "/deleteProductSpecDetail", method = RequestMethod.POST)
-    public ResponseEntity<String> deleteProductSpecDetail(@RequestBody JSONObject reqJson) {
-        Assert.hasKeyAndValue(reqJson, "communityId", "灏忓尯ID涓嶈兘涓虹┖");
+    public ResponseEntity<String> deleteProductSpecDetail(@RequestBody JSONObject reqJson,
+                                                          @RequestHeader(value = "store-id") String storeId) {
 
         Assert.hasKeyAndValue(reqJson, "detailId", "detailId涓嶈兘涓虹┖");
 
 
         ProductSpecDetailPo productSpecDetailPo = BeanConvertUtil.covertBean(reqJson, ProductSpecDetailPo.class);
+        productSpecDetailPo.setStoreId(storeId);
         return deleteProductSpecDetailBMOImpl.delete(productSpecDetailPo);
     }
 
     /**
      * 寰俊鍒犻櫎娑堟伅妯℃澘
-     * @serviceCode /product/queryProductSpecDetail
-     * @path /app/product/queryProductSpecDetail
+     *
      * @param storeId 灏忓尯ID
      * @return
+     * @serviceCode /product/queryProductSpecDetail
+     * @path /app/product/queryProductSpecDetail
      */
     @RequestMapping(value = "/queryProductSpecDetail", method = RequestMethod.GET)
     public ResponseEntity<String> queryProductSpecDetail(@RequestHeader(value = "store-id") String storeId,
-                                                         @RequestParam(value = "specId",required = false) String specId,
+                                                         @RequestParam(value = "specId", required = false) String specId,
                                                          @RequestParam(value = "page") int page,
                                                          @RequestParam(value = "row") int row) {
         ProductSpecDetailDto productSpecDetailDto = new ProductSpecDetailDto();
@@ -300,4 +468,273 @@
         productSpecDetailDto.setStoreId(storeId);
         return getProductSpecDetailBMOImpl.get(productSpecDetailDto);
     }
+
+
+    /**
+     * 寰俊淇濆瓨娑堟伅妯℃澘
+     *
+     * @param reqJson
+     * @return
+     * @serviceCode /product/saveProductSpecValue
+     * @path /app/product/saveProductSpecValue
+     */
+    @RequestMapping(value = "/saveProductSpecValue", method = RequestMethod.POST)
+    public ResponseEntity<String> saveProductSpecValue(@RequestBody JSONObject reqJson,
+                                                       @RequestHeader(value = "store-id") String storeId) {
+
+        Assert.hasKeyAndValue(reqJson, "specId", "璇锋眰鎶ユ枃涓湭鍖呭惈specId");
+        Assert.hasKeyAndValue(reqJson, "productId", "璇锋眰鎶ユ枃涓湭鍖呭惈productId");
+        Assert.hasKeyAndValue(reqJson, "stock", "璇锋眰鎶ユ枃涓湭鍖呭惈stock");
+        Assert.hasKeyAndValue(reqJson, "price", "璇锋眰鎶ユ枃涓湭鍖呭惈price");
+        Assert.hasKeyAndValue(reqJson, "sales", "璇锋眰鎶ユ枃涓湭鍖呭惈sales");
+        Assert.hasKeyAndValue(reqJson, "costPrice", "璇锋眰鎶ユ枃涓湭鍖呭惈costPrice");
+        Assert.hasKeyAndValue(reqJson, "vipPrice", "璇锋眰鎶ユ枃涓湭鍖呭惈vipPrice");
+        Assert.hasKeyAndValue(reqJson, "otPrice", "璇锋眰鎶ユ枃涓湭鍖呭惈otPrice");
+
+
+        ProductSpecValuePo productSpecValuePo = BeanConvertUtil.covertBean(reqJson, ProductSpecValuePo.class);
+        productSpecValuePo.setStoreId(storeId);
+        return saveProductSpecValueBMOImpl.save(productSpecValuePo);
+    }
+
+    /**
+     * 寰俊淇敼娑堟伅妯℃澘
+     *
+     * @param reqJson
+     * @return
+     * @serviceCode /product/updateProductSpecValue
+     * @path /app/product/updateProductSpecValue
+     */
+    @RequestMapping(value = "/updateProductSpecValue", method = RequestMethod.POST)
+    public ResponseEntity<String> updateProductSpecValue(@RequestBody JSONObject reqJson,
+                                                         @RequestHeader(value = "store-id") String storeId) {
+
+        Assert.hasKeyAndValue(reqJson, "specId", "璇锋眰鎶ユ枃涓湭鍖呭惈specId");
+        Assert.hasKeyAndValue(reqJson, "productId", "璇锋眰鎶ユ枃涓湭鍖呭惈productId");
+        Assert.hasKeyAndValue(reqJson, "stock", "璇锋眰鎶ユ枃涓湭鍖呭惈stock");
+        Assert.hasKeyAndValue(reqJson, "price", "璇锋眰鎶ユ枃涓湭鍖呭惈price");
+        Assert.hasKeyAndValue(reqJson, "sales", "璇锋眰鎶ユ枃涓湭鍖呭惈sales");
+        Assert.hasKeyAndValue(reqJson, "costPrice", "璇锋眰鎶ユ枃涓湭鍖呭惈costPrice");
+        Assert.hasKeyAndValue(reqJson, "vipPrice", "璇锋眰鎶ユ枃涓湭鍖呭惈vipPrice");
+        Assert.hasKeyAndValue(reqJson, "otPrice", "璇锋眰鎶ユ枃涓湭鍖呭惈otPrice");
+        Assert.hasKeyAndValue(reqJson, "valueId", "valueId涓嶈兘涓虹┖");
+
+
+        ProductSpecValuePo productSpecValuePo = BeanConvertUtil.covertBean(reqJson, ProductSpecValuePo.class);
+        productSpecValuePo.setStoreId(storeId);
+        return updateProductSpecValueBMOImpl.update(productSpecValuePo);
+    }
+
+    /**
+     * 寰俊鍒犻櫎娑堟伅妯℃澘
+     *
+     * @param reqJson
+     * @return
+     * @serviceCode /product/deleteProductSpecValue
+     * @path /app/product/deleteProductSpecValue
+     */
+    @RequestMapping(value = "/deleteProductSpecValue", method = RequestMethod.POST)
+    public ResponseEntity<String> deleteProductSpecValue(@RequestBody JSONObject reqJson,
+                                                         @RequestHeader(value = "store-id") String storeId) {
+
+        Assert.hasKeyAndValue(reqJson, "valueId", "valueId涓嶈兘涓虹┖");
+
+
+        ProductSpecValuePo productSpecValuePo = BeanConvertUtil.covertBean(reqJson, ProductSpecValuePo.class);
+        productSpecValuePo.setStoreId(storeId);
+        return deleteProductSpecValueBMOImpl.delete(productSpecValuePo);
+    }
+
+    /**
+     * 寰俊鍒犻櫎娑堟伅妯℃澘
+     *
+     * @param storeId 灏忓尯ID
+     * @return
+     * @serviceCode /product/queryProductSpecValue
+     * @path /app/product/queryProductSpecValue
+     */
+    @RequestMapping(value = "/queryProductSpecValue", method = RequestMethod.GET)
+    public ResponseEntity<String> queryProductSpecValue(@RequestHeader(value = "store-id") String storeId,
+                                                        @RequestParam(value = "productId", required = false) String productId,
+                                                        @RequestParam(value = "page") int page,
+                                                        @RequestParam(value = "row") int row) {
+        ProductSpecValueDto productSpecValueDto = new ProductSpecValueDto();
+        productSpecValueDto.setPage(page);
+        productSpecValueDto.setRow(row);
+        productSpecValueDto.setStoreId(storeId);
+        productSpecValueDto.setProductId(productId);
+        return getProductSpecValueBMOImpl.get(productSpecValueDto);
+    }
+
+
+    /**
+     * 寰俊淇濆瓨娑堟伅妯℃澘
+     *
+     * @param reqJson
+     * @return
+     * @serviceCode /product/saveProductAttr
+     * @path /app/product/saveProductAttr
+     */
+    @RequestMapping(value = "/saveProductAttr", method = RequestMethod.POST)
+    public ResponseEntity<String> saveProductAttr(@RequestBody JSONObject reqJson,
+                                                  @RequestHeader(value = "store-id") String storeId) {
+
+        Assert.hasKeyAndValue(reqJson, "productId", "璇锋眰鎶ユ枃涓湭鍖呭惈productId");
+        Assert.hasKeyAndValue(reqJson, "specCd", "璇锋眰鎶ユ枃涓湭鍖呭惈specCd");
+
+
+        ProductAttrPo productAttrPo = BeanConvertUtil.covertBean(reqJson, ProductAttrPo.class);
+        productAttrPo.setStoreId(storeId);
+        return saveProductAttrBMOImpl.save(productAttrPo);
+    }
+
+    /**
+     * 寰俊淇敼娑堟伅妯℃澘
+     *
+     * @param reqJson
+     * @return
+     * @serviceCode /product/updateProductAttr
+     * @path /app/product/updateProductAttr
+     */
+    @RequestMapping(value = "/updateProductAttr", method = RequestMethod.POST)
+    public ResponseEntity<String> updateProductAttr(@RequestBody JSONObject reqJson,
+                                                    @RequestHeader(value = "store-id") String storeId) {
+
+        Assert.hasKeyAndValue(reqJson, "productId", "璇锋眰鎶ユ枃涓湭鍖呭惈productId");
+        Assert.hasKeyAndValue(reqJson, "specCd", "璇锋眰鎶ユ枃涓湭鍖呭惈specCd");
+        Assert.hasKeyAndValue(reqJson, "attrId", "attrId涓嶈兘涓虹┖");
+
+
+        ProductAttrPo productAttrPo = BeanConvertUtil.covertBean(reqJson, ProductAttrPo.class);
+        productAttrPo.setStoreId(storeId);
+        return updateProductAttrBMOImpl.update(productAttrPo);
+    }
+
+    /**
+     * 寰俊鍒犻櫎娑堟伅妯℃澘
+     *
+     * @param reqJson
+     * @return
+     * @serviceCode /product/deleteProductAttr
+     * @path /app/product/deleteProductAttr
+     */
+    @RequestMapping(value = "/deleteProductAttr", method = RequestMethod.POST)
+    public ResponseEntity<String> deleteProductAttr(@RequestBody JSONObject reqJson,
+                                                    @RequestHeader(value = "store-id") String storeId) {
+
+        Assert.hasKeyAndValue(reqJson, "attrId", "attrId涓嶈兘涓虹┖");
+
+
+        ProductAttrPo productAttrPo = BeanConvertUtil.covertBean(reqJson, ProductAttrPo.class);
+        productAttrPo.setStoreId(storeId);
+        return deleteProductAttrBMOImpl.delete(productAttrPo);
+    }
+
+    /**
+     * 寰俊鍒犻櫎娑堟伅妯℃澘
+     *
+     * @param storeId 鍟嗘埛ID
+     * @return
+     * @serviceCode /product/queryProductAttr
+     * @path /app/product/queryProductAttr
+     */
+    @RequestMapping(value = "/queryProductAttr", method = RequestMethod.GET)
+    public ResponseEntity<String> queryProductAttr(@RequestHeader(value = "store-id") String storeId,
+                                                   @RequestParam(value = "productId", required = false) String productId,
+                                                   @RequestParam(value = "page") int page,
+                                                   @RequestParam(value = "row") int row) {
+        ProductAttrDto productAttrDto = new ProductAttrDto();
+        productAttrDto.setPage(page);
+        productAttrDto.setRow(row);
+        productAttrDto.setStoreId(storeId);
+        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);
+    }
 }

--
Gitblit v1.8.0