feat: 푸시 토큰 - 한 사람이 여러개의 디바이스로 로그인 해도 모든 푸시 토큰이 기록되어 있어서 모든 디바이스에 푸시가 가도록 수정
This commit is contained in:
@@ -10,6 +10,7 @@ import kr.co.vividnext.sodalive.common.ApiResponse
|
||||
import kr.co.vividnext.sodalive.common.SodaException
|
||||
import kr.co.vividnext.sodalive.content.order.OrderService
|
||||
import kr.co.vividnext.sodalive.email.SendEmailService
|
||||
import kr.co.vividnext.sodalive.fcm.PushTokenService
|
||||
import kr.co.vividnext.sodalive.jwt.TokenProvider
|
||||
import kr.co.vividnext.sodalive.live.reservation.LiveReservationRepository
|
||||
import kr.co.vividnext.sodalive.live.room.detail.GetRoomDetailUser
|
||||
@@ -82,6 +83,7 @@ class MemberService(
|
||||
|
||||
private val orderService: OrderService,
|
||||
private val emailService: SendEmailService,
|
||||
private val pushTokenService: PushTokenService,
|
||||
private val canPaymentService: CanPaymentService,
|
||||
private val nicknameGenerateService: NicknameGenerateService,
|
||||
private val memberNotificationService: MemberNotificationService,
|
||||
@@ -127,7 +129,6 @@ class MemberService(
|
||||
gender = Gender.NONE,
|
||||
container = request.container
|
||||
)
|
||||
member.pushToken = request.pushToken
|
||||
|
||||
if (!request.marketingPid.isNullOrBlank()) {
|
||||
member.activePid = request.marketingPid
|
||||
@@ -137,6 +138,14 @@ class MemberService(
|
||||
repository.save(member)
|
||||
agreeTermsOfServiceAndPrivacyPolicy(member, stipulationTermsOfService, stipulationPrivacyPolicy)
|
||||
|
||||
if (request.pushToken != null) {
|
||||
pushTokenService.registerToken(
|
||||
memberId = member.id!!,
|
||||
token = request.pushToken,
|
||||
deviceType = request.container
|
||||
)
|
||||
}
|
||||
|
||||
return SignUpResponse(
|
||||
memberId = member.id!!,
|
||||
marketingPid = request.marketingPid,
|
||||
@@ -235,16 +244,11 @@ class MemberService(
|
||||
|
||||
@Transactional
|
||||
fun updatePushToken(memberId: Long, pushToken: String, container: String) {
|
||||
val existsHavePushTokenMemberList = repository.findByPushToken(pushToken = pushToken)
|
||||
for (existsHavePushTokenMember in existsHavePushTokenMemberList) {
|
||||
existsHavePushTokenMember.pushToken = null
|
||||
}
|
||||
|
||||
val member = repository.findByIdOrNull(id = memberId)
|
||||
?: throw SodaException("로그인 정보를 확인해주세요.")
|
||||
|
||||
member.pushToken = pushToken
|
||||
member.container = container
|
||||
pushTokenService.registerToken(
|
||||
memberId = memberId,
|
||||
token = pushToken,
|
||||
deviceType = container
|
||||
)
|
||||
}
|
||||
|
||||
@Transactional
|
||||
@@ -551,6 +555,7 @@ class MemberService(
|
||||
?: throw SodaException("로그인 정보를 확인해주세요.")
|
||||
|
||||
member.pushToken = null
|
||||
pushTokenService.logout(memberId = memberId)
|
||||
|
||||
val lock = getOrCreateLock(memberId = memberId)
|
||||
lock.write {
|
||||
@@ -568,6 +573,7 @@ class MemberService(
|
||||
?: throw SodaException("로그인 정보를 확인해주세요.")
|
||||
|
||||
member.pushToken = null
|
||||
pushTokenService.logout(memberId = memberId)
|
||||
|
||||
val lock = getOrCreateLock(memberId = memberId)
|
||||
lock.write { tokenRepository.deleteById(memberId) }
|
||||
|
Reference in New Issue
Block a user