From e57e32fc43da31917912eebb4e47d4e50df1a9e9 Mon Sep 17 00:00:00 2001
From: shiyj1101 <1098226878@qq.com>
Date: 星期四, 05 八月 2021 22:56:15 +0800
Subject: [PATCH] 完善格式化功能

---
 service-goods/src/main/java/com/java110/goods/bmo/product/impl/UpdateProductBMOImpl.java |  128 +++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 124 insertions(+), 4 deletions(-)

diff --git a/service-goods/src/main/java/com/java110/goods/bmo/product/impl/UpdateProductBMOImpl.java b/service-goods/src/main/java/com/java110/goods/bmo/product/impl/UpdateProductBMOImpl.java
old mode 100644
new mode 100755
index 4eb8810..db58d71
--- a/service-goods/src/main/java/com/java110/goods/bmo/product/impl/UpdateProductBMOImpl.java
+++ b/service-goods/src/main/java/com/java110/goods/bmo/product/impl/UpdateProductBMOImpl.java
@@ -1,34 +1,154 @@
 package com.java110.goods.bmo.product.impl;
 
+import com.alibaba.fastjson.JSONArray;
 import com.java110.core.annotation.Java110Transactional;
+import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.dto.file.FileDto;
+import com.java110.dto.file.FileRelDto;
+import com.java110.dto.productDetail.ProductDetailDto;
 import com.java110.goods.bmo.product.IUpdateProductBMO;
+import com.java110.intf.common.IFileInnerServiceSMO;
+import com.java110.intf.common.IFileRelInnerServiceSMO;
+import com.java110.intf.goods.IProductDetailInnerServiceSMO;
 import com.java110.intf.goods.IProductInnerServiceSMO;
