From fd3d596d5700a050d6734e1e128cd57da1551a7f Mon Sep 17 00:00:00 2001
From: Klaus <klaus@vividnext.co.kr>
Date: Fri, 13 Sep 2024 19:24:40 +0900
Subject: [PATCH] =?UTF-8?q?=EC=BD=98=ED=85=90=EC=B8=A0=20=EC=83=81?=
 =?UTF-8?q?=EC=84=B8,=20=ED=8C=94=EB=A1=9C=EC=9E=89=20=EB=A6=AC=EC=8A=A4?=
 =?UTF-8?q?=ED=8A=B8,=20=EC=8B=9C=EB=A6=AC=EC=A6=88=20=EC=83=81=EC=84=B8?=
 =?UTF-8?q?=20API=20-=20=EC=95=8C=EB=A6=BC=EA=B3=BC=20=ED=8C=94=EB=A1=9C?=
 =?UTF-8?q?=EC=9A=B0=20=EC=83=81=ED=83=9C=EA=B0=92=20=EC=B6=94=EA=B0=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../vividnext/sodalive/content/AudioContentService.kt  | 10 +++++++---
 .../sodalive/content/GetAudioContentDetailResponse.kt  |  4 +++-
 .../sodalive/content/series/ContentSeriesService.kt    |  5 +++--
 .../sodalive/content/series/GetSeriesDetailResponse.kt |  3 ++-
 .../recommend/GetCreatorFollowingAllListResponse.kt    |  7 +++++--
 .../sodalive/live/recommend/LiveRecommendRepository.kt |  6 +++---
 6 files changed, 23 insertions(+), 12 deletions(-)

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 37445a0..7fa6d25 100644
--- a/src/main/kotlin/kr/co/vividnext/sodalive/content/AudioContentService.kt
+++ b/src/main/kotlin/kr/co/vividnext/sodalive/content/AudioContentService.kt
@@ -450,8 +450,10 @@ class AudioContentService(
         val creator = explorerQueryRepository.getMember(creatorId)
             ?: throw SodaException("없는 사용자 입니다.")
 
-        val notificationUserIds = explorerQueryRepository.getNotificationUserIds(creatorId)
-        val isFollowing = notificationUserIds.contains(member.id)
+        val creatorFollowing = explorerQueryRepository.getCreatorFollowing(
+            creatorId = creatorId,
+            memberId = member.id!!
+        )
 
         // 구매 여부 확인
         val isExistsBundleAudioContent = bundleAudioContentList
@@ -640,7 +642,9 @@ class AudioContentService(
                 } else {
                     "$coverImageHost/profile/default-profile.png"
                 },
-                isFollowing = isFollowing
+                isFollowing = creatorFollowing?.isFollow ?: false,
+                isFollow = creatorFollowing?.isFollow ?: false,
+                isNotify = creatorFollowing?.isNotify ?: false
             )
         )
     }
diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/content/GetAudioContentDetailResponse.kt b/src/main/kotlin/kr/co/vividnext/sodalive/content/GetAudioContentDetailResponse.kt
index 77e5ea7..baf2cbc 100644
--- a/src/main/kotlin/kr/co/vividnext/sodalive/content/GetAudioContentDetailResponse.kt
+++ b/src/main/kotlin/kr/co/vividnext/sodalive/content/GetAudioContentDetailResponse.kt
@@ -47,5 +47,7 @@ data class AudioContentCreator(
     val creatorId: Long,
     val nickname: String,
     val profileImageUrl: String,
-    val isFollowing: Boolean
+    val isFollowing: Boolean,
+    val isFollow: Boolean,
+    val isNotify: Boolean
 )
diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/content/series/ContentSeriesService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/content/series/ContentSeriesService.kt
index 665eb2e..86a0191 100644
--- a/src/main/kotlin/kr/co/vividnext/sodalive/content/series/ContentSeriesService.kt
+++ b/src/main/kotlin/kr/co/vividnext/sodalive/content/series/ContentSeriesService.kt
@@ -61,7 +61,7 @@ class ContentSeriesService(
             throw SodaException("잘못된 시리즈 입니다.\n다시 시도해 주세요")
         }
 
-        val isFollow = explorerQueryRepository.isFollow(
+        val creatorFollowing = explorerQueryRepository.getCreatorFollowing(
             creatorId = series.member!!.id!!,
             memberId = member.id!!
         )
@@ -102,7 +102,8 @@ class ContentSeriesService(
                 creatorId = series.member!!.id!!,
                 nickname = series.member!!.nickname,
                 profileImage = "$coverImageHost/${series.member!!.profileImage}",
-                isFollow = isFollow
+                isFollow = creatorFollowing?.isFollow ?: false,
+                isNotice = creatorFollowing?.isNotify ?: false
             ),
             rentalMinPrice = rentalMinPrice,
             rentalMaxPrice = rentalMaxPrice,
diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/content/series/GetSeriesDetailResponse.kt b/src/main/kotlin/kr/co/vividnext/sodalive/content/series/GetSeriesDetailResponse.kt
index 508c441..a827760 100644
--- a/src/main/kotlin/kr/co/vividnext/sodalive/content/series/GetSeriesDetailResponse.kt
+++ b/src/main/kotlin/kr/co/vividnext/sodalive/content/series/GetSeriesDetailResponse.kt
@@ -27,6 +27,7 @@ data class GetSeriesDetailResponse(
         val creatorId: Long,
         val nickname: String,
         val profileImage: String,
-        val isFollow: Boolean
+        val isFollow: Boolean,
+        val isNotice: Boolean
     )
 }
diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/live/recommend/GetCreatorFollowingAllListResponse.kt b/src/main/kotlin/kr/co/vividnext/sodalive/live/recommend/GetCreatorFollowingAllListResponse.kt
index 2ae3bc4..286bdfc 100644
--- a/src/main/kotlin/kr/co/vividnext/sodalive/live/recommend/GetCreatorFollowingAllListResponse.kt
+++ b/src/main/kotlin/kr/co/vividnext/sodalive/live/recommend/GetCreatorFollowingAllListResponse.kt
@@ -1,13 +1,16 @@
 package kr.co.vividnext.sodalive.live.recommend
 
+import com.querydsl.core.annotations.QueryProjection
+
 data class GetCreatorFollowingAllListResponse(
     val totalCount: Int,
     val items: List<GetCreatorFollowingAllListItem>
 )
 
-data class GetCreatorFollowingAllListItem(
+data class GetCreatorFollowingAllListItem @QueryProjection constructor(
     val creatorId: Long,
     val nickname: String,
     val profileImageUrl: String,
-    val isFollow: Boolean
+    val isFollow: Boolean,
+    val isNotify: Boolean
 )
diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/live/recommend/LiveRecommendRepository.kt b/src/main/kotlin/kr/co/vividnext/sodalive/live/recommend/LiveRecommendRepository.kt
index 2032a5b..b3c3bf5 100644
--- a/src/main/kotlin/kr/co/vividnext/sodalive/live/recommend/LiveRecommendRepository.kt
+++ b/src/main/kotlin/kr/co/vividnext/sodalive/live/recommend/LiveRecommendRepository.kt
@@ -239,12 +239,12 @@ class LiveRecommendRepository(
 
         return queryFactory
             .select(
-                Projections.constructor(
-                    GetCreatorFollowingAllListItem::class.java,
+                QGetCreatorFollowingAllListItem(
                     member.id,
                     member.nickname,
                     member.profileImage.prepend("/").prepend(cloudFrontHost),
-                    Expressions.asBoolean(true)
+                    Expressions.asBoolean(true),
+                    creatorFollowing.isNotify
                 )
             )
             .from(creatorFollowing)