From 1335688dfa3dde7673f600e37bf5710f340aa86a Mon Sep 17 00:00:00 2001 From: ohhalim Date: Wed, 1 Jul 2026 15:30:14 +0900 Subject: [PATCH] =?UTF-8?q?fix(ranking):=20=EA=B8=89=EC=83=81=EC=8A=B9/?= =?UTF-8?q?=EA=B8=89=ED=95=98=EB=9D=BD=200.0%=20=EB=B3=80=EB=8F=99?= =?UTF-8?q?=EB=A5=A0=20=ED=95=AD=EB=AA=A9=20=ED=95=84=ED=84=B0=EB=A7=81=20?= =?UTF-8?q?(#114)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - GAIN: changeRate > 0 항목만 포함 - LOSS: changeRate < 0 항목만 포함 --- .../com/membershipflow/course/service/CourseService.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/membershipflow/course/service/CourseService.java b/src/main/java/com/membershipflow/course/service/CourseService.java index df7b272..1ee34c5 100644 --- a/src/main/java/com/membershipflow/course/service/CourseService.java +++ b/src/main/java/com/membershipflow/course/service/CourseService.java @@ -146,8 +146,14 @@ public RankingPageResponse getRanking(String period, String sort, currentPrice, basePrice, changeRate, changeAmount)); } + // 실제 변동이 있는 항목만 포함 (0.0% 제외) + boolean isLoss = "LOSS".equalsIgnoreCase(sort); + ranked = ranked.stream() + .filter(r -> isLoss ? r.changeRate() < 0 : r.changeRate() > 0) + .collect(Collectors.toCollection(ArrayList::new)); + // GAIN: 상승률 내림차순, LOSS: 하락률 오름차순 - ranked.sort("LOSS".equalsIgnoreCase(sort) + ranked.sort(isLoss ? (a, b) -> Double.compare(a.changeRate(), b.changeRate()) : (a, b) -> Double.compare(b.changeRate(), a.changeRate()));