diff --git a/src/main/java/life/mosu/mosuserver/application/notify/NotifyService.java b/src/main/java/life/mosu/mosuserver/application/notify/NotifyService.java index 64edf5f7..c4bd7ff9 100644 --- a/src/main/java/life/mosu/mosuserver/application/notify/NotifyService.java +++ b/src/main/java/life/mosu/mosuserver/application/notify/NotifyService.java @@ -32,7 +32,7 @@ public class NotifyService { retryFor = {CustomRuntimeException.class} ) public void notify(LunaNotificationEvent event) { - String phone = retrievePhoneNumberByUserId(event.userId()); + String phone = retrievePhoneNumberByUserId(event.userId()).replaceFirst("^.", ""); LunaNotificationVariable notifyVariable = notifyVariableFactory.create(event); NotifySender sender = senderResolver.resolve(event.status()); diff --git a/src/main/java/life/mosu/mosuserver/application/oauth/OAuthUserInfo.java b/src/main/java/life/mosu/mosuserver/application/oauth/OAuthUserInfo.java index 52ec2d4a..a65f01a4 100644 --- a/src/main/java/life/mosu/mosuserver/application/oauth/OAuthUserInfo.java +++ b/src/main/java/life/mosu/mosuserver/application/oauth/OAuthUserInfo.java @@ -43,7 +43,6 @@ private static OAuthUserInfo ofKakao(final Map attributes, String phoneNumber = Optional.ofNullable((String) account.get("phone_number")) .map(p -> p.replace("+82 ", "0")) .orElse(null); - Gender gender = Optional.ofNullable((String) account.get("gender")) .map(g -> g.equalsIgnoreCase("male") ? Gender.MALE : Gender.FEMALE) .orElse(null); 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 0fe139d4..03dd0053 100644 --- a/src/main/java/life/mosu/mosuserver/application/oauth/OAuthUserPersistenceProcessor.java +++ b/src/main/java/life/mosu/mosuserver/application/oauth/OAuthUserPersistenceProcessor.java @@ -5,6 +5,7 @@ import life.mosu.mosuserver.domain.user.entity.UserRole; import life.mosu.mosuserver.domain.user.repository.UserJpaRepository; import life.mosu.mosuserver.global.processor.StepProcessor; +import life.mosu.mosuserver.global.util.PhoneNumberUtil; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; @@ -23,7 +24,7 @@ public UserJpaEntity process(final OAuthUserInfo info) { existingUser.updateOAuthUser( info.gender(), info.name(), - info.phoneNumber(), + PhoneNumberUtil.formatPhoneNumber(info.phoneNumber()), info.birthDay(), info.marketingAgreed()); return existingUser; @@ -34,7 +35,7 @@ public UserJpaEntity process(final OAuthUserInfo info) { .gender(info.gender()) .name(info.name()) .birth(info.birthDay()) - .phoneNumber(info.phoneNumber()) + .phoneNumber(PhoneNumberUtil.formatPhoneNumber(info.phoneNumber())) .userRole(UserRole.ROLE_PENDING) .provider(AuthProvider.KAKAO) .agreedToMarketing(info.marketingAgreed()) diff --git a/src/main/java/life/mosu/mosuserver/application/user/MyUserService.java b/src/main/java/life/mosu/mosuserver/application/user/MyUserService.java index 7795544f..f67d0fbb 100644 --- a/src/main/java/life/mosu/mosuserver/application/user/MyUserService.java +++ b/src/main/java/life/mosu/mosuserver/application/user/MyUserService.java @@ -30,8 +30,8 @@ public ChangePasswordResponse changePassword(ChangePasswordRequest request, String phoneNumber) { String rgxPhone = PhoneNumberUtil.formatPhoneNumberWithHyphen(phoneNumber); - - UserJpaEntity user = userJpaRepository.findByPhoneNumber(rgxPhone) + UserJpaEntity user = userJpaRepository.findByPhoneNumber( + PhoneNumberUtil.formatPhoneNumber(rgxPhone)) .orElseThrow(() -> new CustomRuntimeException(ErrorCode.USER_NOT_FOUND)); user.changePassword(passwordEncode(encoder, request.newPassword())); diff --git a/src/main/java/life/mosu/mosuserver/domain/user/entity/UserJpaEntity.java b/src/main/java/life/mosu/mosuserver/domain/user/entity/UserJpaEntity.java index 19fa1b74..6120db33 100644 --- a/src/main/java/life/mosu/mosuserver/domain/user/entity/UserJpaEntity.java +++ b/src/main/java/life/mosu/mosuserver/domain/user/entity/UserJpaEntity.java @@ -117,4 +117,8 @@ public void grantUserRole() { public void changePassword(String newPassword) { this.password = newPassword; } + + public String getPhoneNumber() { + return phoneNumber.replaceFirst("^.", ""); + } } diff --git a/src/main/java/life/mosu/mosuserver/global/util/PhoneNumberUtil.java b/src/main/java/life/mosu/mosuserver/global/util/PhoneNumberUtil.java index 3a3146eb..195b1da6 100644 --- a/src/main/java/life/mosu/mosuserver/global/util/PhoneNumberUtil.java +++ b/src/main/java/life/mosu/mosuserver/global/util/PhoneNumberUtil.java @@ -15,4 +15,12 @@ public static String formatPhoneNumberWithHyphen(String phoneNumber) { phoneNumber.substring(3, 7), phoneNumber.substring(7)); } + + public static String formatGuestPhoneNumber(String phoneNumber) { + return String.format("G%s", phoneNumber); + } + + public static String formatPhoneNumber(String phoneNumber) { + return String.format("U%s", phoneNumber); + } } diff --git a/src/main/java/life/mosu/mosuserver/presentation/application/dto/ApplicationGuestRequest.java b/src/main/java/life/mosu/mosuserver/presentation/application/dto/ApplicationGuestRequest.java index becb61a1..02ebd7bf 100644 --- a/src/main/java/life/mosu/mosuserver/presentation/application/dto/ApplicationGuestRequest.java +++ b/src/main/java/life/mosu/mosuserver/presentation/application/dto/ApplicationGuestRequest.java @@ -16,6 +16,7 @@ import life.mosu.mosuserver.global.annotation.NotBlankPhoneNumberPattern; import life.mosu.mosuserver.global.exception.CustomRuntimeException; import life.mosu.mosuserver.global.exception.ErrorCode; +import life.mosu.mosuserver.global.util.PhoneNumberUtil; import life.mosu.mosuserver.presentation.common.FileRequest; public record ApplicationGuestRequest( @@ -44,7 +45,7 @@ public UserJpaEntity toUserJpaEntity() { .password(randomPassword) .name(userName) .birth(birth) - .phoneNumber(phoneNumber) + .phoneNumber(PhoneNumberUtil.formatGuestPhoneNumber(phoneNumber)) .gender(validGender()) .userRole(UserRole.ROLE_USER) .provider(AuthProvider.MOSU) diff --git a/src/main/java/life/mosu/mosuserver/presentation/auth/dto/request/SignUpAccountRequest.java b/src/main/java/life/mosu/mosuserver/presentation/auth/dto/request/SignUpAccountRequest.java index 61aa2bb5..f5691ac1 100644 --- a/src/main/java/life/mosu/mosuserver/presentation/auth/dto/request/SignUpAccountRequest.java +++ b/src/main/java/life/mosu/mosuserver/presentation/auth/dto/request/SignUpAccountRequest.java @@ -14,6 +14,7 @@ import life.mosu.mosuserver.global.annotation.LoginIdPattern; import life.mosu.mosuserver.global.annotation.NotBlankPhoneNumberPattern; import life.mosu.mosuserver.global.annotation.PasswordPattern; +import life.mosu.mosuserver.global.util.PhoneNumberUtil; import org.springframework.security.crypto.password.PasswordEncoder; public record SignUpAccountRequest( @@ -58,7 +59,7 @@ public UserJpaEntity toAuthEntity(PasswordEncoder passwordEncoder) { .agreedToMarketing(serviceTermRequest.agreedToMarketing()) .gender(Gender.fromName(gender)) .name(userName) - .phoneNumber(phoneNumber) + .phoneNumber(PhoneNumberUtil.formatPhoneNumber(phoneNumber)) .birth(birth) .provider(AuthProvider.MOSU) .userRole(UserRole.ROLE_PENDING)