Przeglądaj źródła

优化 规格增删改

java110 5 lat temu
rodzic
commit
93c03e42fb

+ 8 - 9
java110-db/src/main/resources/mapper/goods/ProductSpecDetailServiceDaoImplMapper.xml

@@ -56,26 +56,25 @@
     <!-- 修改产品规格明细信息 add by wuxw 2018-07-03 -->
     <update id="updateProductSpecDetailInfo" parameterType="Map">
         update product_spec_detail t set t.status_cd = #{statusCd}
-        <if test="newBId != null and newBId != ''">
-            ,t.b_id = #{newBId}
-        </if>
-        <if test="specId !=null and specId != ''">
-            , t.spec_id= #{specId}
-        </if>
         <if test="detailName !=null and detailName != ''">
             , t.detail_name= #{detailName}
         </if>
         <if test="detailValue !=null and detailValue != ''">
             , t.detail_value= #{detailValue}
         </if>
-        <if test="storeId !=null and storeId != ''">
-            , t.store_id= #{storeId}
-        </if>
         where 1=1
         <if test="detailId !=null and detailId != ''">
             and t.detail_id= #{detailId}
         </if>
 
+        <if test="specId !=null and specId != ''">
+            and t.spec_id= #{specId}
+        </if>
+
+        <if test="storeId !=null and storeId != ''">
+            and t.store_id= #{storeId}
+        </if>
+
     </update>
 
     <!-- 查询产品规格明细数量 add by wuxw 2018-07-03 -->

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

@@ -248,9 +248,29 @@ public class ProductApi {
         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);
         productSpecPo.setStoreId(storeId);
-        return updateProductSpecBMOImpl.update(productSpecPo);
+        return updateProductSpecBMOImpl.update(productSpecPo,productSpecDetailPos);
     }
 
     /**

+ 4 - 1
service-goods/src/main/java/com/java110/goods/bmo/productSpec/IUpdateProductSpecBMO.java

@@ -1,7 +1,10 @@
 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 IUpdateProductSpecBMO {
 
 
@@ -11,7 +14,7 @@ public interface IUpdateProductSpecBMO {
      * @param productSpecPo
      * @return
      */
-    ResponseEntity<String> update(ProductSpecPo productSpecPo);
+    ResponseEntity<String> update(ProductSpecPo productSpecPo, List<ProductSpecDetailPo> productSpecDetailPos);
 
 
 }

+ 17 - 3
service-goods/src/main/java/com/java110/goods/bmo/productSpec/impl/DeleteProductSpecBMOImpl.java

@@ -2,7 +2,9 @@ package com.java110.goods.bmo.productSpec.impl;
 
 import com.java110.core.annotation.Java110Transactional;
 import com.java110.goods.bmo.productSpec.IDeleteProductSpecBMO;
+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;
@@ -15,6 +17,9 @@ public class DeleteProductSpecBMOImpl implements IDeleteProductSpecBMO {
     @Autowired
     private IProductSpecInnerServiceSMO productSpecInnerServiceSMOImpl;
 
+    @Autowired
+    private IProductSpecDetailInnerServiceSMO productSpecDetailInnerServiceSMOImpl;
+
     /**
      * @param productSpecPo 数据
      * @return 订单服务能够接受的报文
@@ -24,11 +29,20 @@ public class DeleteProductSpecBMOImpl implements IDeleteProductSpecBMO {
 
         int flag = productSpecInnerServiceSMOImpl.deleteProductSpec(productSpecPo);
 
-        if (flag > 0) {
-            return ResultVo.createResponseEntity(ResultVo.CODE_OK, "保存成功");
+        if (flag < 1) {
+            return ResultVo.createResponseEntity(ResultVo.CODE_ERROR, "删除失败");
+
+        }
+        ProductSpecDetailPo tmpProductSpecDetailPo = new ProductSpecDetailPo();
+        tmpProductSpecDetailPo.setSpecId(productSpecPo.getSpecId());
+        tmpProductSpecDetailPo.setStoreId(productSpecPo.getStoreId());
+        flag = productSpecDetailInnerServiceSMOImpl.deleteProductSpecDetail(tmpProductSpecDetailPo);
+
+        if (flag < 1) {
+            return ResultVo.createResponseEntity(ResultVo.CODE_ERROR, "删除失败");
         }
+        return ResultVo.createResponseEntity(ResultVo.CODE_OK, "删除失败");
 
-        return ResultVo.createResponseEntity(ResultVo.CODE_ERROR, "保存失败");
     }
 
 }

+ 31 - 4
service-goods/src/main/java/com/java110/goods/bmo/productSpec/impl/UpdateProductSpecBMOImpl.java

@@ -1,34 +1,61 @@
 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.IUpdateProductSpecBMO;
+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("updateProductSpecBMOImpl")
 public class UpdateProductSpecBMOImpl implements IUpdateProductSpecBMO {
 
     @Autowired
     private IProductSpecInnerServiceSMO productSpecInnerServiceSMOImpl;
 
+    @Autowired
+    private IProductSpecDetailInnerServiceSMO productSpecDetailInnerServiceSMOImpl;
+
     /**
      * @param productSpecPo
      * @return 订单服务能够接受的报文
      */
     @Java110Transactional
-    public ResponseEntity<String> update(ProductSpecPo productSpecPo) {
+    public ResponseEntity<String> update(ProductSpecPo productSpecPo, List<ProductSpecDetailPo> productSpecDetailPos) {
 
         int flag = productSpecInnerServiceSMOImpl.updateProductSpec(productSpecPo);
 
-        if (flag > 0) {
-            return ResultVo.createResponseEntity(ResultVo.CODE_OK, "保存成功");
+        if (flag < 1) {
+            return ResultVo.createResponseEntity(ResultVo.CODE_ERROR, "保存失败");
+        }
+
+        ProductSpecDetailPo tmpProductSpecDetailPo = new ProductSpecDetailPo();
+        tmpProductSpecDetailPo.setSpecId(productSpecPo.getSpecId());
+        tmpProductSpecDetailPo.setStoreId(productSpecPo.getStoreId());
+        flag = productSpecDetailInnerServiceSMOImpl.deleteProductSpecDetail(tmpProductSpecDetailPo);
+
+        if (flag < 1) {
+            return ResultVo.createResponseEntity(ResultVo.CODE_ERROR, "保存失败");
         }
 
-        return ResultVo.createResponseEntity(ResultVo.CODE_ERROR, "保存失败");
+
+        for (ProductSpecDetailPo productSpecDetailPo : productSpecDetailPos) {
+            productSpecDetailPo.setDetailId(GenerateCodeFactory.getGeneratorId(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, "保存成功");
     }
 
 }