java110 il y a 5 ans
Parent
commit
d7714c098e

+ 11 - 0
java110-bean/src/main/java/com/java110/dto/product/ProductDto.java

@@ -1,6 +1,7 @@
 package com.java110.dto.product;
 
 import com.java110.dto.PageDto;
+import com.java110.dto.productSpecValue.ProductSpecValueDto;
 
 import java.io.Serializable;
 import java.util.Date;
@@ -35,6 +36,8 @@ public class ProductDto extends PageDto implements Serializable {
 
     private List<String> carouselFigurePhotos;
 
+    private List<ProductSpecValueDto> productSpecValues;
+
 
     private Date createTime;
 
@@ -177,4 +180,12 @@ public class ProductDto extends PageDto implements Serializable {
     public void setCarouselFigurePhotos(List<String> carouselFigurePhotos) {
         this.carouselFigurePhotos = carouselFigurePhotos;
     }
+
+    public List<ProductSpecValueDto> getProductSpecValues() {
+        return productSpecValues;
+    }
+
+    public void setProductSpecValues(List<ProductSpecValueDto> productSpecValues) {
+        this.productSpecValues = productSpecValues;
+    }
 }

+ 21 - 0
java110-bean/src/main/java/com/java110/dto/productSpecValue/ProductSpecValueDto.java

@@ -1,9 +1,11 @@
 package com.java110.dto.productSpecValue;
 
 import com.java110.dto.PageDto;
+import com.java110.dto.product.ProductSpecDetailDto;
 
 import java.io.Serializable;
 import java.util.Date;
+import java.util.List;
 
 /**
  * @ClassName FloorDto
@@ -18,6 +20,7 @@ public class ProductSpecValueDto extends PageDto implements Serializable {
     private String specId;
     private String valueId;
     private String productId;
+    private String[] productIds;
     private String price;
     private String otPrice;
     private String costPrice;
@@ -31,6 +34,8 @@ public class ProductSpecValueDto extends PageDto implements Serializable {
 
     private String statusCd = "0";
 
+    private List<ProductSpecDetailDto> productSpecDetails;
+
 
     public String getSpecId() {
         return specId;
@@ -128,4 +133,20 @@ public class ProductSpecValueDto extends PageDto implements Serializable {
     public void setStatusCd(String statusCd) {
         this.statusCd = statusCd;
     }
+
+    public String[] getProductIds() {
+        return productIds;
+    }
+
+    public void setProductIds(String[] productIds) {
+        this.productIds = productIds;
+    }
+
+    public List<ProductSpecDetailDto> getProductSpecDetails() {
+        return productSpecDetails;
+    }
+
+    public void setProductSpecDetails(List<ProductSpecDetailDto> productSpecDetails) {
+        this.productSpecDetails = productSpecDetails;
+    }
 }

+ 46 - 0
service-goods/src/main/java/com/java110/goods/bmo/product/impl/GetProductBMOImpl.java

@@ -2,11 +2,16 @@ package com.java110.goods.bmo.product.impl;
 
 import com.java110.dto.file.FileRelDto;
 import com.java110.dto.product.ProductDto;
+import com.java110.dto.product.ProductSpecDetailDto;
+import com.java110.dto.product.ProductSpecDto;
 import com.java110.dto.productDetail.ProductDetailDto;
+import com.java110.dto.productSpecValue.ProductSpecValueDto;
 import com.java110.goods.bmo.product.IGetProductBMO;
 import com.java110.intf.IProductDetailInnerServiceSMO;
+import com.java110.intf.IProductSpecValueInnerServiceSMO;
 import com.java110.intf.common.IFileRelInnerServiceSMO;
 import com.java110.intf.goods.IProductInnerServiceSMO;
+import com.java110.intf.goods.IProductSpecDetailInnerServiceSMO;
 import com.java110.vo.ResultVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
@@ -28,6 +33,12 @@ public class GetProductBMOImpl implements IGetProductBMO {
     @Autowired
     private IProductDetailInnerServiceSMO productDetailInnerServiceSMOImpl;
 
+    @Autowired
+    private IProductSpecValueInnerServiceSMO productSpecValueInnerServiceSMOImpl;
+
+    @Autowired
+    private IProductSpecDetailInnerServiceSMO productSpecDetailInnerServiceSMOImpl;
+
     /**
      * @param productDto
      * @return 订单服务能够接受的报文
@@ -82,6 +93,7 @@ public class GetProductBMOImpl implements IGetProductBMO {
             }
         }
 
+        // 查询规格
         if (productDtos.size() > 1) {
             return;
         }
@@ -102,6 +114,8 @@ public class GetProductBMOImpl implements IGetProductBMO {
             tmpProductDto.setCarouselFigurePhotos(photos);
         }
 
+        freshProductSpecValue(productDtos);
+
         ProductDetailDto productDetailDto = new ProductDetailDto();
         productDetailDto.setProductId(productDtos.get(0).getProductId());
         productDetailDto.setStoreId(productDtos.get(0).getStoreId());
@@ -114,4 +128,36 @@ public class GetProductBMOImpl implements IGetProductBMO {
         productDtos.get(0).setContent(productDetailDtos.get(0).getContent());
     }
 
+    private void freshProductSpecValue(List<ProductDto> productDtos) {
+        ProductSpecValueDto productSpecValueDto = new ProductSpecValueDto();
+        productSpecValueDto.setProductId(productDtos.get(0).getProductId());
+        productSpecValueDto.setStoreId(productDtos.get(0).getStoreId());
+        List<ProductSpecValueDto> productSpecValueDtos = productSpecValueInnerServiceSMOImpl.queryProductSpecValues(productSpecValueDto);
+
+        if (productSpecValueDtos == null || productSpecValueDtos.size() < 1) {
+            return;
+        }
+        productDtos.get(0).setProductSpecValues(productSpecValueDtos);
+
+        List<String> specIds = new ArrayList<>();
+        for (ProductSpecValueDto productSpecValue : productSpecValueDtos) {
+            specIds.add(productSpecValue.getSpecId());
+        }
+
+        ProductSpecDetailDto productSpecDetailDto = new ProductSpecDetailDto();
+        productSpecDetailDto.setSpecIds(specIds.toArray(new String[specIds.size()]));
+        productSpecDetailDto.setStoreId(productDtos.get(0).getStoreId());
+        List<ProductSpecDetailDto> productSpecDetailDtos = productSpecDetailInnerServiceSMOImpl.queryProductSpecDetails(productSpecDetailDto);
+        List<ProductSpecDetailDto> tmpProductSpecDetailDtos = null;
+        for (ProductSpecValueDto productSpecValue : productSpecValueDtos) {
+            tmpProductSpecDetailDtos = new ArrayList<>();
+            for (ProductSpecDetailDto tmpProductSpecDetailDto : productSpecDetailDtos) {
+                if (productSpecValue.getSpecId().equals(tmpProductSpecDetailDto.getSpecId())) {
+                    tmpProductSpecDetailDtos.add(tmpProductSpecDetailDto);
+                }
+            }
+            productSpecValue.setProductSpecDetails(tmpProductSpecDetailDtos);
+        }
+    }
+
 }