feat(banner): v2 콘텐츠 추천에 예약 기간 필터를 적용한다

This commit is contained in:
2026-10-27 20:49:17 +09:00
parent 0a46d8a123
commit 69e6b7d24c
2 changed files with 64 additions and 2 deletions
@@ -10,6 +10,7 @@ import com.querydsl.jpa.impl.JPAQueryFactory
import kr.co.vividnext.sodalive.content.QAudioContent.audioContent
import kr.co.vividnext.sodalive.content.main.banner.AudioContentBannerType
import kr.co.vividnext.sodalive.content.main.banner.QAudioContentBanner.audioContentBanner
import kr.co.vividnext.sodalive.content.main.banner.isVisibleAt
import kr.co.vividnext.sodalive.content.theme.QAudioContentTheme.audioContentTheme
import kr.co.vividnext.sodalive.content.translation.ContentTranslationRepository
import kr.co.vividnext.sodalive.creator.admin.content.series.QSeries.series
@@ -34,6 +35,7 @@ import org.springframework.stereotype.Repository
import java.math.BigDecimal
import java.math.BigInteger
import java.time.LocalDateTime
import java.time.ZoneOffset
import javax.persistence.EntityManager
@Repository
@@ -42,7 +44,8 @@ class DefaultAudioRecommendationQueryRepository(
private val entityManager: EntityManager,
private val contentTranslationRepository: ContentTranslationRepository,
@Value("\${cloud.aws.cloud-front.host}")
private val cloudFrontHost: String
private val cloudFrontHost: String,
private val nowProvider: () -> LocalDateTime = { LocalDateTime.now(ZoneOffset.UTC) }
) : AudioRecommendationQueryRepository {
override fun findBanners(
limit: Int,
@@ -74,6 +77,7 @@ class DefaultAudioRecommendationQueryRepository(
audioContentBanner.isActive.isTrue,
audioContentBanner.tab.id.eq(2L),
audioContentBanner.lang.eq(lang),
audioContentBanner.isVisibleAt(nowProvider()),
adultBannerCondition(canViewAdultContent),
activeBannerTargetCondition(memberId, bannerCreator, seriesOwner)
)