From 3ad2256a667b1cc7589ed0859821c5c22325d91d Mon Sep 17 00:00:00 2001 From: Klaus Date: Sun, 20 Aug 2023 22:42:35 +0900 Subject: [PATCH] =?UTF-8?q?=EB=A7=88=EC=9D=B4=ED=8E=98=EC=9D=B4=EC=A7=80?= =?UTF-8?q?=20-=20=EB=9D=BC=EC=9D=B4=EB=B8=8C=20=EC=98=88=EC=95=BD=20?= =?UTF-8?q?=EC=88=98,=20=EA=B5=AC=EB=A7=A4=EB=82=B4=EC=97=AD=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 --- .../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 )