fix(recommendation): 추천 탭 배너 조회 조건을 보정한다
This commit is contained in:
@@ -53,7 +53,11 @@ class HomeRecommendationFacade(
|
||||
memberId = member?.id,
|
||||
includeAdultLives = includeAdult
|
||||
).map { it.toItem() },
|
||||
banners = queryService.findHomeBanners(HOME_BANNER_LIMIT, member?.id)
|
||||
banners = queryService.findHomeBanners(
|
||||
limit = HOME_BANNER_LIMIT,
|
||||
memberId = member?.id,
|
||||
includeAdultBanners = includeAdult
|
||||
)
|
||||
.map { RecommendationBannerResponse.from(it.toBanner()) },
|
||||
recentlyActiveCreators = queryService.findRecentlyActiveCreators(
|
||||
HOME_ACTIVE_CREATOR_LIMIT,
|
||||
|
||||
@@ -63,7 +63,8 @@ class DefaultAudioRecommendationQueryRepository(
|
||||
.leftJoin(series.member, seriesOwner)
|
||||
.where(
|
||||
audioContentBanner.isActive.isTrue,
|
||||
audioContentBanner.tab.isNull,
|
||||
audioContentBanner.tab.id.eq(2L),
|
||||
adultBannerCondition(canViewAdultContent),
|
||||
activeBannerTargetCondition(memberId, bannerCreator, seriesOwner)
|
||||
)
|
||||
.orderBy(audioContentBanner.orders.asc(), randomTieBreaker.asc())
|
||||
@@ -544,6 +545,10 @@ class DefaultAudioRecommendationQueryRepository(
|
||||
return if (canViewAdultContent) null else series.isAdult.isFalse
|
||||
}
|
||||
|
||||
private fun adultBannerCondition(canViewAdultContent: Boolean): BooleanExpression? {
|
||||
return if (canViewAdultContent) null else audioContentBanner.isAdult.isFalse
|
||||
}
|
||||
|
||||
private fun adultAudioCondition(canViewAdultContent: Boolean): BooleanExpression? {
|
||||
return if (canViewAdultContent) null else audioContent.isAdult.isFalse
|
||||
}
|
||||
|
||||
@@ -87,7 +87,8 @@ class DefaultHomeRecommendationQueryRepository(
|
||||
|
||||
override fun findHomeBanners(
|
||||
limit: Int,
|
||||
memberId: Long?
|
||||
memberId: Long?,
|
||||
includeAdultBanners: Boolean
|
||||
): List<HomeBannerRecommendationRecord> {
|
||||
val bannerCreator = QMember("bannerCreator")
|
||||
val seriesOwner = QMember("seriesOwner")
|
||||
@@ -115,6 +116,7 @@ class DefaultHomeRecommendationQueryRepository(
|
||||
.where(
|
||||
audioContentBanner.isActive.isTrue,
|
||||
audioContentBanner.tab.isNull,
|
||||
includeAdultBannerCondition(includeAdultBanners),
|
||||
activeBannerTargetCondition(memberId, bannerCreator, seriesOwner)
|
||||
)
|
||||
.orderBy(audioContentBanner.orders.asc(), randomTieBreaker.asc())
|
||||
@@ -1265,6 +1267,10 @@ class DefaultHomeRecommendationQueryRepository(
|
||||
return if (includeAdultCommunities) null else creatorCommunity.isAdult.isFalse
|
||||
}
|
||||
|
||||
private fun includeAdultBannerCondition(includeAdultBanners: Boolean): BooleanExpression? {
|
||||
return if (includeAdultBanners) null else audioContentBanner.isAdult.isFalse
|
||||
}
|
||||
|
||||
private fun includeAdultLiveCondition(includeAdultLives: Boolean): BooleanExpression? {
|
||||
return if (includeAdultLives) null else liveRoom.isAdult.isFalse
|
||||
}
|
||||
|
||||
@@ -43,9 +43,10 @@ class HomeRecommendationQueryService(
|
||||
|
||||
fun findHomeBanners(
|
||||
limit: Int = DEFAULT_BANNER_LIMIT,
|
||||
memberId: Long? = null
|
||||
memberId: Long? = null,
|
||||
includeAdultBanners: Boolean = false
|
||||
): List<HomeBannerRecommendationRecord> {
|
||||
return queryPort.findHomeBanners(limit, memberId)
|
||||
return queryPort.findHomeBanners(limit, memberId, includeAdultBanners)
|
||||
}
|
||||
|
||||
fun findRecentlyActiveCreators(
|
||||
|
||||
@@ -13,7 +13,8 @@ interface HomeRecommendationQueryPort {
|
||||
|
||||
fun findHomeBanners(
|
||||
limit: Int,
|
||||
memberId: Long? = null
|
||||
memberId: Long? = null,
|
||||
includeAdultBanners: Boolean = false
|
||||
): List<HomeBannerRecommendationRecord>
|
||||
|
||||
fun findRecentlyActiveCreators(
|
||||
|
||||
Reference in New Issue
Block a user