Commit 3989db1b16722e59faa016fdb2729f273c4149b5

Authored by 柏杨
1 parent afbd3382

fix: categoryIds判断是否为空

shop/src/main/java/com/canrd/shop/service/impl/ProductServiceImpl.java
@@ -6,7 +6,6 @@ import com.alibaba.fastjson2.JSON; @@ -6,7 +6,6 @@ import com.alibaba.fastjson2.JSON;
6 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 6 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
7 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; 7 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
8 import com.baomidou.mybatisplus.core.metadata.IPage; 8 import com.baomidou.mybatisplus.core.metadata.IPage;
9 -import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;  
10 import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 9 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
11 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 10 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
12 import com.canrd.shop.common.constant.PriceConstants; 11 import com.canrd.shop.common.constant.PriceConstants;
@@ -23,6 +22,7 @@ import com.canrd.shop.service.*; @@ -23,6 +22,7 @@ import com.canrd.shop.service.*;
23 import com.google.common.collect.Lists; 22 import com.google.common.collect.Lists;
24 import com.google.common.collect.Sets; 23 import com.google.common.collect.Sets;
25 import lombok.extern.slf4j.Slf4j; 24 import lombok.extern.slf4j.Slf4j;
  25 +import org.apache.commons.collections4.CollectionUtils;
26 import org.apache.commons.lang3.BooleanUtils; 26 import org.apache.commons.lang3.BooleanUtils;
27 import org.apache.ibatis.annotations.Param; 27 import org.apache.ibatis.annotations.Param;
28 import org.springframework.beans.factory.annotation.Autowired; 28 import org.springframework.beans.factory.annotation.Autowired;
@@ -137,36 +137,37 @@ public class ProductServiceImpl extends ServiceImpl<ProductMapper, ProductDO> im @@ -137,36 +137,37 @@ public class ProductServiceImpl extends ServiceImpl<ProductMapper, ProductDO> im
137 .eq(Productcategoryrelation::getProductId, productQueryVO.getId()) 137 .eq(Productcategoryrelation::getProductId, productQueryVO.getId())
138 .list(); 138 .list();
139 List<String> categoryIds = productcategoryrelations.stream().map(Productcategoryrelation::getCategoryId).collect(Collectors.toList()); 139 List<String> categoryIds = productcategoryrelations.stream().map(Productcategoryrelation::getCategoryId).collect(Collectors.toList());
140 -  
141 - List<ProductCategoryDO> productCategories = categoryService.lambdaQuery()  
142 - .in(ProductCategoryDO::getId, categoryIds)  
143 - .eq(ProductCategoryDO::getParentId, "33ba6943c8bf4ca082614f299865341c")  
144 - .list();  
145 - ProductCategoryDO firstCategory = productCategories.get(0);  
146 - List<ProductCategoryDO> productCategories2 = categoryService.lambdaQuery()  
147 - .in(ProductCategoryDO::getId, categoryIds)  
148 - .eq(ProductCategoryDO::getParentId, firstCategory.getId())  
149 - .list(); 140 + if (CollectionUtils.isNotEmpty(categoryIds)) {
  141 + List<ProductCategoryDO> productCategories = categoryService.lambdaQuery()
  142 + .in(ProductCategoryDO::getId, categoryIds)
  143 + .eq(ProductCategoryDO::getParentId, "33ba6943c8bf4ca082614f299865341c")
  144 + .list();
  145 + ProductCategoryDO firstCategory = productCategories.get(0);
  146 + List<ProductCategoryDO> productCategories2 = categoryService.lambdaQuery()
  147 + .in(ProductCategoryDO::getId, categoryIds)
  148 + .eq(ProductCategoryDO::getParentId, firstCategory.getId())
  149 + .list();
150 // ProductCategoryDO secondCategory = productCategories2.get(0); 150 // ProductCategoryDO secondCategory = productCategories2.get(0);
151 - ProductCategoryDO secondCategory = productCategories2.stream()  
152 - .filter(category -> !"Not specified".equals(category.getName()))  
153 - .findFirst()  
154 - .orElse(productCategories2.get(0)); // 如果找不到,使用列表第一个元素  
155 - // 从 functionService 获取 functionId  
156 - List<ProductFunctionDO> functions = functionService.getFirstFunction(productVO.getId());  
157 - ProductFunctionDO selectedFunction = null;  
158 - if(functions != null && functions.size() > 0) {  
159 - selectedFunction = functions.stream()  
160 - .filter(function -> !"Not specified".equals(function.getName())) 151 + ProductCategoryDO secondCategory = productCategories2.stream()
  152 + .filter(category -> !"Not specified".equals(category.getName()))
161 .findFirst() 153 .findFirst()
162 - .orElse(functions.get(0)); // 如果找不到,使用列表第一个元素 154 + .orElse(productCategories2.get(0)); // 如果找不到,使用列表第一个元素
  155 + // 从 functionService 获取 functionId
  156 + List<ProductFunctionDO> functions = functionService.getFirstFunction(productVO.getId());
  157 + ProductFunctionDO selectedFunction = null;
  158 + if (functions != null && functions.size() > 0) {
  159 + selectedFunction = functions.stream()
  160 + .filter(function -> !"Not specified".equals(function.getName()))
  161 + .findFirst()
  162 + .orElse(functions.get(0)); // 如果找不到,使用列表第一个元素
  163 + }
  164 + ProductCrumbsVO productCrumbsVO = ProductCrumbsVO.builder()
  165 + .category1(firstCategory.getName()) //
  166 + .category2(secondCategory.getName())
  167 + .function(selectedFunction.getName())
  168 + .build();
  169 + productVO.setProductCrumbsVO(productCrumbsVO);
163 } 170 }
164 - ProductCrumbsVO productCrumbsVO = ProductCrumbsVO.builder()  
165 - .category1(firstCategory.getName()) //  
166 - .category2(secondCategory.getName())  
167 - .function(selectedFunction.getName())  
168 - .build();  
169 - productVO.setProductCrumbsVO(productCrumbsVO);  
170 171
171 List<EbCategorysRelation> cateRelations = ebCategorysRelationService.lambdaQuery() 172 List<EbCategorysRelation> cateRelations = ebCategorysRelationService.lambdaQuery()
172 .in(EbCategorysRelation::getCategoryId, categoryIds) 173 .in(EbCategorysRelation::getCategoryId, categoryIds)