diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/member/auth/AuthService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/member/auth/AuthService.kt index cbc3e30..c912c4b 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/member/auth/AuthService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/member/auth/AuthService.kt @@ -3,7 +3,6 @@ package kr.co.vividnext.sodalive.member.auth import com.fasterxml.jackson.databind.ObjectMapper import kr.co.bootpay.Bootpay import kr.co.vividnext.sodalive.common.SodaException -import kr.co.vividnext.sodalive.member.Member import kr.co.vividnext.sodalive.member.MemberRepository import kr.co.vividnext.sodalive.member.MemberService import kr.co.vividnext.sodalive.member.SignOut @@ -11,6 +10,7 @@ import kr.co.vividnext.sodalive.member.SignOutRepository import org.springframework.beans.factory.annotation.Value import org.springframework.data.repository.findByIdOrNull import org.springframework.stereotype.Service +import org.springframework.transaction.annotation.Propagation import org.springframework.transaction.annotation.Transactional import java.time.LocalDate @@ -57,8 +57,7 @@ class AuthService( val certificateYear = certificate.birth.substring(0, 4).toInt() if (isBlockAuth(certificate)) { - signOut(member) - member.isActive = false + signOut(memberId = memberId) throw SodaException(blockMessage) } @@ -97,12 +96,15 @@ class AuthService( return blockAuthId != null && blockAuthId > 0 } - @Transactional() - fun signOut(member: Member) { - memberService.logoutAll(memberId = member.id!!) + @Transactional(propagation = Propagation.REQUIRES_NEW) + fun signOut(memberId: Long) { + val member = memberRepository.findByIdOrNull(memberId) ?: throw SodaException("로그인 정보를 확인해주세요.") + member.isActive = false val signOut = SignOut(reason = blockMessage) signOut.member = member signOutRepository.save(signOut) + + memberService.logoutAll(memberId = member.id!!) } }