refactor(content-main): 홈·다시듣기·시리즈 탭 정책 호출을 통합한다

This commit is contained in:
2026-09-17 20:18:45 +09:00
parent 13821a33ea
commit 190c63124b
3 changed files with 17 additions and 10 deletions
@@ -5,7 +5,7 @@ import kr.co.vividnext.sodalive.content.main.GetAudioContentRankingItem
import kr.co.vividnext.sodalive.content.main.banner.AudioContentBannerService
import kr.co.vividnext.sodalive.event.EventService
import kr.co.vividnext.sodalive.member.Member
import kr.co.vividnext.sodalive.member.contentpreference.isAdultVisibleByPolicy
import kr.co.vividnext.sodalive.member.contentpreference.MemberContentPreferenceService
import kr.co.vividnext.sodalive.notice.ServiceNoticeService
import kr.co.vividnext.sodalive.rank.RankingService
import org.springframework.stereotype.Service
@@ -19,7 +19,8 @@ class AudioContentMainTabHomeService(
private val noticeService: ServiceNoticeService,
private val bannerService: AudioContentBannerService,
private val rankingService: RankingService,
private val eventService: EventService
private val eventService: EventService,
private val memberContentPreferenceService: MemberContentPreferenceService
) {
fun fetchData(
isAdultContentVisible: Boolean,
@@ -43,7 +44,9 @@ class AudioContentMainTabHomeService(
val formattedLastMonday = startDate.format(startDateFormatter)
val formattedLastSunday = endDate.format(endDateFormatter)
val isAdult = member?.let { isAdultVisibleByPolicy(it, isAdultContentVisible) } ?: false
val isAdult = member
?.let { memberContentPreferenceService.isAdultVisibleForQuery(it, isAdultContentVisible) }
?: false
// 최근 공지사항
val latestNotice = noticeService.getLatestNotice()
@@ -131,7 +134,9 @@ class AudioContentMainTabHomeService(
contentType: ContentType,
member: Member?
): List<GetAudioContentRankingItem> {
val isAdult = member?.let { isAdultVisibleByPolicy(it, isAdultContentVisible) } ?: false
val isAdult = member
?.let { memberContentPreferenceService.isAdultVisibleForQuery(it, isAdultContentVisible) }
?: false
val currentDateTime = LocalDateTime.now()
val startDate = currentDateTime
@@ -9,7 +9,7 @@ import kr.co.vividnext.sodalive.content.main.tab.AudioContentMainTabRepository
import kr.co.vividnext.sodalive.content.main.tab.GetContentCurationResponse
import kr.co.vividnext.sodalive.event.EventService
import kr.co.vividnext.sodalive.member.Member
import kr.co.vividnext.sodalive.member.contentpreference.isAdultVisibleByPolicy
import kr.co.vividnext.sodalive.member.contentpreference.MemberContentPreferenceService
import kr.co.vividnext.sodalive.rank.RankingService
import org.springframework.stereotype.Service
@@ -20,14 +20,15 @@ class AudioContentMainTabLiveReplayService(
private val contentRepository: AudioContentRepository,
private val rankingService: RankingService,
private val eventService: EventService,
private val curationRepository: AudioContentCurationQueryRepository
private val curationRepository: AudioContentCurationQueryRepository,
private val memberContentPreferenceService: MemberContentPreferenceService
) {
fun fetchData(
isAdultContentVisible: Boolean,
contentType: ContentType,
member: Member
): GetContentMainTabLiveReplayResponse {
val isAdult = isAdultVisibleByPolicy(member, isAdultContentVisible)
val isAdult = memberContentPreferenceService.isAdultVisibleForQuery(member, isAdultContentVisible)
val memberId = member.id!!
val theme = "다시듣기"
val tabId = 6L
@@ -8,7 +8,7 @@ import kr.co.vividnext.sodalive.content.series.ContentSeriesService
import kr.co.vividnext.sodalive.content.series.GetSeriesListResponse
import kr.co.vividnext.sodalive.event.EventService
import kr.co.vividnext.sodalive.member.Member
import kr.co.vividnext.sodalive.member.contentpreference.isAdultVisibleByPolicy
import kr.co.vividnext.sodalive.member.contentpreference.MemberContentPreferenceService
import kr.co.vividnext.sodalive.rank.RankingService
import org.springframework.stereotype.Service
import java.time.DayOfWeek
@@ -24,14 +24,15 @@ class AudioContentMainTabSeriesService(
private val rankingService: RankingService,
private val recommendSeriesRepository: RecommendSeriesRepository,
private val eventService: EventService,
private val curationRepository: AudioContentCurationQueryRepository
private val curationRepository: AudioContentCurationQueryRepository,
private val memberContentPreferenceService: MemberContentPreferenceService
) {
fun fetchData(
isAdultContentVisible: Boolean,
contentType: ContentType,
member: Member
): GetContentMainTabSeriesResponse {
val isAdult = isAdultVisibleByPolicy(member, isAdultContentVisible)
val isAdult = memberContentPreferenceService.isAdultVisibleForQuery(member, isAdultContentVisible)
val memberId = member.id!!
// 메인 배너 (시리즈)