마이페이지 - 라이브 예약 수, 구매내역 추가

This commit is contained in:
Klaus 2023-08-20 22:42:35 +09:00
parent 91d25081c0
commit 3ad2256a66
3 changed files with 33 additions and 3 deletions

View File

@ -25,6 +25,8 @@ interface LiveReservationQueryRepository {
reservationId: Long, reservationId: Long,
memberId: Long memberId: Long
): LiveReservation? ): LiveReservation?
fun getReservationCount(memberId: Long): Int
} }
@Repository @Repository
@ -97,4 +99,16 @@ class LiveReservationQueryRepositoryImpl(private val queryFactory: JPAQueryFacto
) )
.fetchFirst() .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
}
} }

View File

@ -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.can.use.CanUsage
import kr.co.vividnext.sodalive.common.ApiResponse import kr.co.vividnext.sodalive.common.ApiResponse
import kr.co.vividnext.sodalive.common.SodaException 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.email.SendEmailService
import kr.co.vividnext.sodalive.jwt.TokenProvider 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.live.room.detail.GetRoomDetailUser
import kr.co.vividnext.sodalive.member.block.BlockMember import kr.co.vividnext.sodalive.member.block.BlockMember
import kr.co.vividnext.sodalive.member.block.BlockMemberRepository import kr.co.vividnext.sodalive.member.block.BlockMemberRepository
@ -66,7 +68,9 @@ class MemberService(
private val signOutRepository: SignOutRepository, private val signOutRepository: SignOutRepository,
private val nicknameChangeLogRepository: NicknameChangeLogRepository, private val nicknameChangeLogRepository: NicknameChangeLogRepository,
private val memberTagRepository: MemberTagRepository, private val memberTagRepository: MemberTagRepository,
private val liveReservationRepository: LiveReservationRepository,
private val orderService: OrderService,
private val emailService: SendEmailService, private val emailService: SendEmailService,
private val canPaymentService: CanPaymentService, private val canPaymentService: CanPaymentService,
private val memberNotificationService: MemberNotificationService, private val memberNotificationService: MemberNotificationService,
@ -165,6 +169,14 @@ class MemberService(
} }
fun getMyPage(member: Member, container: String): MyPageResponse { 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( return MyPageResponse(
nickname = member.nickname, nickname = member.nickname,
profileUrl = if (member.profileImage != null) { profileUrl = if (member.profileImage != null) {
@ -178,8 +190,9 @@ class MemberService(
instagramUrl = member.instagramUrl, instagramUrl = member.instagramUrl,
websiteUrl = member.websiteUrl, websiteUrl = member.websiteUrl,
blogUrl = member.blogUrl, blogUrl = member.blogUrl,
liveReservationCount = 0, liveReservationCount = liveReservationCount,
isAuth = member.auth != null isAuth = member.auth != null,
orderList = orderList
) )
} }

View File

@ -1,5 +1,7 @@
package kr.co.vividnext.sodalive.member.myPage package kr.co.vividnext.sodalive.member.myPage
import kr.co.vividnext.sodalive.content.order.GetAudioContentOrderListResponse
data class MyPageResponse( data class MyPageResponse(
val nickname: String, val nickname: String,
val profileUrl: String, val profileUrl: String,
@ -10,5 +12,6 @@ data class MyPageResponse(
val websiteUrl: String? = null, val websiteUrl: String? = null,
val blogUrl: String? = null, val blogUrl: String? = null,
val liveReservationCount: Int, val liveReservationCount: Int,
val isAuth: Boolean val isAuth: Boolean,
val orderList: GetAudioContentOrderListResponse
) )