From 22f274fd321729835ad2bf7edb5062b7d57ddc5c Mon Sep 17 00:00:00 2001 From: Klaus <klaus@vividnext.co.kr> Date: Fri, 2 Feb 2024 20:03:23 +0900 Subject: [PATCH] =?UTF-8?q?=EC=BD=98=ED=85=90=EC=B8=A0=20=EC=A1=B0?= =?UTF-8?q?=ED=9A=8C=20-=20=EC=A1=B0=ED=9A=8C=20=EC=A1=B0=EA=B1=B4?= =?UTF-8?q?=EC=97=90=20=EC=B9=B4=ED=85=8C=EA=B3=A0=EB=A6=AC=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../vividnext/sodalive/content/AudioContentController.kt | 2 ++ .../vividnext/sodalive/content/AudioContentRepository.kt | 9 +++++++++ .../co/vividnext/sodalive/content/AudioContentService.kt | 2 ++ 3 files changed, 13 insertions(+) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/content/AudioContentController.kt b/src/main/kotlin/kr/co/vividnext/sodalive/content/AudioContentController.kt index d86afd3..409adb8 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/content/AudioContentController.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/content/AudioContentController.kt @@ -105,6 +105,7 @@ class AudioContentController(private val service: AudioContentService) { fun getAudioContentList( @RequestParam("creator-id") creatorId: Long, @RequestParam("sort-type", required = false) sortType: SortType = SortType.NEWEST, + @RequestParam("category-id", required = false) categoryId: Long = 0, @AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?, pageable: Pageable ) = run { @@ -114,6 +115,7 @@ class AudioContentController(private val service: AudioContentService) { service.getAudioContentList( creatorId = creatorId, sortType = sortType, + categoryId = categoryId, member = member, offset = pageable.offset, limit = pageable.pageSize.toLong() diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/content/AudioContentRepository.kt b/src/main/kotlin/kr/co/vividnext/sodalive/content/AudioContentRepository.kt index 4e90a0e..ff06f60 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/content/AudioContentRepository.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/content/AudioContentRepository.kt @@ -4,6 +4,7 @@ import com.querydsl.core.types.dsl.Expressions import com.querydsl.jpa.impl.JPAQueryFactory import kr.co.vividnext.sodalive.content.QAudioContent.audioContent import kr.co.vividnext.sodalive.content.QBundleAudioContent.bundleAudioContent +import kr.co.vividnext.sodalive.content.category.QCategoryContent.categoryContent import kr.co.vividnext.sodalive.content.comment.QAudioContentComment.audioContentComment import kr.co.vividnext.sodalive.content.like.QAudioContentLike.audioContentLike import kr.co.vividnext.sodalive.content.main.GetAudioContentMainItem @@ -37,6 +38,7 @@ interface AudioContentQueryRepository { coverImageHost: String, isAdult: Boolean = false, sortType: SortType = SortType.NEWEST, + categoryId: Long = 0, offset: Long = 0, limit: Long = 10 ): List<GetAudioContentListItem> @@ -144,6 +146,7 @@ class AudioContentQueryRepositoryImpl(private val queryFactory: JPAQueryFactory) coverImageHost: String, isAdult: Boolean, sortType: SortType, + categoryId: Long, offset: Long, limit: Long ): List<GetAudioContentListItem> { @@ -163,6 +166,10 @@ class AudioContentQueryRepositoryImpl(private val queryFactory: JPAQueryFactory) where = where.and(audioContent.isAdult.isFalse) } + if (categoryId > 0) { + where = where.and(categoryContent.category.id.eq(categoryId)) + } + return queryFactory .select( QGetAudioContentListItem( @@ -180,6 +187,8 @@ class AudioContentQueryRepositoryImpl(private val queryFactory: JPAQueryFactory) ) ) .from(audioContent) + .leftJoin(categoryContent) + .on(audioContent.id.eq(categoryContent.content.id).and(categoryContent.isActive.ne(false))) .leftJoin(pinContent) .on(audioContent.id.eq(pinContent.content.id).and(pinContent.isActive.ne(false))) .where(where) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/content/AudioContentService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/content/AudioContentService.kt index 9c52cb4..832a9f9 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/content/AudioContentService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/content/AudioContentService.kt @@ -624,6 +624,7 @@ class AudioContentService( creatorId: Long, sortType: SortType, member: Member, + categoryId: Long = 0, offset: Long, limit: Long ): GetAudioContentListResponse { @@ -637,6 +638,7 @@ class AudioContentService( coverImageHost = coverImageHost, isAdult = member.auth != null, sortType = sortType, + categoryId = categoryId, offset = offset, limit = limit )