From 69331edabb5369a1326e72961e4cbbf00dca4645 Mon Sep 17 00:00:00 2001 From: Klaus Date: Tue, 19 Mar 2024 22:16:07 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B4=80=EB=A6=AC=EC=9E=90=20=EC=BD=98?= =?UTF-8?q?=ED=85=90=EC=B8=A0=20=EB=A6=AC=EC=8A=A4=ED=8A=B8=20-=20group=5F?= =?UTF-8?q?concat=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/content/AdminContentRepository.kt | 4 ---- .../sodalive/admin/content/AdminContentService.kt | 14 ++++++++++++++ .../admin/content/GetAdminContentListResponse.kt | 5 +++-- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/AdminContentRepository.kt b/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/AdminContentRepository.kt index 7b7118f..4164c93 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/AdminContentRepository.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/AdminContentRepository.kt @@ -75,7 +75,6 @@ class AdminAudioContentQueryRepositoryImpl( audioContent.id, audioContent.title, audioContent.detail, - Expressions.stringTemplate("GROUP_CONCAT({0})", hashTag.tag), audioContentCuration.title, audioContentCuration.id.nullif(0), audioContent.coverImage.prepend("/").prepend(imageHost), @@ -93,11 +92,8 @@ class AdminAudioContentQueryRepositoryImpl( ) .from(audioContent) .leftJoin(audioContent.curation, audioContentCuration) - .leftJoin(audioContent.audioContentHashTags, audioContentHashTag) - .leftJoin(audioContentHashTag.hashTag, hashTag) .innerJoin(audioContent.theme, audioContentTheme) .where(where) - .groupBy(audioContent.id) .offset(offset) .limit(limit) .orderBy(audioContent.releaseDate.desc()) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/AdminContentService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/AdminContentService.kt index 9c645eb..5b3e8a7 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/AdminContentService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/AdminContentService.kt @@ -30,6 +30,13 @@ class AdminContentService( val audioContentList = audioContentAndThemeList .asSequence() + .map { + val tags = repository + .getHashTagList(audioContentId = it.audioContentId) + .joinToString(" ") { tag -> tag } + it.tags = tags + it + } .map { it.contentUrl = audioContentCloudFront.generateSignedURL( resourcePath = it.contentUrl, @@ -54,6 +61,13 @@ class AdminContentService( val audioContentList = audioContentAndThemeList .asSequence() + .map { + val tags = repository + .getHashTagList(audioContentId = it.audioContentId) + .joinToString(" ") { tag -> tag } + it.tags = tags + it + } .map { it.contentUrl = audioContentCloudFront.generateSignedURL( resourcePath = it.contentUrl, diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/GetAdminContentListResponse.kt b/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/GetAdminContentListResponse.kt index 38c6974..40f974a 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/GetAdminContentListResponse.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/GetAdminContentListResponse.kt @@ -11,7 +11,6 @@ data class GetAdminContentListItem @QueryProjection constructor( val audioContentId: Long, val title: String, val detail: String, - var tags: String, val curationTitle: String?, val curationId: Long, var coverImageUrl: String, @@ -25,4 +24,6 @@ data class GetAdminContentListItem @QueryProjection constructor( val isCommentAvailable: Boolean, val date: String, val releaseDate: String? -) +) { + var tags: String = "" +}