충전이벤트가 적용되지 않는 버그 수정
This commit is contained in:
		| @@ -10,6 +10,7 @@ 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 | ||||
| @@ -22,22 +23,26 @@ 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, member: Member) { | ||||
|     fun applyChargeEvent(chargeId: Long, memberId: Long) { | ||||
|         val charge = chargeRepository.findByIdOrNull(chargeId) | ||||
|             ?: throw SodaException("이벤트가 적용되지 않았습니다.") | ||||
|             ?: throw SodaException("이벤트가 적용되지 않았습니다.\n고객센터에 문의해 주세요.") | ||||
|  | ||||
|         val member = memberRepository.findByIdOrNull(memberId) | ||||
|             ?: throw SodaException("이벤트가 적용되지 않았습니다.\n고객센터에 문의해 주세요.") | ||||
|  | ||||
|         if (member.auth != null) { | ||||
|             val authDate = authRepository.getOldestCreatedAtByDi(member.auth!!.di) | ||||
|             val memberIds = authRepository.getMemberIdsByDi(member.auth!!.di) | ||||
|  | ||||
|             var chargeCount = 0 | ||||
|             for (memberId in memberIds) { | ||||
|                 chargeCount += chargeRepository.getChargeCountAfterDate(memberId = memberId, authDate) | ||||
|             for (id in memberIds) { | ||||
|                 chargeCount += chargeRepository.getChargeCountAfterDate(memberId = id, authDate) | ||||
|             } | ||||
|  | ||||
|             if (chargeCount > 0) { | ||||
|   | ||||
| @@ -20,6 +20,6 @@ class ChargeSpringEventListener( | ||||
|     @TransactionalEventListener | ||||
|     @Transactional(propagation = Propagation.REQUIRES_NEW) | ||||
|     fun applyChargeEvent(event: ChargeSpringEvent) { | ||||
|         chargeEventService.applyChargeEvent(event.chargeId, event.member) | ||||
|         chargeEventService.applyChargeEvent(event.chargeId, event.member.id!!) | ||||
|     } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user