ソースを参照

优化商品规格

java110 5 年 前
コミット
395afb2788

+ 13 - 47
java110-generator/src/main/resources/web/template_1.json

@@ -1,70 +1,36 @@
 {
-  "templateName": "商品分类",
+  "templateName": "商品规格",
   "directories": "goods",
-  "templateCode": "productCategory",
-  "templateKey": "categoryId",
-  "templateKeyName": "分类ID",
-  "searchCode": "categoryId",
-  "searchName": "分类ID",
+  "templateCode": "productSpec",
+  "templateKey": "specId",
+  "templateKeyName": "规格ID",
+  "searchCode": "specId",
+  "searchName": "规格ID",
   "conditions": [
     {
       "name": "名称",
       "inputType": "input",
-      "code": "categoryName",
+      "code": "specName",
       "whereCondition": "equal"
     },
     {
-      "name": "分类级别",
+      "name": "规格ID",
       "inputType": "input",
-      "code": "categoryLevel",
-      "whereCondition": "equal"
-    },
-    {
-      "name": "是否显示",
-      "inputType": "select",
-      "selectValue":"Y,N",
-      "selectValueName":"是,否",
-      "code": "isShow",
+      "code": "specId",
       "whereCondition": "equal"
     }
   ],
   "columns": [
     {
-      "code": "categoryName",
-      "cnCode": "分类名称",
-      "desc": "必填,请填写分类名称",
+      "code": "specName",
+      "cnCode": "规格名称",
+      "desc": "必填,请填写规格名称",
       "required": true,
       "hasDefaultValue": false,
       "inputType": "input",
       "limit": "maxLength",
       "limitParam": "100",
-      "limitErrInfo": "分类名称不能超过100位",
-      "show": true
-    },
-    {
-      "code": "seq",
-      "cnCode": "显示序号",
-      "desc": "必填,请填写显示序号",
-      "required": true,
-      "hasDefaultValue": false,
-      "inputType": "input",
-      "limit": "num",
-      "limitParam": "",
-      "limitErrInfo": "显示序号不是有效数字",
-      "show": true
-    },
-    {
-      "code": "isShow",
-      "cnCode": "是否显示",
-      "desc": "必填,请填写是否显示",
-      "required": true,
-      "hasDefaultValue": false,
-      "inputType": "select",
-      "selectValue": "Y,N",
-      "selectValueName": "是,否",
-      "limit": "maxLength",
-      "limitParam": "2",
-      "limitErrInfo": "是否显示格式错误",
+      "limitErrInfo": "规格名称不能超过100位",
       "show": true
     }
   ]

+ 71 - 0
java110-generator/src/main/resources/web/template_productCategory.json

@@ -0,0 +1,71 @@
+{
+  "templateName": "商品分类",
+  "directories": "goods",
+  "templateCode": "productCategory",
+  "templateKey": "categoryId",
+  "templateKeyName": "分类ID",
+  "searchCode": "categoryId",
+  "searchName": "分类ID",
+  "conditions": [
+    {
+      "name": "名称",
+      "inputType": "input",
+      "code": "categoryName",
+      "whereCondition": "equal"
+    },
+    {
+      "name": "分类级别",
+      "inputType": "input",
+      "code": "categoryLevel",
+      "whereCondition": "equal"
+    },
+    {
+      "name": "是否显示",
+      "inputType": "select",
+      "selectValue":"Y,N",
+      "selectValueName":"是,否",
+      "code": "isShow",
+      "whereCondition": "equal"
+    }
+  ],
+  "columns": [
+    {
+      "code": "categoryName",
+      "cnCode": "分类名称",
+      "desc": "必填,请填写分类名称",
+      "required": true,
+      "hasDefaultValue": false,
+      "inputType": "input",
+      "limit": "maxLength",
+      "limitParam": "100",
+      "limitErrInfo": "分类名称不能超过100位",
+      "show": true
+    },
+    {
+      "code": "seq",
+      "cnCode": "显示序号",
+      "desc": "必填,请填写显示序号",
+      "required": true,
+      "hasDefaultValue": false,
+      "inputType": "input",
+      "limit": "num",
+      "limitParam": "",
+      "limitErrInfo": "显示序号不是有效数字",
+      "show": true
+    },
+    {
+      "code": "isShow",
+      "cnCode": "是否显示",
+      "desc": "必填,请填写是否显示",
+      "required": true,
+      "hasDefaultValue": false,
+      "inputType": "select",
+      "selectValue": "Y,N",
+      "selectValueName": "是,否",
+      "limit": "maxLength",
+      "limitParam": "2",
+      "limitErrInfo": "是否显示格式错误",
+      "show": true
+    }
+  ]
+}

+ 25 - 1
service-goods/src/main/java/com/java110/goods/api/ProductApi.java

@@ -1,5 +1,6 @@
 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;
@@ -42,6 +43,9 @@ 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
 @RequestMapping(value = "/product")
@@ -202,10 +206,30 @@ public class ProductApi {
 
         Assert.hasKeyAndValue(reqJson, "specName", "请求报文中未包含specName");
 
+        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);
         productSpecPo.setStoreId(storeId);
-        return saveProductSpecBMOImpl.save(productSpecPo);
+        return saveProductSpecBMOImpl.save(productSpecPo,productSpecDetailPos);
     }
 
     /**

+ 5 - 1
service-goods/src/main/java/com/java110/goods/bmo/productSpec/ISaveProductSpecBMO.java

@@ -1,7 +1,11 @@
 package com.java110.goods.bmo.productSpec;
 
+import com.java110.po.product.ProductSpecDetailPo;
 import com.java110.po.product.ProductSpecPo;
 import org.springframework.http.ResponseEntity;
+
+import java.util.List;
+
 public interface ISaveProductSpecBMO {
 
 
@@ -11,7 +15,7 @@ public interface ISaveProductSpecBMO {
      * @param productSpecPo
      * @return
      */
