From 90788acc58e0e0bb9179ccc2ecad6271d4df1517 Mon Sep 17 00:00:00 2001 From: Tankaikai Date: Wed, 19 Feb 2025 15:33:41 +0800 Subject: [PATCH] =?UTF-8?q?=E5=95=86=E5=93=81=E6=A8=A1=E5=9D=97=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../product/service/impl/ProductServiceImpl.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/ProductServiceImpl.java b/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/ProductServiceImpl.java index cfc0e75c..26be71f2 100644 --- a/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/ProductServiceImpl.java +++ b/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/ProductServiceImpl.java @@ -117,7 +117,21 @@ public class ProductServiceImpl extends ServiceImpl impl @Override public List getProductList(ProductDTO param) { QueryWrapper queryWrapper = buildFullQueryWrapper(param); - return super.listAs(queryWrapper, ProductDTO.class); + List records = super.listAs(queryWrapper, ProductDTO.class); + List prodIdList = records.stream().map(ProductDTO::getId).distinct().toList(); + List skuList = prodSkuMapper.selectListByQueryAs(query().in(ProdSku::getProductId, prodIdList).eq(ProdSku::getIsDel, DeleteEnum.NORMAL.value()), ProdSkuDTO.class); + Map> collect = skuList.stream().collect(Collectors.groupingBy(ProdSkuDTO::getProductId)); + for (ProductDTO record : records) { + List list = collect.getOrDefault(record.getId(), Collections.emptyList()); + Optional lowPriceIsPresent = list.stream().map(ProdSkuDTO::getSalePrice).min(BigDecimal::compareTo); + lowPriceIsPresent.ifPresent(record::setLowPrice); + + Optional lowMemberPriceIsPresent = list.stream().map(ProdSkuDTO::getMemberPrice).min(BigDecimal::compareTo); + lowMemberPriceIsPresent.ifPresent(record::setLowMemberPrice); + + record.setSkuList(list); + } + return records; } @Override