test #258
@@ -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,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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
 | 
				
			||||||
                    )
 | 
					                    )
 | 
				
			||||||
                )
 | 
					                )
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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
 | 
				
			||||||
                    )
 | 
					                    )
 | 
				
			||||||
                )
 | 
					                )
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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
 | 
				
			||||||
                    )
 | 
					                    )
 | 
				
			||||||
                )
 | 
					                )
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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
 | 
				
			||||||
                    )
 | 
					                    )
 | 
				
			||||||
                )
 | 
					                )
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user