From 3ad2256a667b1cc7589ed0859821c5c22325d91d Mon Sep 17 00:00:00 2001 From: Klaus Date: Sun, 20 Aug 2023 22:42:35 +0900 Subject: [PATCH 1/3] =?UTF-8?q?=EB=A7=88=EC=9D=B4=ED=8E=98=EC=9D=B4?= =?UTF-8?q?=EC=A7=80=20-=20=EB=9D=BC=EC=9D=B4=EB=B8=8C=20=EC=98=88?= =?UTF-8?q?=EC=95=BD=20=EC=88=98,=20=EA=B5=AC=EB=A7=A4=EB=82=B4=EC=97=AD?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reservation/LiveReservationRepository.kt | 14 ++++++++++++++ .../vividnext/sodalive/member/MemberService.kt | 17 +++++++++++++++-- .../sodalive/member/myPage/MyPageResponse.kt | 5 ++++- 3 files changed, 33 insertions(+), 3 deletions(-) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/live/reservation/LiveReservationRepository.kt b/src/main/kotlin/kr/co/vividnext/sodalive/live/reservation/LiveReservationRepository.kt index 07a396f..4191d46 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/live/reservation/LiveReservationRepository.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/live/reservation/LiveReservationRepository.kt @@ -25,6 +25,8 @@ interface LiveReservationQueryRepository { reservationId: Long, memberId: Long ): LiveReservation? + + fun getReservationCount(memberId: Long): Int } @Repository @@ -97,4 +99,16 @@ class LiveReservationQueryRepositoryImpl(private val queryFactory: JPAQueryFacto ) .fetchFirst() } + + override fun getReservationCount(memberId: Long): Int { + return queryFactory + .selectFrom(liveReservation) + .where( + liveReservation.member.id.eq(memberId) + .and(liveReservation.isActive.isTrue) + .and(liveReservation.room.isActive.isTrue) + ) + .fetch() + .size + } } diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/member/MemberService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/member/MemberService.kt index db4564a..743d2c2 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/member/MemberService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/member/MemberService.kt @@ -7,8 +7,10 @@ import kr.co.vividnext.sodalive.can.payment.CanPaymentService import kr.co.vividnext.sodalive.can.use.CanUsage import kr.co.vividnext.sodalive.common.ApiResponse import kr.co.vividnext.sodalive.common.SodaException +import kr.co.vividnext.sodalive.content.order.OrderService import kr.co.vividnext.sodalive.email.SendEmailService import kr.co.vividnext.sodalive.jwt.TokenProvider +import kr.co.vividnext.sodalive.live.reservation.LiveReservationRepository import kr.co.vividnext.sodalive.live.room.detail.GetRoomDetailUser import kr.co.vividnext.sodalive.member.block.BlockMember import kr.co.vividnext.sodalive.member.block.BlockMemberRepository @@ -66,7 +68,9 @@ class MemberService( private val signOutRepository: SignOutRepository, private val nicknameChangeLogRepository: NicknameChangeLogRepository, private val memberTagRepository: MemberTagRepository, + private val liveReservationRepository: LiveReservationRepository, + private val orderService: OrderService, private val emailService: SendEmailService, private val canPaymentService: CanPaymentService, private val memberNotificationService: MemberNotificationService, @@ -165,6 +169,14 @@ class MemberService( } fun getMyPage(member: Member, container: String): MyPageResponse { + val liveReservationCount = liveReservationRepository.getReservationCount(memberId = member.id!!) + + val orderList = orderService.getAudioContentOrderList( + member = member, + offset = 0, + limit = 4 + ) + return MyPageResponse( nickname = member.nickname, profileUrl = if (member.profileImage != null) { @@ -178,8 +190,9 @@ class MemberService( instagramUrl = member.instagramUrl, websiteUrl = member.websiteUrl, blogUrl = member.blogUrl, - liveReservationCount = 0, - isAuth = member.auth != null + liveReservationCount = liveReservationCount, + isAuth = member.auth != null, + orderList = orderList ) } diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/member/myPage/MyPageResponse.kt b/src/main/kotlin/kr/co/vividnext/sodalive/member/myPage/MyPageResponse.kt index d357f34..54d7a33 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/member/myPage/MyPageResponse.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/member/myPage/MyPageResponse.kt @@ -1,5 +1,7 @@ package kr.co.vividnext.sodalive.member.myPage +import kr.co.vividnext.sodalive.content.order.GetAudioContentOrderListResponse + data class MyPageResponse( val nickname: String, val profileUrl: String, @@ -10,5 +12,6 @@ data class MyPageResponse( val websiteUrl: String? = null, val blogUrl: String? = null, val liveReservationCount: Int, - val isAuth: Boolean + val isAuth: Boolean, + val orderList: GetAudioContentOrderListResponse ) -- 2.40.1 From 1d217b9f7545d5ed467a0b55408e91be3a48887a Mon Sep 17 00:00:00 2001 From: Klaus Date: Sun, 20 Aug 2023 22:51:06 +0900 Subject: [PATCH 2/3] =?UTF-8?q?fcm=20-=20ios=20=EC=9D=BC=20=EA=B2=BD?= =?UTF-8?q?=EC=9A=B0=20notification=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kr/co/vividnext/sodalive/fcm/FcmService.kt | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/fcm/FcmService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/fcm/FcmService.kt index 7a678fa..0f27f69 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/fcm/FcmService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/fcm/FcmService.kt @@ -2,6 +2,7 @@ package kr.co.vividnext.sodalive.fcm import com.google.firebase.messaging.FirebaseMessaging import com.google.firebase.messaging.MulticastMessage +import com.google.firebase.messaging.Notification import org.springframework.scheduling.annotation.Async import org.springframework.stereotype.Service @@ -18,10 +19,22 @@ class FcmService { contentId: Long? = null ) { val multicastMessage = MulticastMessage.builder() - .putData("title", title) - .putData("message", message) .addAllTokens(tokens) + if (container == "ios") { + multicastMessage + .setNotification( + Notification.builder() + .setTitle(title) + .setBody(message) + .build() + ) + } else { + multicastMessage + .putData("title", title) + .putData("message", message) + } + if (roomId != null) { multicastMessage.putData("room_id", roomId.toString()) } -- 2.40.1 From 73988d7b2c743894a7ab3a65bab88849a27d3eaa Mon Sep 17 00:00:00 2001 From: Klaus Date: Sun, 20 Aug 2023 23:27:42 +0900 Subject: [PATCH 3/3] =?UTF-8?q?=EB=9D=BC=EC=9D=B4=EB=B8=8C=20=EC=A0=95?= =?UTF-8?q?=EB=B3=B4=20-=2019=EA=B8=88=20=EC=97=AC=EB=B6=80=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 --- .../kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomService.kt | 1 + .../co/vividnext/sodalive/live/room/info/GetRoomInfoResponse.kt | 1 + 2 files changed, 2 insertions(+) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomService.kt index 6f04a46..0c00ffe 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomService.kt @@ -672,6 +672,7 @@ class LiveRoomService( "$cloudFrontHost/profile/default-profile.png" }, isFollowing = isFollowing, + isAdult = room.isAdult, participantsCount = roomInfo.listenerCount + roomInfo.speakerCount + roomInfo.managerCount, totalAvailableParticipantsCount = room.numberOfPeople, speakerList = roomInfo.speakerList, diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/live/room/info/GetRoomInfoResponse.kt b/src/main/kotlin/kr/co/vividnext/sodalive/live/room/info/GetRoomInfoResponse.kt index 69ad47d..04c04f9 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/live/room/info/GetRoomInfoResponse.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/live/room/info/GetRoomInfoResponse.kt @@ -12,6 +12,7 @@ data class GetRoomInfoResponse( val creatorNickname: String, val creatorProfileUrl: String, val isFollowing: Boolean, + val isAdult: Boolean, val participantsCount: Int, val totalAvailableParticipantsCount: Int, val speakerList: List, -- 2.40.1