Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,19 +1,34 @@
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)
Boolean hasStore // 가게 생성 여부 (사업자만 해당, 일반회원은 null)
) {
public static LoginResponseDto of(
String accessToken, String refreshToken, String fcmToken) {
/**
* Member 객체를 받아서 LoginResponseDto 생성
*/
public static LoginResponseDto from(Member member, String accessToken, String refreshToken, Boolean hasStore) {
return LoginResponseDto.builder()
.accessToken(accessToken)
.refreshToken(refreshToken)
.fcmToken(fcmToken)
.fcmToken(member.getFcmToken())
.memberId(member.getId())
.email(member.getEmail())
.role(member.getRole())
.businessApprovalStatus(member.getIsBusinessApproved())
.hasStore(hasStore)
.build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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; // 가게 존재 여부 확인용 추가

/**
* 개인회원 카카오 회원가입
Expand Down Expand Up @@ -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.of(tokens[0], tokens[1], member.getFcmToken());
return LoginResponseDto.from(member, tokens[0], tokens[1], hasStore);
}

/**
Expand Down Expand Up @@ -274,7 +283,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)
Expand Down