콘텐츠 메인 탭

- 큐레이션 조회 로직 수정
This commit is contained in:
Klaus 2025-02-14 14:39:22 +09:00
parent 3caaa151f4
commit cf538a2c36
5 changed files with 66 additions and 15 deletions

View File

@ -15,6 +15,7 @@ import kr.co.vividnext.sodalive.content.main.banner.AudioContentBanner
import kr.co.vividnext.sodalive.content.main.banner.QAudioContentBanner.audioContentBanner import kr.co.vividnext.sodalive.content.main.banner.QAudioContentBanner.audioContentBanner
import kr.co.vividnext.sodalive.content.main.curation.AudioContentCuration import kr.co.vividnext.sodalive.content.main.curation.AudioContentCuration
import kr.co.vividnext.sodalive.content.main.curation.QAudioContentCuration.audioContentCuration import kr.co.vividnext.sodalive.content.main.curation.QAudioContentCuration.audioContentCuration
import kr.co.vividnext.sodalive.content.main.curation.QAudioContentCurationItem.audioContentCurationItem
import kr.co.vividnext.sodalive.content.main.tab.QAudioContentMainTab.audioContentMainTab import kr.co.vividnext.sodalive.content.main.tab.QAudioContentMainTab.audioContentMainTab
import kr.co.vividnext.sodalive.content.order.QOrder.order import kr.co.vividnext.sodalive.content.order.QOrder.order
import kr.co.vividnext.sodalive.content.pin.QPinContent.pinContent import kr.co.vividnext.sodalive.content.pin.QPinContent.pinContent
@ -109,6 +110,12 @@ interface AudioContentQueryRepository {
contentType: ContentType contentType: ContentType
): List<GetAudioContentMainItem> ): List<GetAudioContentMainItem>
fun findAudioContentByCurationIdV2(
curationId: Long,
memberId: Long,
isAdult: Boolean
): List<GetAudioContentMainItem>
fun getAudioContentRanking( fun getAudioContentRanking(
cloudfrontHost: String, cloudfrontHost: String,
isAdult: Boolean, isAdult: Boolean,
@ -648,6 +655,50 @@ class AudioContentQueryRepositoryImpl(
.fetch() .fetch()
} }
override fun findAudioContentByCurationIdV2(
curationId: Long,
memberId: Long,
isAdult: Boolean
): List<GetAudioContentMainItem> {
val blockMemberCondition = blockMember.member.id.eq(member.id)
.and(blockMember.isActive.isTrue)
.and(blockMember.blockedMember.id.eq(memberId))
var where = audioContentCuration.isActive.isTrue
.and(audioContentCurationItem.isActive.isTrue)
.and(audioContent.isActive.isTrue)
.and(audioContent.member.isNotNull)
.and(audioContent.duration.isNotNull)
.and(audioContent.member.isActive.isTrue)
.and(audioContentCuration.id.eq(curationId))
.and(blockMember.id.isNull)
if (!isAdult) {
where = where.and(audioContent.isAdult.isFalse)
}
return queryFactory
.select(
QGetAudioContentMainItem(
audioContent.id,
audioContent.coverImage.prepend("/").prepend(imageHost),
audioContent.title,
member.id,
member.profileImage.prepend("/").prepend(imageHost),
member.nickname,
audioContent.price,
audioContent.duration
)
)
.from(audioContentCurationItem)
.innerJoin(audioContentCurationItem.content, audioContent)
.innerJoin(audioContentCurationItem.curation, audioContentCuration)
.innerJoin(audioContent.member, member)
.leftJoin(blockMember).on(blockMemberCondition)
.where(where)
.fetch()
}
override fun getAudioContentRanking( override fun getAudioContentRanking(
cloudfrontHost: String, cloudfrontHost: String,
isAdult: Boolean, isAdult: Boolean,

View File

@ -64,10 +64,10 @@ class AudioContentMainTabAlarmService(
.map { .map {
GetContentCurationResponse( GetContentCurationResponse(
title = it.title, title = it.title,
items = contentRepository.findAudioContentByCurationId( items = contentRepository.findAudioContentByCurationIdV2(
curationId = it.id!!, curationId = it.id!!,
isAdult = isAdult, memberId = memberId,
contentType = ContentType.ALL isAdult = isAdult
) )
) )
} }

View File

@ -65,10 +65,10 @@ class AudioContentMainTabAsmrService(
.map { .map {
GetContentCurationResponse( GetContentCurationResponse(
title = it.title, title = it.title,
items = contentRepository.findAudioContentByCurationId( items = contentRepository.findAudioContentByCurationIdV2(
curationId = it.id!!, curationId = it.id!!,
isAdult = isAdult, memberId = memberId,
contentType = ContentType.ALL isAdult = isAdult
) )
) )
} }

View File

@ -38,10 +38,10 @@ class AudioContentMainTabFreeService(
.map { .map {
GetContentCurationResponse( GetContentCurationResponse(
title = it.title, title = it.title,
items = contentRepository.findAudioContentByCurationId( items = contentRepository.findAudioContentByCurationIdV2(
curationId = it.id!!, curationId = it.id!!,
isAdult = isAdult, memberId = memberId,
contentType = ContentType.ALL isAdult = isAdult
) )
) )
} }
@ -68,10 +68,10 @@ class AudioContentMainTabFreeService(
.map { .map {
GetContentCurationResponse( GetContentCurationResponse(
title = it.title, title = it.title,
items = contentRepository.findAudioContentByCurationId( items = contentRepository.findAudioContentByCurationIdV2(
curationId = it.id!!, curationId = it.id!!,
isAdult = isAdult, memberId = memberId,
contentType = ContentType.ALL isAdult = isAdult
) )
) )
} }

View File

@ -65,10 +65,10 @@ class AudioContentMainTabLiveReplayService(
.map { .map {
GetContentCurationResponse( GetContentCurationResponse(
title = it.title, title = it.title,
items = contentRepository.findAudioContentByCurationId( items = contentRepository.findAudioContentByCurationIdV2(
curationId = it.id!!, curationId = it.id!!,
isAdult = isAdult, memberId = memberId,
contentType = ContentType.ALL isAdult = isAdult
) )
) )
} }