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 getChargeCountAfterDate(memberId: Long, date: LocalDateTime): Int
|
||||
fun isFirstCharged(memberId: Long): Boolean
|
||||
fun getChargeCount(memberId: Long): Int
|
||||
}
|
||||
|
||||
class ChargeQueryRepositoryImpl(private val queryFactory: JPAQueryFactory) : ChargeQueryRepository {
|
||||
|
@ -92,6 +93,22 @@ class ChargeQueryRepositoryImpl(private val queryFactory: JPAQueryFactory) : Cha
|
|||
.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? {
|
||||
val paymentGatewayCondition = when (container) {
|
||||
"aos" -> {
|
||||
|
|
|
@ -3,6 +3,7 @@ package kr.co.vividnext.sodalive.member
|
|||
import com.amazonaws.services.s3.model.ObjectMetadata
|
||||
import com.fasterxml.jackson.databind.ObjectMapper
|
||||
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.use.CanUsage
|
||||
import kr.co.vividnext.sodalive.common.ApiResponse
|
||||
|
@ -71,6 +72,7 @@ class MemberService(
|
|||
private val nicknameChangeLogRepository: NicknameChangeLogRepository,
|
||||
private val memberTagRepository: MemberTagRepository,
|
||||
private val liveReservationRepository: LiveReservationRepository,
|
||||
private val chargeRepository: ChargeRepository,
|
||||
|
||||
private val orderService: OrderService,
|
||||
private val emailService: SendEmailService,
|
||||
|
@ -140,9 +142,30 @@ class MemberService(
|
|||
}
|
||||
|
||||
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(
|
||||
can = member.getChargeCan(container) + member.getRewardCan(container),
|
||||
isAuth = member.auth != null,
|
||||
gender = gender,
|
||||
signupDate = signUpDate,
|
||||
chargeCount = chargeCount,
|
||||
role = member.role,
|
||||
messageNotice = member.notification?.message,
|
||||
followingChannelLiveNotice = member.notification?.live,
|
||||
|
|
|
@ -5,6 +5,9 @@ import kr.co.vividnext.sodalive.member.MemberRole
|
|||
data class GetMemberInfoResponse(
|
||||
val can: Int,
|
||||
val isAuth: Boolean,
|
||||
val gender: String?,
|
||||
val signupDate: String,
|
||||
val chargeCount: Int,
|
||||
val role: MemberRole,
|
||||
val messageNotice: Boolean?,
|
||||
val followingChannelLiveNotice: Boolean?,
|
||||
|
|
Loading…
Reference in New Issue