From e1bf54c74b3826111a44638bfbc1fab2f1a29782 Mon Sep 17 00:00:00 2001 From: Klaus Date: Thu, 22 Jan 2026 18:09:49 +0900 Subject: [PATCH] =?UTF-8?q?HomeService=EC=9D=98=20=EC=B5=9C=EC=8B=A0=20?= =?UTF-8?q?=EC=BD=98=ED=85=90=EC=B8=A0=20=ED=85=8C=EB=A7=88=20=EB=AA=A9?= =?UTF-8?q?=EB=A1=9D=EC=97=90=EC=84=9C=20=EB=8B=A4=EC=8B=9C=EB=93=A3?= =?UTF-8?q?=EA=B8=B0=20=EC=A0=9C=EC=99=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 홈 화면의 최신 콘텐츠 테마 리스트(latestContentThemeList)에서 '다시듣기' 테마를 제외하도록 수정한다. 일본어 및 영어 번역이 적용되기 전에 필터링을 수행하여 다양한 언어 환경에서도 정상적으로 제외되도록 보장한다. AudioContentThemeService의 getActiveThemeOfContent 메서드에 테마 제외 옵션을 추가하여 필요한 곳에서만 선택적으로 사용할 수 있게 한다. --- .../kr/co/vividnext/sodalive/api/home/HomeService.kt | 3 ++- .../sodalive/content/theme/AudioContentThemeService.kt | 9 +++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/api/home/HomeService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/api/home/HomeService.kt index 11a3fe78..b5476b55 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/api/home/HomeService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/api/home/HomeService.kt @@ -106,7 +106,8 @@ class HomeService( val latestContentThemeList = contentThemeService.getActiveThemeOfContent( isAdult = isAdult, - contentType = contentType + contentType = contentType, + excludeThemes = listOf("다시듣기") ) val latestContentList = contentService.getLatestContentByTheme( diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/content/theme/AudioContentThemeService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/content/theme/AudioContentThemeService.kt index 0301f86e..f34e2b9c 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/content/theme/AudioContentThemeService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/content/theme/AudioContentThemeService.kt @@ -34,15 +34,20 @@ class AudioContentThemeService( isAdult: Boolean = false, isFree: Boolean = false, isPointAvailableOnly: Boolean = false, - contentType: ContentType + contentType: ContentType, + excludeThemes: List = emptyList() ): List { - val themesWithIds = queryRepository.getActiveThemeWithIdsOfContent( + var themesWithIds = queryRepository.getActiveThemeWithIdsOfContent( isAdult = isAdult, isFree = isFree, isPointAvailableOnly = isPointAvailableOnly, contentType = contentType ) + if (excludeThemes.isNotEmpty()) { + themesWithIds = themesWithIds.filter { it.theme !in excludeThemes } + } + /** * langContext.lang == Lang.EN || Lang.JA 일 때 번역된 콘텐츠 테마 반환 * 번역이 없으면 번역 API 호출 후 저장하고 반환