Merge pull request '유저 정보 조회' (#283) from test into main
Reviewed-on: #283
This commit is contained in:
commit
f4f0f203a2
|
@ -19,6 +19,7 @@ interface ChargeQueryRepository {
|
||||||
fun getOldestChargeWhereChargeCanGreaterThan0(chargeId: Long, memberId: Long, container: String): Charge?
|
fun getOldestChargeWhereChargeCanGreaterThan0(chargeId: Long, memberId: Long, container: String): Charge?
|
||||||
fun getChargeCountAfterDate(memberId: Long, date: LocalDateTime): Int
|
fun getChargeCountAfterDate(memberId: Long, date: LocalDateTime): Int
|
||||||
fun isFirstCharged(memberId: Long): Boolean
|
fun isFirstCharged(memberId: Long): Boolean
|
||||||
|
fun getChargeCount(memberId: Long): Int
|
||||||
}
|
}
|
||||||
|
|
||||||
class ChargeQueryRepositoryImpl(private val queryFactory: JPAQueryFactory) : ChargeQueryRepository {
|
class ChargeQueryRepositoryImpl(private val queryFactory: JPAQueryFactory) : ChargeQueryRepository {
|
||||||
|
@ -92,6 +93,22 @@ class ChargeQueryRepositoryImpl(private val queryFactory: JPAQueryFactory) : Cha
|
||||||
.size <= 1
|
.size <= 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun getChargeCount(memberId: Long): Int {
|
||||||
|
return (
|
||||||
|
queryFactory
|
||||||
|
.select(charge.id.count())
|
||||||
|
.from(charge)
|
||||||
|
.innerJoin(charge.member, member)
|
||||||
|
.innerJoin(charge.payment, payment)
|
||||||
|
.where(
|
||||||
|
member.id.eq(memberId),
|
||||||
|
charge.status.eq(ChargeStatus.CHARGE),
|
||||||
|
payment.status.eq(PaymentStatus.COMPLETE)
|
||||||
|
)
|
||||||
|
.fetchOne() ?: 0L
|
||||||
|
).toInt()
|
||||||
|
}
|
||||||
|
|
||||||
private fun getPaymentGatewayCondition(container: String): BooleanExpression? {
|
private fun getPaymentGatewayCondition(container: String): BooleanExpression? {
|
||||||
val paymentGatewayCondition = when (container) {
|
val paymentGatewayCondition = when (container) {
|
||||||
"aos" -> {
|
"aos" -> {
|
||||||
|
|
|
@ -3,6 +3,7 @@ package kr.co.vividnext.sodalive.member
|
||||||
import com.amazonaws.services.s3.model.ObjectMetadata
|
import com.amazonaws.services.s3.model.ObjectMetadata
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper
|
import com.fasterxml.jackson.databind.ObjectMapper
|
||||||
import kr.co.vividnext.sodalive.aws.s3.S3Uploader
|
import kr.co.vividnext.sodalive.aws.s3.S3Uploader
|
||||||
|
import kr.co.vividnext.sodalive.can.charge.ChargeRepository
|
||||||
import kr.co.vividnext.sodalive.can.payment.CanPaymentService
|
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
|
||||||
|
@ -71,6 +72,7 @@ class MemberService(
|
||||||
private val nicknameChangeLogRepository: NicknameChangeLogRepository,
|
private val nicknameChangeLogRepository: NicknameChangeLogRepository,
|
||||||
private val memberTagRepository: MemberTagRepository,
|
private val memberTagRepository: MemberTagRepository,
|
||||||
private val liveReservationRepository: LiveReservationRepository,
|
private val liveReservationRepository: LiveReservationRepository,
|
||||||
|
private val chargeRepository: ChargeRepository,
|
||||||
|
|
||||||
private val orderService: OrderService,
|
private val orderService: OrderService,
|
||||||
private val emailService: SendEmailService,
|
private val emailService: SendEmailService,
|
||||||
|
@ -140,9 +142,30 @@ class MemberService(
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getMemberInfo(member: Member, container: String): GetMemberInfoResponse {
|
fun getMemberInfo(member: Member, container: String): GetMemberInfoResponse {
|
||||||
|
val gender = if (member.auth != null) {
|
||||||
|
if (member.auth!!.gender == 1) {
|
||||||
|
"남"
|
||||||
|
} else {
|
||||||
|
"여"
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
null
|
||||||
|
}
|
||||||
|
|
||||||
|
val dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")
|
||||||
|
val signUpDate = member.createdAt!!
|
||||||
|
.atZone(ZoneId.of("UTC"))
|
||||||
|
.withZoneSameInstant(ZoneId.of("Asia/Seoul"))
|
||||||
|
.format(dateTimeFormatter)
|
||||||
|
|
||||||
|
val chargeCount = chargeRepository.getChargeCount(memberId = member.id!!)
|
||||||
|
|
||||||
return GetMemberInfoResponse(
|
return GetMemberInfoResponse(
|
||||||
can = member.getChargeCan(container) + member.getRewardCan(container),
|
can = member.getChargeCan(container) + member.getRewardCan(container),
|
||||||
isAuth = member.auth != null,
|
isAuth = member.auth != null,
|
||||||
|
gender = gender,
|
||||||
|
signupDate = signUpDate,
|
||||||
|
chargeCount = chargeCount,
|
||||||
role = member.role,
|
role = member.role,
|
||||||
messageNotice = member.notification?.message,
|
messageNotice = member.notification?.message,
|
||||||
followingChannelLiveNotice = member.notification?.live,
|
followingChannelLiveNotice = member.notification?.live,
|
||||||
|
|
|
@ -5,6 +5,9 @@ import kr.co.vividnext.sodalive.member.MemberRole
|
||||||
data class GetMemberInfoResponse(
|
data class GetMemberInfoResponse(
|
||||||
val can: Int,
|
val can: Int,
|
||||||
val isAuth: Boolean,
|
val isAuth: Boolean,
|
||||||
|
val gender: String?,
|
||||||
|
val signupDate: String,
|
||||||
|
val chargeCount: Int,
|
||||||
val role: MemberRole,
|
val role: MemberRole,
|
||||||
val messageNotice: Boolean?,
|
val messageNotice: Boolean?,
|
||||||
val followingChannelLiveNotice: Boolean?,
|
val followingChannelLiveNotice: Boolean?,
|
||||||
|
|
Loading…
Reference in New Issue