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.content.main.banner.AudioContentBannerService
import kr.co.vividnext.sodalive.event.EventService import kr.co.vividnext.sodalive.event.EventService
import kr.co.vividnext.sodalive.member.Member 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.notice.ServiceNoticeService
import kr.co.vividnext.sodalive.rank.RankingService import kr.co.vividnext.sodalive.rank.RankingService
import org.springframework.stereotype.Service import org.springframework.stereotype.Service
@@ -19,7 +19,8 @@ class AudioContentMainTabHomeService(
private val noticeService: ServiceNoticeService, private val noticeService: ServiceNoticeService,
private val bannerService: AudioContentBannerService, private val bannerService: AudioContentBannerService,
private val rankingService: RankingService, private val rankingService: RankingService,
private val eventService: EventService private val eventService: EventService,
private val memberContentPreferenceService: MemberContentPreferenceService
) { ) {
fun fetchData( fun fetchData(
isAdultContentVisible: Boolean, isAdultContentVisible: Boolean,
@@ -43,7 +44,9 @@ class AudioContentMainTabHomeService(
val formattedLastMonday = startDate.format(startDateFormatter) val formattedLastMonday = startDate.format(startDateFormatter)
val formattedLastSunday = endDate.format(endDateFormatter) 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() val latestNotice = noticeService.getLatestNotice()
@@ -131,7 +134,9 @@ class AudioContentMainTabHomeService(
contentType: ContentType, contentType: ContentType,
member: Member? member: Member?
): List<GetAudioContentRankingItem> { ): List<GetAudioContentRankingItem> {
val isAdult = member?.let { isAdultVisibleByPolicy(it, isAdultContentVisible) } ?: false val isAdult = member
?.let { memberContentPreferenceService.isAdultVisibleForQuery(it, isAdultContentVisible) }
?: false
val currentDateTime = LocalDateTime.now() val currentDateTime = LocalDateTime.now()
val startDate = currentDateTime 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.content.main.tab.GetContentCurationResponse
import kr.co.vividnext.sodalive.event.EventService import kr.co.vividnext.sodalive.event.EventService
import kr.co.vividnext.sodalive.member.Member 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 kr.co.vividnext.sodalive.rank.RankingService
import org.springframework.stereotype.Service import org.springframework.stereotype.Service
@@ -20,14 +20,15 @@ class AudioContentMainTabLiveReplayService(
private val contentRepository: AudioContentRepository, private val contentRepository: AudioContentRepository,
private val rankingService: RankingService, private val rankingService: RankingService,
private val eventService: EventService, private val eventService: EventService,
private val curationRepository: AudioContentCurationQueryRepository private val curationRepository: AudioContentCurationQueryRepository,
private val memberContentPreferenceService: MemberContentPreferenceService
) { ) {
fun fetchData( fun fetchData(
isAdultContentVisible: Boolean, isAdultContentVisible: Boolean,
contentType: ContentType, contentType: ContentType,
member: Member member: Member
): GetContentMainTabLiveReplayResponse { ): GetContentMainTabLiveReplayResponse {
val isAdult = isAdultVisibleByPolicy(member, isAdultContentVisible) val isAdult = memberContentPreferenceService.isAdultVisibleForQuery(member, isAdultContentVisible)
val memberId = member.id!! val memberId = member.id!!
val theme = "다시듣기" val theme = "다시듣기"
val tabId = 6L 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.content.series.GetSeriesListResponse
import kr.co.vividnext.sodalive.event.EventService import kr.co.vividnext.sodalive.event.EventService
import kr.co.vividnext.sodalive.member.Member 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 kr.co.vividnext.sodalive.rank.RankingService
import org.springframework.stereotype.Service import org.springframework.stereotype.Service
import java.time.DayOfWeek import java.time.DayOfWeek
@@ -24,14 +24,15 @@ class AudioContentMainTabSeriesService(
private val rankingService: RankingService, private val rankingService: RankingService,
private val recommendSeriesRepository: RecommendSeriesRepository, private val recommendSeriesRepository: RecommendSeriesRepository,
private val eventService: EventService, private val eventService: EventService,
private val curationRepository: AudioContentCurationQueryRepository private val curationRepository: AudioContentCurationQueryRepository,
private val memberContentPreferenceService: MemberContentPreferenceService
) { ) {
fun fetchData( fun fetchData(
isAdultContentVisible: Boolean, isAdultContentVisible: Boolean,
contentType: ContentType, contentType: ContentType,
member: Member member: Member
): GetContentMainTabSeriesResponse { ): GetContentMainTabSeriesResponse {
val isAdult = isAdultVisibleByPolicy(member, isAdultContentVisible) val isAdult = memberContentPreferenceService.isAdultVisibleForQuery(member, isAdultContentVisible)
val memberId = member.id!! val memberId = member.id!!
// 메인 배너 (시리즈) // 메인 배너 (시리즈)