|  | @@ -7,8 +7,10 @@ import cn.newfeifan.mall.framework.common.util.object.BeanUtils;
 | 
	
		
			
				|  |  |  import cn.newfeifan.mall.module.product.controller.admin.category.vo.ProductCategoryListReqVO;
 | 
	
		
			
				|  |  |  import cn.newfeifan.mall.module.product.controller.admin.category.vo.ProductCategorySaveReqVO;
 | 
	
		
			
				|  |  |  import cn.newfeifan.mall.module.product.dal.dataobject.category.ProductCategoryDO;
 | 
	
		
			
				|  |  | +import cn.newfeifan.mall.module.product.dal.dataobject.spu.ProductSpuDO;
 | 
	
		
			
				|  |  |  import cn.newfeifan.mall.module.product.dal.mysql.category.ProductCategoryMapper;
 | 
	
		
			
				|  |  |  import cn.newfeifan.mall.module.product.service.spu.ProductSpuService;
 | 
	
		
			
				|  |  | +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 | 
	
		
			
				|  |  |  import org.springframework.context.annotation.Lazy;
 | 
	
		
			
				|  |  |  import org.springframework.stereotype.Service;
 | 
	
		
			
				|  |  |  import org.springframework.validation.annotation.Validated;
 | 
	
	
		
			
				|  | @@ -18,6 +20,7 @@ import java.util.Collection;
 | 
	
		
			
				|  |  |  import java.util.List;
 | 
	
		
			
				|  |  |  import java.util.Map;
 | 
	
		
			
				|  |  |  import java.util.Objects;
 | 
	
		
			
				|  |  | +import java.util.stream.Collectors;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  import static cn.newfeifan.mall.framework.common.exception.util.ServiceExceptionUtil.exception;
 | 
	
		
			
				|  |  |  import static cn.newfeifan.mall.module.product.dal.dataobject.category.ProductCategoryDO.PARENT_ID_NULL;
 | 
	
	
		
			
				|  | @@ -165,7 +168,19 @@ public class ProductCategoryServiceImpl implements ProductCategoryService {
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  | -    public List<ProductCategoryDO> getEnableCategoryList() {
 | 
	
		
			
				|  |  | +    public List<ProductCategoryDO> getEnableCategoryList(Long merchantId, Long shopId) {
 | 
	
		
			
				|  |  | +        if(merchantId != null && shopId != null) {
 | 
	
		
			
				|  |  | +            List<ProductSpuDO> spuDOS = productSpuService.getSpuListByMerchantIdAndShopId(merchantId, shopId);
 | 
	
		
			
				|  |  | +            List<Long> categoryIds = spuDOS.stream().map(ProductSpuDO::getCategoryId).distinct().collect(Collectors.toList());
 | 
	
		
			
				|  |  | +            List<ProductCategoryDO> productCategoryDOS = productCategoryMapper.selectList(new LambdaQueryWrapper<ProductCategoryDO>()
 | 
	
		
			
				|  |  | +                    .eq(ProductCategoryDO::getStatus, CommonStatusEnum.ENABLE.getStatus())
 | 
	
		
			
				|  |  | +                    .in(ProductCategoryDO::getId, categoryIds));
 | 
	
		
			
				|  |  | +            List<ProductCategoryDO> parentCategory = productCategoryMapper.selectList(new LambdaQueryWrapper<ProductCategoryDO>()
 | 
	
		
			
				|  |  | +                    .eq(ProductCategoryDO::getStatus, CommonStatusEnum.ENABLE.getStatus())
 | 
	
		
			
				|  |  | +                    .in(ProductCategoryDO::getId, productCategoryDOS.stream().map(ProductCategoryDO::getParentId).collect(Collectors.toList())));
 | 
	
		
			
				|  |  | +            productCategoryDOS.addAll(parentCategory);
 | 
	
		
			
				|  |  | +            return productCategoryDOS;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |          return productCategoryMapper.selectListByStatus(CommonStatusEnum.ENABLE.getStatus());
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 |