From 7594dc2588282346f099a0e234a34e9cce6e16f0 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Tue, 12 Nov 2024 10:22:39 +0800 Subject: [PATCH] =?UTF-8?q?=E5=95=86=E5=93=81=E5=88=97=E8=A1=A8=20?= =?UTF-8?q?=E5=88=86=E7=BB=84=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cashierservice/dao/TbProductMapper.java | 3 +- .../service/ProductService.java | 30 ++++++++++++---- src/main/resources/mapper/TbProductMapper.xml | 34 ++++++++++--------- 3 files changed, 43 insertions(+), 24 deletions(-) diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbProductMapper.java b/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbProductMapper.java index 367c462..4771272 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbProductMapper.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbProductMapper.java @@ -9,6 +9,7 @@ import org.apache.ibatis.annotations.Update; import org.springframework.stereotype.Component; import java.util.List; +import java.util.Set; @Component @Mapper @@ -20,7 +21,7 @@ public interface TbProductMapper { List selectByIdIn(@Param("ids") String ids); List selectByIdInAndCheck(@Param("ids") String ids); - List selectHot(@Param("shopId") String shopId); + List selectHot(@Param("shopId") String shopId,@Param("list") Set proIds); List selectIsSpecialty(@Param("shopId") Integer shopId); diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/ProductService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/ProductService.java index e5f3460..c9c4226 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/ProductService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/ProductService.java @@ -228,25 +228,41 @@ public class ProductService { TbShopInfo shopInfo = mpShopInfoMapper.selectById(shopId); concurrentMap.put("hots", handleDate(tbProducts,true,1,false, shopInfo)); List groupList = tbProductGroupMapper.selectByShopId(shopId, id); - if (ObjectUtil.isNotEmpty(groupList) && groupList.size() > 0) { - //热销 - TbProductGroup hot = new TbProductGroup(); - hot.setName("热销"); - List hots = tbProductMapper.selectHot(shopId); - hot.setProducts(handleDate(hots,true,1,false, shopInfo)); + Set proSets = new HashSet<>(); + if (ObjectUtil.isNotEmpty(groupList)) { //商品 groupList.parallelStream().forEach(g -> { if (g.getUseTime()==1) g.setIsSale(getIsSale(g.getSaleStartTime(),g.getSaleEndTime())); String in = g.getProductIds().substring(1, g.getProductIds().length() - 1); if (ObjectUtil.isNotEmpty(in) && ObjectUtil.isNotNull(in)) { + + String[] idArray = in.split(","); + Set proSet = Arrays.stream(idArray) + .map(Integer::parseInt) + .collect(Collectors.toSet()); + proSets.addAll(proSet); + List products = tbProductMapper.selectByIdInAndCheck(in); - g.setProducts(handleDate(products,false,g.getIsSale(),false, shopInfo)); + products = handleDate(products, false, g.getIsSale(), false, shopInfo); + if(StringUtils.isNotBlank(g.getSortMode()) && "1".equals(g.getSortMode())){ + products.sort(Comparator.comparing(TbProduct::getLowPrice, Comparator.nullsLast(Comparator.reverseOrder()))); + }else if (StringUtils.isNotBlank(g.getSortMode()) && "2".equals(g.getSortMode())) { + products.sort(Comparator.comparing(TbProduct::getStockNumber, Comparator.nullsLast(Comparator.reverseOrder()))); + } + g.setProducts(products); } else { g.setProducts(new ArrayList<>()); } }); groupList.sort(Comparator.comparingInt(TbProductGroup::getIsSale).reversed()); + + //热销 + TbProductGroup hot = new TbProductGroup(); + hot.setName("热销"); + List hots = tbProductMapper.selectHot(shopId,proSets); + hot.setProducts(handleDate(hots,true,1,false, shopInfo)); groupList.add(0, hot); + concurrentMap.put("productInfo", groupList); } diff --git a/src/main/resources/mapper/TbProductMapper.xml b/src/main/resources/mapper/TbProductMapper.xml index 615d6fd..eafd686 100644 --- a/src/main/resources/mapper/TbProductMapper.xml +++ b/src/main/resources/mapper/TbProductMapper.xml @@ -922,49 +922,51 @@ select min( sku.suit ) as suit,tb.* from tb_product tb LEFT JOIN tb_product_sku sku ON tb.id = sku.product_id - where tb.id in (${ids}) and is_show_mall =1 and sku.is_del = 0 + where tb.id in (${ids}) and sku.is_del = 0 group by tb.id order by tb.sort asc