From 719d2fa89355370f3fb801b85c140c7104a5b447 Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期一, 26 十月 2020 11:21:31 +0800
Subject: [PATCH] 优化代码
---
service-goods/src/main/java/com/java110/goods/bmo/groupBuyProduct/impl/GetGroupBuyProductBMOImpl.java | 142 +++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 141 insertions(+), 1 deletions(-)
diff --git a/service-goods/src/main/java/com/java110/goods/bmo/groupBuyProduct/impl/GetGroupBuyProductBMOImpl.java b/service-goods/src/main/java/com/java110/goods/bmo/groupBuyProduct/impl/GetGroupBuyProductBMOImpl.java
index 7f9556f..7bb4579 100644
--- a/service-goods/src/main/java/com/java110/goods/bmo/groupBuyProduct/impl/GetGroupBuyProductBMOImpl.java
+++ b/service-goods/src/main/java/com/java110/goods/bmo/groupBuyProduct/impl/GetGroupBuyProductBMOImpl.java
@@ -1,8 +1,19 @@
package com.java110.goods.bmo.groupBuyProduct.impl;
+import com.java110.dto.file.FileRelDto;
import com.java110.dto.groupBuyProduct.GroupBuyProductDto;
+import com.java110.dto.groupBuyProductSpec.GroupBuyProductSpecDto;
+import com.java110.dto.product.ProductSpecDetailDto;
+import com.java110.dto.productDetail.ProductDetailDto;
+import com.java110.dto.productSpecValue.ProductSpecValueDto;
import com.java110.goods.bmo.groupBuyProduct.IGetGroupBuyProductBMO;
-import com.java110.intf.IGroupBuyProductInnerServiceSMO;
+import com.java110.intf.goods.IGroupBuyProductInnerServiceSMO;
+import com.java110.intf.goods.IGroupBuyProductSpecInnerServiceSMO;
+import com.java110.intf.goods.IProductDetailInnerServiceSMO;
+import com.java110.intf.goods.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;
@@ -18,6 +29,24 @@
@Autowired
private IGroupBuyProductInnerServiceSMO groupBuyProductInnerServiceSMOImpl;
+ @Autowired
+ private IProductInnerServiceSMO productInnerServiceSMOImpl;
+
+ @Autowired
+ private IFileRelInnerServiceSMO fileRelInnerServiceSMOImpl;
+
+ @Autowired
+ private IProductDetailInnerServiceSMO productDetailInnerServiceSMOImpl;
+
+ @Autowired
+ private IProductSpecValueInnerServiceSMO productSpecValueInnerServiceSMOImpl;
+
+ @Autowired
+ private IProductSpecDetailInnerServiceSMO productSpecDetailInnerServiceSMOImpl;
+
+ @Autowired
+ private IGroupBuyProductSpecInnerServiceSMO groupBuyProductSpecInnerServiceSMOImpl;
+
/**
* @param groupBuyProductDto
* @return 璁㈠崟鏈嶅姟鑳藉鎺ュ彈鐨勬姤鏂�
@@ -30,6 +59,7 @@
List<GroupBuyProductDto> groupBuyProductDtos = null;
if (count > 0) {
groupBuyProductDtos = groupBuyProductInnerServiceSMOImpl.queryGroupBuyProducts(groupBuyProductDto);
+ freshProductDtos(groupBuyProductDtos, groupBuyProductDto);
} else {
groupBuyProductDtos = new ArrayList<>();
}
@@ -41,4 +71,114 @@
return responseEntity;
}
+
+ private void freshProductDtos(List<GroupBuyProductDto> productDtos, GroupBuyProductDto productDto) {
+
+ if (productDtos == null || productDtos.size() < 1) {
+ return;
+ }
+
+ //杈撳叆
+ List<String> productIds = new ArrayList<>();
+
+ for (GroupBuyProductDto tmpProductDto : productDtos) {
+ productIds.add(tmpProductDto.getProductId());
+ }
+
+ FileRelDto fileRelDto = new FileRelDto();
+ fileRelDto.setObjIds(productIds.toArray(new String[productIds.size()]));
+ fileRelDto.setRelTypeCd(FileRelDto.REL_TYPE_CD_GOODS_COVER);
+ List<FileRelDto> fileRelDtos = fileRelInnerServiceSMOImpl.queryFileRels(fileRelDto);
+
+ //鍒峰叆鍥剧墖淇℃伅
+ List<String> photoVos = null;
+ String url = null;
+ for (GroupBuyProductDto tmpProductDto : productDtos) {
+ for (FileRelDto tmpFileRelDto : fileRelDtos) {
+ if (tmpProductDto.getProductId().equals(tmpFileRelDto.getObjId())) {
+ url = "/callComponent/download/getFile/file?fileId=" + tmpFileRelDto.getFileRealName() + "&communityId=-1";
+ tmpProductDto.setCoverPhoto(url);
+ }
+ }
+ }
+
+ //鍒峰叆搴撳瓨鍜岄攢閲�
+ GroupBuyProductSpecDto productSpecValueDto = new GroupBuyProductSpecDto();
+ productSpecValueDto.setStoreId(productDtos.get(0).getStoreId());
+ productSpecValueDto.setProductIds(productIds.toArray(new String[productIds.size()]));
+ List<GroupBuyProductSpecDto> productSpecValueDtos = groupBuyProductSpecInnerServiceSMOImpl.queryProductStockAndSales(productSpecValueDto);
+ for (GroupBuyProductDto tmpProduct : productDtos) {
+ for (GroupBuyProductSpecDto tmpProdSpecValue : productSpecValueDtos) {
+ if (tmpProdSpecValue.getProductId().equals(tmpProduct.getProductId())) {
+ tmpProduct.setStock(tmpProdSpecValue.getGroupStock());
+ }
+ }
+ }
+
+ // 鏌ヨ瑙勬牸
+ if (productDtos.size() > 1) {
+ return;
+ }
+
+ //杈撳叆杞挱鍥�
+ fileRelDto = new FileRelDto();
+ fileRelDto.setObjId(productDtos.get(0).getProductId());
+ fileRelDto.setRelTypeCd(FileRelDto.REL_TYPE_CD_GOODS_CAROUSEL_FIGURE);
+ fileRelDtos = fileRelInnerServiceSMOImpl.queryFileRels(fileRelDto);
+ List<String> photos = new ArrayList<>();
+ for (GroupBuyProductDto tmpProductDto : productDtos) {
+ for (FileRelDto tmpFileRelDto : fileRelDtos) {
+ if (tmpProductDto.getProductId().equals(tmpFileRelDto.getObjId())) {
+ url = "/callComponent/download/getFile/file?fileId=" + tmpFileRelDto.getFileRealName() + "&communityId=-1";
+ photos.add(url);
+ }
+ }
+ tmpProductDto.setCarouselFigurePhotos(photos);
+ }
+
+ freshProductSpecValue(productDtos);
+
+ ProductDetailDto productDetailDto = new ProductDetailDto();
+ productDetailDto.setProductId(productDtos.get(0).getProductId());
+ productDetailDto.setStoreId(productDtos.get(0).getStoreId());
+ List<ProductDetailDto> productDetailDtos = productDetailInnerServiceSMOImpl.queryProductDetails(productDetailDto);
+
+ if (productDetailDtos == null || productDetailDtos.size() < 1) {
+ return;
+ }
+
+ productDtos.get(0).setContent(productDetailDtos.get(0).getContent());
+ }
+
+ private void freshProductSpecValue(List<GroupBuyProductDto> productDtos) {
+ GroupBuyProductSpecDto productSpecValueDto = new GroupBuyProductSpecDto();
+ productSpecValueDto.setProductId(productDtos.get(0).getProductId());
+ productSpecValueDto.setStoreId(productDtos.get(0).getStoreId());
+ List<GroupBuyProductSpecDto> productSpecValueDtos = groupBuyProductSpecInnerServiceSMOImpl.queryGroupBuyProductSpecs(productSpecValueDto);
+
+ if (productSpecValueDtos == null || productSpecValueDtos.size() < 1) {
+ return;
+ }
+ productDtos.get(0).setGroupBuyProductSpecs(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);
+ }
+ }
}
--
Gitblit v1.8.0