Merge pull request '콘텐츠 메인 시리즈 탭 - 장르별 시리즈' (#266) from test into main

Reviewed-on: #266
This commit is contained in:
klaus 2025-02-19 12:52:17 +00:00
commit 84deaaa970
3 changed files with 25 additions and 6 deletions

View File

@ -58,7 +58,7 @@ class AudioContentMainTabSeriesService(
)
// 시리즈 장르
val genreList = seriesService.getGenreList(isAdult = isAdult)
val genreList = seriesService.getGenreList(memberId = memberId, isAdult = isAdult)
// 장르별 추천 시리즈
val recommendSeriesList = if (genreList.isNotEmpty()) {

View File

@ -37,7 +37,7 @@ interface ContentSeriesQueryRepository {
fun getRecommendSeriesList(isAuth: Boolean, contentType: ContentType, limit: Long): List<Series>
fun getOriginalAudioDramaList(memberId: Long, isAdult: Boolean, offset: Long = 0, limit: Long = 20): List<Series>
fun getOriginalAudioDramaTotalCount(memberId: Long, isAdult: Boolean): Int
fun getGenreList(isAdult: Boolean): List<GetSeriesGenreListResponse>
fun getGenreList(isAdult: Boolean, memberId: Long): List<GetSeriesGenreListResponse>
fun findByCurationId(curationId: Long, memberId: Long, isAdult: Boolean): List<Series>
}
@ -191,17 +191,36 @@ class ContentSeriesQueryRepositoryImpl(
.size
}
override fun getGenreList(isAdult: Boolean): List<GetSeriesGenreListResponse> {
override fun getGenreList(isAdult: Boolean, memberId: Long): List<GetSeriesGenreListResponse> {
val blockMemberCondition = blockMember.member.id.eq(member.id)
.and(blockMember.isActive.isTrue)
.and(blockMember.blockedMember.id.eq(memberId))
var where = seriesGenre.isActive.isTrue
.and(series.isActive.isTrue)
.and(audioContent.isActive.isTrue)
.and(member.isActive.isTrue)
.and(member.isNotNull)
.and(member.role.eq(MemberRole.CREATOR))
.and(audioContent.duration.isNotNull)
.and(audioContent.limited.isNull)
.and(blockMember.id.isNull)
if (!isAdult) {
where = where.and(seriesGenre.isAdult.isFalse)
.and(series.isAdult.isFalse)
}
return queryFactory
.select(QGetSeriesGenreListResponse(seriesGenre.id, seriesGenre.genre))
.from(seriesGenre)
.from(seriesContent)
.innerJoin(seriesContent.series, series)
.innerJoin(series.genre, seriesGenre)
.innerJoin(seriesContent.content, audioContent)
.innerJoin(series.member, member)
.leftJoin(blockMember).on(blockMemberCondition)
.where(where)
.groupBy(seriesGenre.id)
.orderBy(seriesGenre.orders.asc())
.fetch()
}

View File

@ -44,8 +44,8 @@ class ContentSeriesService(
return seriesToSeriesListItem(originalAudioDramaList, isAdult)
}
fun getGenreList(isAdult: Boolean): List<GetSeriesGenreListResponse> {
return repository.getGenreList(isAdult = isAdult)
fun getGenreList(memberId: Long, isAdult: Boolean): List<GetSeriesGenreListResponse> {
return repository.getGenreList(memberId = memberId, isAdult = isAdult)
}
fun getSeriesList(