리워드코인 잘못 써지는 버그 수정
This commit is contained in:
parent
d2ae958847
commit
7ca71f90db
|
@ -16,6 +16,7 @@ import kr.co.vividnext.sodalive.common.SodaException
|
||||||
import kr.co.vividnext.sodalive.content.AudioContent
|
import kr.co.vividnext.sodalive.content.AudioContent
|
||||||
import kr.co.vividnext.sodalive.content.order.Order
|
import kr.co.vividnext.sodalive.content.order.Order
|
||||||
import kr.co.vividnext.sodalive.live.room.LiveRoom
|
import kr.co.vividnext.sodalive.live.room.LiveRoom
|
||||||
|
import kr.co.vividnext.sodalive.member.Member
|
||||||
import kr.co.vividnext.sodalive.member.MemberRepository
|
import kr.co.vividnext.sodalive.member.MemberRepository
|
||||||
import org.springframework.data.repository.findByIdOrNull
|
import org.springframework.data.repository.findByIdOrNull
|
||||||
import org.springframework.stereotype.Service
|
import org.springframework.stereotype.Service
|
||||||
|
@ -41,9 +42,9 @@ class CanPaymentService(
|
||||||
) {
|
) {
|
||||||
val member = memberRepository.findByIdOrNull(id = memberId)
|
val member = memberRepository.findByIdOrNull(id = memberId)
|
||||||
?: throw SodaException("잘못된 요청입니다.\n다시 시도해 주세요.")
|
?: throw SodaException("잘못된 요청입니다.\n다시 시도해 주세요.")
|
||||||
val useRewardCan = spendRewardCan(memberId, needCan, container)
|
val useRewardCan = spendRewardCan(member, needCan, container)
|
||||||
val useChargeCan = if (needCan - useRewardCan.total > 0) {
|
val useChargeCan = if (needCan - useRewardCan.total > 0) {
|
||||||
spendChargeCan(memberId, needCan = needCan - useRewardCan.total, container = container)
|
spendChargeCan(member, needCan = needCan - useRewardCan.total, container = container)
|
||||||
} else {
|
} else {
|
||||||
null
|
null
|
||||||
}
|
}
|
||||||
|
@ -143,19 +144,19 @@ class CanPaymentService(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun spendRewardCan(memberId: Long, needCan: Int, container: String): TotalSpentCan {
|
private fun spendRewardCan(member: Member, needCan: Int, container: String): TotalSpentCan {
|
||||||
return if (needCan > 0) {
|
return if (needCan > 0) {
|
||||||
val member = memberRepository.findByIdOrNull(id = memberId)
|
|
||||||
?: throw SodaException("잘못된 요청입니다.\n다시 시도해 주세요.")
|
|
||||||
|
|
||||||
val spentCans = mutableListOf<SpentCan>()
|
val spentCans = mutableListOf<SpentCan>()
|
||||||
var chargeId = 0L
|
var chargeId = 0L
|
||||||
var total = 0
|
var total = 0
|
||||||
|
|
||||||
while (needCan - total > 0) {
|
while (needCan - total > 0) {
|
||||||
val remainingNeedCan = needCan - total
|
val remainingNeedCan = needCan - total
|
||||||
val charge = chargeRepository.getOldestChargeWhereRewardCanGreaterThan0(chargeId, memberId, container)
|
val charge = chargeRepository.getOldestChargeWhereRewardCanGreaterThan0(
|
||||||
?: break
|
chargeId,
|
||||||
|
member.id!!,
|
||||||
|
container
|
||||||
|
) ?: break
|
||||||
|
|
||||||
if (charge.rewardCan >= remainingNeedCan) {
|
if (charge.rewardCan >= remainingNeedCan) {
|
||||||
charge.rewardCan -= remainingNeedCan
|
charge.rewardCan -= remainingNeedCan
|
||||||
|
@ -201,19 +202,19 @@ class CanPaymentService(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun spendChargeCan(memberId: Long, needCan: Int, container: String): TotalSpentCan {
|
private fun spendChargeCan(member: Member, needCan: Int, container: String): TotalSpentCan {
|
||||||
return if (needCan > 0) {
|
return if (needCan > 0) {
|
||||||
val member = memberRepository.findByIdOrNull(id = memberId)
|
|
||||||
?: throw SodaException("잘못된 요청입니다.\n다시 시도해 주세요.")
|
|
||||||
|
|
||||||
val spentCans = mutableListOf<SpentCan>()
|
val spentCans = mutableListOf<SpentCan>()
|
||||||
var chargeId = 0L
|
var chargeId = 0L
|
||||||
var total = 0
|
var total = 0
|
||||||
|
|
||||||
while (needCan - total > 0) {
|
while (needCan - total > 0) {
|
||||||
val remainingNeedCan = needCan - total
|
val remainingNeedCan = needCan - total
|
||||||
val charge = chargeRepository.getOldestChargeWhereChargeCanGreaterThan0(chargeId, memberId, container)
|
val charge = chargeRepository.getOldestChargeWhereChargeCanGreaterThan0(
|
||||||
?: break
|
chargeId,
|
||||||
|
member.id!!,
|
||||||
|
container
|
||||||
|
) ?: break
|
||||||
|
|
||||||
if (charge.chargeCan >= remainingNeedCan) {
|
if (charge.chargeCan >= remainingNeedCan) {
|
||||||
charge.chargeCan -= remainingNeedCan
|
charge.chargeCan -= remainingNeedCan
|
||||||
|
|
Loading…
Reference in New Issue