From 400de71deeb1b59581ad1dac9d7e4ffe7f446bcb Mon Sep 17 00:00:00 2001 From: dongcarry96 Date: Thu, 25 Sep 2025 12:09:24 +0900 Subject: [PATCH 1/2] =?UTF-8?q?refactor:=20=EC=82=AC=EC=9E=A5=EB=8B=98=20?= =?UTF-8?q?=EB=A1=9C=EA=B7=B8=EC=9D=B8=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/responseDto/LoginResponseDto.java | 21 +++++++++++++++---- .../command/AuthCommandServiceImpl.java | 4 ++-- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/iitp/domains/auth/dto/responseDto/LoginResponseDto.java b/src/main/java/com/iitp/domains/auth/dto/responseDto/LoginResponseDto.java index e96eb41..ac63df3 100644 --- a/src/main/java/com/iitp/domains/auth/dto/responseDto/LoginResponseDto.java +++ b/src/main/java/com/iitp/domains/auth/dto/responseDto/LoginResponseDto.java @@ -1,19 +1,32 @@ package com.iitp.domains.auth.dto.responseDto; +import com.iitp.domains.member.domain.BusinessApprovalStatus; +import com.iitp.domains.member.domain.Role; +import com.iitp.domains.member.domain.entity.Member; import lombok.Builder; @Builder public record LoginResponseDto( String accessToken, String refreshToken, - String fcmToken + String fcmToken, + Long memberId, + String email, + Role role, + BusinessApprovalStatus businessApprovalStatus // 사업자 승인 상태 (일반회원은 null) ) { - public static LoginResponseDto of( - String accessToken, String refreshToken, String fcmToken) { + /** + * Member 객체를 받아서 LoginResponseDto 생성 + */ + public static LoginResponseDto from(Member member, String accessToken, String refreshToken) { return LoginResponseDto.builder() .accessToken(accessToken) .refreshToken(refreshToken) - .fcmToken(fcmToken) + .fcmToken(member.getFcmToken()) + .memberId(member.getId()) + .email(member.getEmail()) + .role(member.getRole()) + .businessApprovalStatus(member.getIsBusinessApproved()) .build(); } } diff --git a/src/main/java/com/iitp/domains/auth/service/command/AuthCommandServiceImpl.java b/src/main/java/com/iitp/domains/auth/service/command/AuthCommandServiceImpl.java index 2b5ab8a..bd602bc 100644 --- a/src/main/java/com/iitp/domains/auth/service/command/AuthCommandServiceImpl.java +++ b/src/main/java/com/iitp/domains/auth/service/command/AuthCommandServiceImpl.java @@ -161,7 +161,7 @@ public LoginResponseDto signin(MemberLogInRequestDto request) { log.info("로그인 완료 - memberId: {}", member.getId()); log.info("로그인 완료 - memberFcmToken: {}", member.getFcmToken()); - return LoginResponseDto.of(tokens[0], tokens[1], member.getFcmToken()); + return LoginResponseDto.from(member, tokens[0], tokens[1]); } /** @@ -274,7 +274,7 @@ private Location createLocationWithCoordinates(Long memberId, String address, St } catch (Exception e) { log.warn("좌표 변환 실패 - fullAddress: {}, error: {}", address, e.getMessage()); - // 🔥 좌표 변환 실패 시에도 주소 정보는 저장 + // 좌표 변환 실패 시에도 주소 정보는 저장 return Location.builder() .memberId(memberId) .address(address) From 1b0debf7c61c5e9fc886be2529e3a8fcf5155af3 Mon Sep 17 00:00:00 2001 From: dongcarry96 Date: Thu, 25 Sep 2025 17:05:31 +0900 Subject: [PATCH 2/2] =?UTF-8?q?refactor:=20=EA=B0=80=EA=B2=8C=20=EC=83=9D?= =?UTF-8?q?=EC=84=B1=20=EC=97=AC=EB=B6=80=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../auth/dto/responseDto/LoginResponseDto.java | 6 ++++-- .../auth/service/command/AuthCommandServiceImpl.java | 11 ++++++++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/iitp/domains/auth/dto/responseDto/LoginResponseDto.java b/src/main/java/com/iitp/domains/auth/dto/responseDto/LoginResponseDto.java index ac63df3..f9c50cc 100644 --- a/src/main/java/com/iitp/domains/auth/dto/responseDto/LoginResponseDto.java +++ b/src/main/java/com/iitp/domains/auth/dto/responseDto/LoginResponseDto.java @@ -13,12 +13,13 @@ public record LoginResponseDto( Long memberId, String email, Role role, - BusinessApprovalStatus businessApprovalStatus // 사업자 승인 상태 (일반회원은 null) + BusinessApprovalStatus businessApprovalStatus, // 사업자 승인 상태 (일반회원은 null) + Boolean hasStore // 가게 생성 여부 (사업자만 해당, 일반회원은 null) ) { /** * Member 객체를 받아서 LoginResponseDto 생성 */ - public static LoginResponseDto from(Member member, String accessToken, String refreshToken) { + public static LoginResponseDto from(Member member, String accessToken, String refreshToken, Boolean hasStore) { return LoginResponseDto.builder() .accessToken(accessToken) .refreshToken(refreshToken) @@ -27,6 +28,7 @@ public static LoginResponseDto from(Member member, String accessToken, String re .email(member.getEmail()) .role(member.getRole()) .businessApprovalStatus(member.getIsBusinessApproved()) + .hasStore(hasStore) .build(); } } diff --git a/src/main/java/com/iitp/domains/auth/service/command/AuthCommandServiceImpl.java b/src/main/java/com/iitp/domains/auth/service/command/AuthCommandServiceImpl.java index bd602bc..e4e7bb5 100644 --- a/src/main/java/com/iitp/domains/auth/service/command/AuthCommandServiceImpl.java +++ b/src/main/java/com/iitp/domains/auth/service/command/AuthCommandServiceImpl.java @@ -16,6 +16,7 @@ import com.iitp.domains.member.repository.MemberRepository; import com.iitp.domains.member.service.command.EmailCreateService; import com.iitp.domains.member.service.query.MemberQueryService; +import com.iitp.domains.store.repository.store.StoreRepositoryCustom; import com.iitp.global.config.security.KakaoApiClient; import com.iitp.global.exception.BadRequestException; import com.iitp.global.exception.ExceptionMessage; @@ -41,6 +42,7 @@ public class AuthCommandServiceImpl implements AuthCommandService { private final JwtUtil jwtUtil; private final EmailCreateService emailCreateService; private final KakaoGeocodingService kakaoGeocodingService; + private final StoreRepositoryCustom storeRepository; // 가게 존재 여부 확인용 추가 /** * 개인회원 카카오 회원가입 @@ -158,10 +160,17 @@ public LoginResponseDto signin(MemberLogInRequestDto request) { // 6. 변경사항 저장 memberRepository.save(member); + // 7. 사업자인 경우 가게 생성 여부 확인 + Boolean hasStore = null; + if (member.getRole() == Role.ROLE_STORE) { + hasStore = storeRepository.findByMemberId(member.getId()).isPresent(); + log.info("사업자 가게 생성 여부 확인 - memberId: {}, hasStore: {}", member.getId(), hasStore); + } + log.info("로그인 완료 - memberId: {}", member.getId()); log.info("로그인 완료 - memberFcmToken: {}", member.getFcmToken()); - return LoginResponseDto.from(member, tokens[0], tokens[1]); + return LoginResponseDto.from(member, tokens[0], tokens[1], hasStore); } /**