From 38bcbe726cade5be98685e450251560294c1a38a Mon Sep 17 00:00:00 2001 From: myqewr Date: Mon, 29 Dec 2025 19:42:59 +0900 Subject: [PATCH] =?UTF-8?q?fix=20:=20=ED=95=B4=EC=8B=9C=ED=83=9C=EA=B7=B8?= =?UTF-8?q?=20=EA=B8=B0=EB=B0=98=20=EC=83=81=ED=92=88=20=EC=A1=B0=ED=9A=8C?= =?UTF-8?q?=20=EC=8B=9C=20=EB=A7=A4=EC=B9=AD=EB=90=98=EB=8A=94=20=EC=83=81?= =?UTF-8?q?=ED=92=88=20=EC=97=86=EC=9D=84=20=EB=95=8C=20=EC=97=90=EB=9F=AC?= =?UTF-8?q?=20=EB=B0=9C=EC=83=9D=ED=95=98=EB=8A=94=20=EC=83=81=ED=99=A9=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/post/LoadProductsByHashTagService.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/ftm/server/application/service/post/LoadProductsByHashTagService.java b/src/main/java/com/ftm/server/application/service/post/LoadProductsByHashTagService.java index bfeda55..71d89da 100644 --- a/src/main/java/com/ftm/server/application/service/post/LoadProductsByHashTagService.java +++ b/src/main/java/com/ftm/server/application/service/post/LoadProductsByHashTagService.java @@ -44,7 +44,7 @@ public LoadProductsByHashTagVoWrapper execute( productIdAndScoreList.stream().filter(a -> a.getScore() < score).toList(); } - if (productIdAndScoreList.size() == 0) { + if (productIdAndScoreList.isEmpty()) { return LoadProductsByHashTagVoWrapper.of(List.of(), false, 0.0); } @@ -58,6 +58,10 @@ public LoadProductsByHashTagVoWrapper execute( new FindByProductHashTagsQuery(hashtagList)); } + if (postProducts.isEmpty()) { + return LoadProductsByHashTagVoWrapper.of(List.of(), false, 0.0); + } + Map postProductMap = postProducts.stream() .collect( @@ -70,6 +74,8 @@ public LoadProductsByHashTagVoWrapper execute( int beforeSize = productIdAndScoreList.size(); Set tempProductIds = postProducts.stream().map(PostProduct::getId).collect(Collectors.toSet()); + + // 캐시에 존재하는 상품 중(인기순으로 정렬되어 있음), 해시태그와 관련 있는 상품만 조회 + limit 만큼 자르기 List productIdAndScoreVoList = productIdAndScoreList.stream() .filter(vo -> tempProductIds.contains(vo.getProductId())) // DB에 존재하는 상품만 @@ -96,7 +102,8 @@ public LoadProductsByHashTagVoWrapper execute( loadProductAndUserLikeVos.stream() .collect( Collectors.toMap( - LoadProductAndUserLikeVo::getProductId, // key: productId + LoadProductAndUserLikeVo::getProductId, // key: + // productId Function.identity() // value: 해당 PostProduct 객체 자체 ));