From 23ca0c8e61fe5ff0354e572eba964f200eca16b6 Mon Sep 17 00:00:00 2001 From: KNU-K Date: Mon, 11 Aug 2025 22:00:05 +0900 Subject: [PATCH] feat: implement saveOrGetUser method to streamline user creation and retrieval --- .../application/ApplicationService.java | 2 +- .../mosuserver/application/user/UserService.java | 16 ++++++++++------ 2 files changed, 11 insertions(+), 7 deletions(-) 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) {