diff --git a/src/main/java/life/mosu/mosuserver/application/application/ApplicationService.java b/src/main/java/life/mosu/mosuserver/application/application/ApplicationService.java index 09362530..b3899f1f 100644 --- a/src/main/java/life/mosu/mosuserver/application/application/ApplicationService.java +++ b/src/main/java/life/mosu/mosuserver/application/application/ApplicationService.java @@ -61,7 +61,7 @@ public CreateApplicationResponse apply(Long userId, ApplicationRequest request) @Transactional public CreateApplicationResponse applyByGuest(ApplicationGuestRequest request) { - Long userId = userService.saveUser(request.toUserJpaEntity()); + Long userId = userService.saveOrGetUser(request.toUserJpaEntity()); CreateApplicationResponse response = handleApplication( userId, List.of(request.examApplication().examId()), diff --git a/src/main/java/life/mosu/mosuserver/application/user/UserService.java b/src/main/java/life/mosu/mosuserver/application/user/UserService.java index be991f70..ce3b0918 100644 --- a/src/main/java/life/mosu/mosuserver/application/user/UserService.java +++ b/src/main/java/life/mosu/mosuserver/application/user/UserService.java @@ -37,12 +37,16 @@ public void syncUserInfoFromProfile(UserJpaEntity user, ProfileJpaEntity profile } } - public Long saveUser(UserJpaEntity user) { - Long userId = userJpaRepository.save(user).getId(); - if (userId == null) { - throw new CustomRuntimeException(ErrorCode.USER_SAVE_FAILED); - } - return userId; + public Long saveOrGetUser(UserJpaEntity user) { + return userJpaRepository.findByPhoneNumber(user.getPhoneNumber()) + .map(UserJpaEntity::getId) + .orElseGet(() -> { + Long userId = userJpaRepository.save(user).getId(); + if (userId == null) { + throw new CustomRuntimeException(ErrorCode.USER_SAVE_FAILED); + } + return userId; + }); } public UserInfoResponse getUserInfo(Long userId) {