+import com.java110.intf.goods.IProductSpecValueInnerServiceSMO;
+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.utils.util.StringUtil;
 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("updateProductBMOImpl")
 public class UpdateProductBMOImpl implements IUpdateProductBMO {
 
     @Autowired
     private IProductInnerServiceSMO productInnerServiceSMOImpl;
+    @Autowired
+    private IFileRelInnerServiceSMO fileRelInnerServiceSMOImpl;
+    @Autowired
+    private IFileInnerServiceSMO fileInnerServiceSMOImpl;
+
+    @Autowired
+    private IProductSpecValueInnerServiceSMO productSpecValueInnerServiceSMOImpl;
+
+    @Autowired
+    private IProductDetailInnerServiceSMO productDetailInnerServiceSMOImpl;
 
     /**
      * @param productPo
      * @return 璁㈠崟鏈嶅姟鑳藉鎺ュ彈鐨勬姤鏂�
      */
     @Java110Transactional
-    public ResponseEntity<String> update(ProductPo productPo) {
+    public ResponseEntity<String> update(ProductPo productPo, String coverPhoto, JSONArray carouselFigurePhoto,
+                                         List<ProductSpecValuePo> productSpecValuePos, ProductDetailPo productDetailPo) {
 
         int flag = productInnerServiceSMOImpl.updateProduct(productPo);
 
-        if (flag > 0) {
-            return ResultVo.createResponseEntity(ResultVo.CODE_OK, "淇濆瓨鎴愬姛");
+//淇濆瓨鍟嗗搧灏侀潰
+        //鍒犻櫎 鍥剧墖
+        FileRelPo fileRelPo = new FileRelPo();
+        fileRelPo.setObjId(productPo.getProductId());
+        fileRelPo.setRelTypeCd(FileRelDto.REL_TYPE_CD_GOODS_COVER);
+        fileRelInnerServiceSMOImpl.deleteFileRel(fileRelPo);
+        doSavaRentingFile(coverPhoto, productPo, FileRelDto.REL_TYPE_CD_GOODS_COVER);
+
+        if (carouselFigurePhoto != null) {
+            fileRelPo = new FileRelPo();
+            fileRelPo.setObjId(productPo.getProductId());
+            fileRelPo.setRelTypeCd(FileRelDto.REL_TYPE_CD_GOODS_CAROUSEL_FIGURE);
+            fileRelInnerServiceSMOImpl.deleteFileRel(fileRelPo);
+            for (int carouselIndex = 0; carouselIndex < carouselFigurePhoto.size(); carouselIndex++) {
+                doSavaRentingFile(carouselFigurePhoto.getString(carouselIndex), productPo, FileRelDto.REL_TYPE_CD_GOODS_CAROUSEL_FIGURE);
+            }
+        }
+        if (productSpecValuePos != null) {
+            //鍒犻櫎鎵�鏈� 瑙勬牸
+//            ProductSpecValuePo deleteProductSpecValuePo = new ProductSpecValuePo();
+//            deleteProductSpecValuePo.setStoreId(productPo.getStoreId());
+//            deleteProductSpecValuePo.setProductId(productPo.getProductId());
+//            productSpecValueInnerServiceSMOImpl.deleteProductSpecValue(deleteProductSpecValuePo);
+            for (ProductSpecValuePo productSpecValuePo : productSpecValuePos) {
+                if (StringUtil.isEmpty(productSpecValuePo.getValueId())
+                        || productSpecValuePo.getValueId().startsWith("-")) {
+                    productSpecValuePo.setStoreId(productPo.getStoreId());
+                    productSpecValuePo.setProductId(productPo.getProductId());
+                    productSpecValuePo.setValueId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_valueId));
+                    flag = productSpecValueInnerServiceSMOImpl.saveProductSpecValue(productSpecValuePo);
+                    if (flag < 1) {
+                        throw new IllegalArgumentException("淇濆瓨瑙勬牸澶辫触");
+                    }
+                } else {
+                    productSpecValueInnerServiceSMOImpl.updateProductSpecValue(productSpecValuePo);
+                }
+            }
         }
 
-        return ResultVo.createResponseEntity(ResultVo.CODE_ERROR, "淇濆瓨澶辫触");
+        if (productDetailPo == null) {
+            return ResultVo.createResponseEntity(ResultVo.CODE_OK, "淇濆瓨鎴愬姛");
+        }
+        ProductDetailDto productDetailDto = new ProductDetailDto();
+        productDetailDto.setProductId(productPo.getProductId());
+        productDetailDto.setStoreId(productPo.getStoreId());
+        List<ProductDetailDto> productDetailDtos = productDetailInnerServiceSMOImpl.queryProductDetails(productDetailDto);
+
+        if (productDetailDtos == null || productDetailDtos.size() < 1) {
+            productDetailPo.setProductId(productPo.getProductId());
+            productDetailPo.setDetailId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_detailId));
+            flag = productDetailInnerServiceSMOImpl.saveProductDetail(productDetailPo);
+        } else {
+            productDetailPo.setProductId(productPo.getProductId());
+            flag = productDetailInnerServiceSMOImpl.updateProductDetail(productDetailPo);
+
+        }
+        if (flag < 1) {
+            throw new IllegalArgumentException("淇濆瓨瑙勬牸澶辫触");
+        }
+
+
+        return ResultVo.createResponseEntity(ResultVo.CODE_OK, "淇濆瓨鎴愬姛");
+    }
+
+
+    /**
+     * 淇濆瓨鎴垮眿绉熻祦 鍥剧墖
+     *
+     * @param photo
+     * @param productPo
+     */
+    private void doSavaRentingFile(String photo, ProductPo productPo, String fileTypeCd) {
+
+        if (StringUtil.isEmpty(photo)) {
+            return;
+        }
+
+
+        FileDto fileDto = new FileDto();
+        fileDto.setCommunityId("-1");
+        fileDto.setContext(photo);
+        fileDto.setFileId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_file_id));
+        fileDto.setFileName(fileDto.getFileId());
+
+        fileDto.setSuffix("jpeg");
+        String fileName = fileInnerServiceSMOImpl.saveFile(fileDto);
+        FileRelPo fileRelPo = null;
+        fileRelPo = new FileRelPo();
+        fileRelPo.setObjId(productPo.getProductId());
+        fileRelPo.setRelTypeCd(fileTypeCd);
+        fileRelPo.setFileRelId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_relId));
+        fileRelPo.setFileRealName(fileName);
+        fileRelPo.setFileSaveName(fileName);
+        fileRelPo.setSaveWay(FileRelDto.SAVE_WAY_FTP);
+        int save = fileRelInnerServiceSMOImpl.saveFileRel(fileRelPo);
+
+        if (save < 1) {
+            throw new IllegalArgumentException("淇濆瓨鏂囦欢澶辫触");
+        }
     }
 
 }

--
Gitblit v1.8.0