-    ResponseEntity<String> save(ProductSpecPo productSpecPo);
+    ResponseEntity<String> save(ProductSpecPo productSpecPo, List<ProductSpecDetailPo> productSpecDetailPos);
 
 
 }

+ 23 - 4
service-goods/src/main/java/com/java110/goods/bmo/productSpec/impl/SaveProductSpecBMOImpl.java

@@ -3,19 +3,26 @@ package com.java110.goods.bmo.productSpec.impl;
 import com.java110.core.annotation.Java110Transactional;
 import com.java110.core.factory.GenerateCodeFactory;
 import com.java110.goods.bmo.productSpec.ISaveProductSpecBMO;
+import com.java110.intf.goods.IProductSpecDetailInnerServiceSMO;
 import com.java110.intf.goods.IProductSpecInnerServiceSMO;
+import com.java110.po.product.ProductSpecDetailPo;
 import com.java110.po.product.ProductSpecPo;
 import com.java110.vo.ResultVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 @Service("saveProductSpecBMOImpl")
 public class SaveProductSpecBMOImpl implements ISaveProductSpecBMO {
 
     @Autowired
     private IProductSpecInnerServiceSMO productSpecInnerServiceSMOImpl;
 
+    @Autowired
+    private IProductSpecDetailInnerServiceSMO productSpecDetailInnerServiceSMOImpl;
+
     /**
      * 添加小区信息
      *
@@ -23,16 +30,28 @@ public class SaveProductSpecBMOImpl implements ISaveProductSpecBMO {
      * @return 订单服务能够接受的报文
      */
     @Java110Transactional
-    public ResponseEntity<String> save(ProductSpecPo productSpecPo) {
+    public ResponseEntity<String> save(ProductSpecPo productSpecPo, List<ProductSpecDetailPo> productSpecDetailPos) {
 
         productSpecPo.setSpecId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_specId));
         int flag = productSpecInnerServiceSMOImpl.saveProductSpec(productSpecPo);
 
-        if (flag > 0) {
-            return ResultVo.createResponseEntity(ResultVo.CODE_OK, "保存成功");
+        if (flag < 1) {
+            return ResultVo.createResponseEntity(ResultVo.CODE_ERROR, "保存失败");
         }
 
-        return ResultVo.createResponseEntity(ResultVo.CODE_ERROR, "保存失败");
+        for (ProductSpecDetailPo productSpecDetailPo : productSpecDetailPos) {
+            productSpecDetailPo.setDetailId(GenerateCodeFactory.CODE_PREFIX_detailId);
+            productSpecDetailPo.setStoreId(productSpecPo.getStoreId());
+            productSpecDetailPo.setSpecId(productSpecPo.getSpecId());
+            flag = productSpecDetailInnerServiceSMOImpl.saveProductSpecDetail(productSpecDetailPo);
+
+            if (flag < 1) {
+                return ResultVo.createResponseEntity(ResultVo.CODE_ERROR, "保存规格失败");
+            }
+        }
+
+        return ResultVo.createResponseEntity(ResultVo.CODE_OK, "保存成功");
+
     }
 
 }