diff --git a/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/UProductServiceImpl.java b/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/UProductServiceImpl.java index 51dad3f0..6e747347 100644 --- a/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/UProductServiceImpl.java +++ b/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/UProductServiceImpl.java @@ -8,6 +8,7 @@ import com.czg.enums.DeleteEnum; import com.czg.enums.StatusEnum; import com.czg.enums.YesNoEnum; import com.czg.exception.CzgException; +import com.czg.product.dto.ProdGroupRelationDTO; import com.czg.product.dto.ProdSkuDTO; import com.czg.product.entity.ProdGroup; import com.czg.product.entity.ProdGroupRelation; @@ -79,8 +80,11 @@ public class UProductServiceImpl extends ServiceImpl imp item.setSkuList(skuList); }); Map productKv = productAllList.stream().collect(Collectors.toMap(ShopProductVo::getId, shopProductVo -> shopProductVo)); + List prodGroupIdList = groupList.stream().map(ShopGroupProductVo::getId).distinct().toList(); + List relationList = prodGroupRelationMapper.selectListByQueryAs(query().select(ProdGroupRelation::getProdGroupId, ProdGroupRelation::getProductId).in(ProdGroupRelation::getProdGroupId, prodGroupIdList), ProdGroupRelationDTO.class); + Map> relationKv = relationList.stream().collect(Collectors.groupingBy(ProdGroupRelationDTO::getProdGroupId, Collectors.mapping(ProdGroupRelationDTO::getProductId, Collectors.toList()))); for (ShopGroupProductVo group : groupList) { - List productIdList = prodGroupRelationMapper.selectListByQueryAs(query().select(ProdGroupRelation::getProductId).eq(ProdGroupRelation::getProdGroupId, group.getId()), Long.class); + List productIdList = relationKv.get(group.getId()); if (CollUtil.isEmpty(productIdList)) { group.setProductList(List.of()); continue;