From 85154bbeaf953cc03a017175845566a3b0797214 Mon Sep 17 00:00:00 2001 From: tlsalsco41122 Date: Thu, 27 Nov 2025 20:31:16 +0900 Subject: [PATCH] feat :: new user mission --- .../uga/domain/auth/usecase/AuthUseCase.java | 6 ++++-- .../uga/domain/oauth/usecase/OAuthUseCase.java | 17 +++++++++++------ 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/olympus/uga/domain/auth/usecase/AuthUseCase.java b/src/main/java/com/olympus/uga/domain/auth/usecase/AuthUseCase.java index baacd353..91b01a8d 100644 --- a/src/main/java/com/olympus/uga/domain/auth/usecase/AuthUseCase.java +++ b/src/main/java/com/olympus/uga/domain/auth/usecase/AuthUseCase.java @@ -4,6 +4,7 @@ import com.olympus.uga.domain.auth.presentation.dto.request.SignInReq; import com.olympus.uga.domain.auth.presentation.dto.response.RefreshRes; import com.olympus.uga.domain.auth.presentation.dto.response.SignInRes; +import com.olympus.uga.domain.mission.service.MissionAssignService; import com.olympus.uga.domain.sms.error.SmsErrorCode; import com.olympus.uga.domain.user.domain.User; import com.olympus.uga.domain.auth.error.AuthErrorCode; @@ -30,6 +31,7 @@ public class AuthUseCase { private final JwtProvider jwtProvider; private final BCryptPasswordEncoder passwordEncoder; private final StringRedisTemplate redisTemplate; + private final MissionAssignService missionAssignService; @Transactional public Response signUp(SignUpReq req) { @@ -42,8 +44,8 @@ public Response signUp(SignUpReq req) { throw new CustomException(SmsErrorCode.PHONE_NUM_NOT_VERIFIED); } - // TODO: 미션 할당 - userJpaRepo.save(SignUpReq.fromSignUpReq(req, passwordEncoder.encode(req.password()))); + User savedUser = userJpaRepo.save(SignUpReq.fromSignUpReq(req, passwordEncoder.encode(req.password()))); + missionAssignService.assignMissionsToNewUser(savedUser); // 미션 부여 redisTemplate.delete("sms:verified:" + req.phoneNum()); return Response.created("회원가입에 성공하였습니다."); diff --git a/src/main/java/com/olympus/uga/domain/oauth/usecase/OAuthUseCase.java b/src/main/java/com/olympus/uga/domain/oauth/usecase/OAuthUseCase.java index b8431444..42fce439 100644 --- a/src/main/java/com/olympus/uga/domain/oauth/usecase/OAuthUseCase.java +++ b/src/main/java/com/olympus/uga/domain/oauth/usecase/OAuthUseCase.java @@ -11,13 +11,12 @@ import com.olympus.uga.domain.user.domain.repo.UserJpaRepo; import com.olympus.uga.global.common.ResponseData; import com.olympus.uga.global.security.jwt.util.JwtProvider; +import com.olympus.uga.domain.mission.service.MissionAssignService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.Optional; - import static com.olympus.uga.domain.oauth.presentation.dto.response.GoogleUserInfoDto.registerGoogleUser; import static com.olympus.uga.domain.oauth.presentation.dto.response.KakaoUserInfoDto.registerKakaoUser; @@ -30,6 +29,7 @@ public class OAuthUseCase { private final GoogleOAuthService googleOAuthService; private final AppleOAuthService appleOAuthService; private final JwtProvider jwtProvider; + private final MissionAssignService missionAssignService; @Transactional public ResponseData loginWithKakaoToken(String accessToken) { @@ -38,7 +38,9 @@ public ResponseData loginWithKakaoToken(String accessToken) { User user = userJpaRepo.findByOauthIdAndLoginType(userInfo.id(), LoginType.KAKAO) .orElseGet(() -> { User newUser = registerKakaoUser(userInfo); - return userJpaRepo.save(newUser); + User saved = userJpaRepo.save(newUser); + missionAssignService.assignMissionsToNewUser(saved); // 미션부여 + return saved; }); return ResponseData.ok("카카오 로그인에 성공하였습니다.", jwtProvider.createToken(user.getId())); @@ -51,7 +53,9 @@ public ResponseData loginWithGoogleToken(String accessToken) { User user = userJpaRepo.findByOauthIdAndLoginType(userInfo.id(), LoginType.GOOGLE) .orElseGet(() -> { User newUser = registerGoogleUser(userInfo); - return userJpaRepo.save(newUser); + User saved = userJpaRepo.save(newUser); + missionAssignService.assignMissionsToNewUser(saved); + return saved; }); return ResponseData.ok("구글 로그인에 성공하였습니다.", jwtProvider.createToken(user.getId())); @@ -65,8 +69,9 @@ public ResponseData appleLogin(String code) { // 2. 기존 회원 확인 및 처리 User user = userJpaRepo.findByOauthIdAndLoginType(appleUser.getOauthId(), LoginType.APPLE) .orElseGet(() -> { - User newUser = appleUser; - return userJpaRepo.save(newUser); + User saved = userJpaRepo.save(appleUser); + missionAssignService.assignMissionsToNewUser(saved); + return saved; }); // 기존 회원인 경우 로그인 시간 업데이트