From ba9584e3fe71dd1720cd5fcbc187c5ceafd70672 Mon Sep 17 00:00:00 2001 From: wlgns12370 Date: Tue, 12 Aug 2025 01:47:11 +0900 Subject: [PATCH] =?UTF-8?q?MOSU=20feat:=20phoneNumber=20format=EC=97=90=20?= =?UTF-8?q?=EB=A7=9E=EC=B6=B0=EC=84=9C=20find?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../oauth/OAuthUserPersistenceProcessor.java | 54 +++++++++---------- 1 file changed, 24 insertions(+), 30 deletions(-) diff --git a/src/main/java/life/mosu/mosuserver/application/oauth/OAuthUserPersistenceProcessor.java b/src/main/java/life/mosu/mosuserver/application/oauth/OAuthUserPersistenceProcessor.java index 41426c66..103814ca 100644 --- a/src/main/java/life/mosu/mosuserver/application/oauth/OAuthUserPersistenceProcessor.java +++ b/src/main/java/life/mosu/mosuserver/application/oauth/OAuthUserPersistenceProcessor.java @@ -4,12 +4,9 @@ import life.mosu.mosuserver.domain.user.entity.UserJpaEntity; import life.mosu.mosuserver.domain.user.entity.UserRole; import life.mosu.mosuserver.domain.user.repository.UserJpaRepository; -import life.mosu.mosuserver.global.exception.CustomRuntimeException; -import life.mosu.mosuserver.global.exception.ErrorCode; import life.mosu.mosuserver.global.processor.StepProcessor; import life.mosu.mosuserver.global.util.PhoneNumberUtil; import lombok.RequiredArgsConstructor; -import org.springframework.dao.DataIntegrityViolationException; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; @@ -22,32 +19,29 @@ public class OAuthUserPersistenceProcessor implements StepProcessor { - existingUser.updateOAuthUser( - info.gender(), - info.name(), - PhoneNumberUtil.formatPhoneNumber(info.phoneNumber()), - info.birthDay(), - info.marketingAgreed()); - return existingUser; - }) - .orElseGet(() -> { - final UserJpaEntity newUser = UserJpaEntity.builder() - .loginId(info.email()) - .gender(info.gender()) - .name(info.name()) - .birth(info.birthDay()) - .phoneNumber(PhoneNumberUtil.formatPhoneNumber(info.phoneNumber())) - .userRole(UserRole.ROLE_PENDING) - .provider(AuthProvider.KAKAO) - .agreedToMarketing(info.marketingAgreed()) - .build(); - return userRepository.save(newUser); - }); - } catch (DataIntegrityViolationException ex) { - throw new CustomRuntimeException(ErrorCode.USER_ALREADY_EXISTS); - } + return userRepository.findByPhoneNumber( + PhoneNumberUtil.formatPhoneNumber(info.phoneNumber())) + .map(existingUser -> { + existingUser.updateOAuthUser( + info.gender(), + info.name(), + PhoneNumberUtil.formatPhoneNumber(info.phoneNumber()), + info.birthDay(), + info.marketingAgreed()); + return existingUser; + }) + .orElseGet(() -> { + final UserJpaEntity newUser = UserJpaEntity.builder() + .loginId(info.email()) + .gender(info.gender()) + .name(info.name()) + .birth(info.birthDay()) + .phoneNumber(PhoneNumberUtil.formatPhoneNumber(info.phoneNumber())) + .userRole(UserRole.ROLE_PENDING) + .provider(AuthProvider.KAKAO) + .agreedToMarketing(info.marketingAgreed()) + .build(); + return userRepository.save(newUser); + }); } }