diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/can/charge/event/ChargeEventService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/can/charge/event/ChargeEventService.kt index add2181..632b623 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/can/charge/event/ChargeEventService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/can/charge/event/ChargeEventService.kt @@ -10,7 +10,6 @@ import kr.co.vividnext.sodalive.common.SodaException import kr.co.vividnext.sodalive.fcm.FcmEvent import kr.co.vividnext.sodalive.fcm.FcmEventType import kr.co.vividnext.sodalive.member.Member -import kr.co.vividnext.sodalive.member.MemberRepository import kr.co.vividnext.sodalive.member.auth.AuthRepository import org.springframework.context.ApplicationEventPublisher import org.springframework.data.repository.findByIdOrNull @@ -23,26 +22,22 @@ import kotlin.math.round class ChargeEventService( private val repository: ChargeEventRepository, private val authRepository: AuthRepository, - private val memberRepository: MemberRepository, private val chargeRepository: ChargeRepository, private val chargeEventRepository: ChargeEventRepository, private val applicationEventPublisher: ApplicationEventPublisher ) { @Transactional - fun applyChargeEvent(chargeId: Long, memberId: Long) { + fun applyChargeEvent(chargeId: Long, member: Member) { val charge = chargeRepository.findByIdOrNull(chargeId) - ?: throw SodaException("이벤트가 적용되지 않았습니다.\n고객센터에 문의해 주세요.") - - val member = memberRepository.findByIdOrNull(memberId) - ?: throw SodaException("이벤트가 적용되지 않았습니다.\n고객센터에 문의해 주세요.") + ?: throw SodaException("이벤트가 적용되지 않았습니다.") if (member.auth != null) { val authDate = authRepository.getOldestCreatedAtByDi(member.auth!!.di) val memberIds = authRepository.getMemberIdsByDi(member.auth!!.di) var chargeCount = 0 - for (id in memberIds) { - chargeCount += chargeRepository.getChargeCountAfterDate(memberId = id, authDate) + for (memberId in memberIds) { + chargeCount += chargeRepository.getChargeCountAfterDate(memberId = memberId, authDate) } if (chargeCount > 0) { diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/can/charge/event/ChargeSpringEvent.kt b/src/main/kotlin/kr/co/vividnext/sodalive/can/charge/event/ChargeSpringEvent.kt index d12036f..928eee4 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/can/charge/event/ChargeSpringEvent.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/can/charge/event/ChargeSpringEvent.kt @@ -1,11 +1,11 @@ package kr.co.vividnext.sodalive.can.charge.event import kr.co.vividnext.sodalive.member.Member -import org.springframework.context.event.EventListener import org.springframework.scheduling.annotation.Async import org.springframework.stereotype.Component import org.springframework.transaction.annotation.Propagation import org.springframework.transaction.annotation.Transactional +import org.springframework.transaction.event.TransactionalEventListener class ChargeSpringEvent( val chargeId: Long, @@ -17,9 +17,9 @@ class ChargeSpringEventListener( private val chargeEventService: ChargeEventService ) { @Async - @EventListener + @TransactionalEventListener @Transactional(propagation = Propagation.REQUIRES_NEW) fun applyChargeEvent(event: ChargeSpringEvent) { - chargeEventService.applyChargeEvent(event.chargeId, event.member.id!!) + chargeEventService.applyChargeEvent(event.chargeId, event.member) } }