diff --git a/src/main/java/com/beat/admin/facade/AdminFacade.java b/src/main/java/com/beat/admin/facade/AdminFacade.java index bc9db570..968b1d5b 100644 --- a/src/main/java/com/beat/admin/facade/AdminFacade.java +++ b/src/main/java/com/beat/admin/facade/AdminFacade.java @@ -40,26 +40,26 @@ public class AdminFacade { private final PromotionUseCase promotionUseCase; public UserFindAllResponse checkMemberAndFindAllUsers(Long memberId) { - memberUseCase.findMemberById(memberId); + memberUseCase.findMemberByMemberId(memberId); List users = userUseCase.findAllUsers(); return UserFindAllResponse.from(users); } public CarouselPresignedUrlFindAllResponse checkMemberAndIssueAllPresignedUrlsForCarousel(Long memberId, List carouselImages) { - memberUseCase.findMemberById(memberId); + memberUseCase.findMemberByMemberId(memberId); Map carouselPresignedUrls = fileUseCase.issueAllPresignedUrlsForCarousel(carouselImages); return CarouselPresignedUrlFindAllResponse.from(carouselPresignedUrls); } public BannerPresignedUrlFindResponse checkMemberAndIssuePresignedUrlForBanner(Long memberId, String bannerImage) { - memberUseCase.findMemberById(memberId); + memberUseCase.findMemberByMemberId(memberId); String bannerPresignedUrl = fileUseCase.issuePresignedUrlForBanner(bannerImage); return BannerPresignedUrlFindResponse.from(bannerPresignedUrl); } public CarouselFindAllResponse checkMemberAndFindAllPromotionsSortedByCarouselNumber(Long memberId) { - memberUseCase.findMemberById(memberId); + memberUseCase.findMemberByMemberId(memberId); List promotions = adminUsecase.findAllPromotionsSortedByCarouselNumber(); return CarouselFindAllResponse.from(promotions); } @@ -67,7 +67,7 @@ public CarouselFindAllResponse checkMemberAndFindAllPromotionsSortedByCarouselNu public CarouselHandleAllResponse checkMemberAndProcessAllPromotionsSortedByCarouselNumber(Long memberId, CarouselHandleRequest request) { - memberUseCase.findMemberById(memberId); + memberUseCase.findMemberByMemberId(memberId); List modifyRequests = new ArrayList<>(); List generateRequests = new ArrayList<>(); diff --git a/src/main/java/com/beat/domain/member/application/MemberService.java b/src/main/java/com/beat/domain/member/application/MemberService.java index c9019cb8..5fdb3a4b 100644 --- a/src/main/java/com/beat/domain/member/application/MemberService.java +++ b/src/main/java/com/beat/domain/member/application/MemberService.java @@ -8,8 +8,10 @@ import com.beat.domain.user.dao.UserRepository; import com.beat.domain.user.domain.Users; import com.beat.global.common.exception.*; + import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; + import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -18,34 +20,34 @@ @Transactional(readOnly = true) @Service public class MemberService implements MemberUseCase { - private final UserRepository userRepository; - private final MemberRepository memberRepository; - - @Transactional - public void deleteUser(final Long id) { - Users users = userRepository.findById(id) - .orElseThrow(() -> new NotFoundException(MemberErrorCode.MEMBER_NOT_FOUND)); - - userRepository.delete(users); - } - - public boolean checkMemberExistsBySocialIdAndSocialType(final Long socialId, final SocialType socialType) { - return memberRepository.findBySocialTypeAndSocialId(socialId, socialType).isPresent(); - } - - public Member findMemberBySocialIdAndSocialType(final Long socialId, final SocialType socialType) { - return memberRepository.findBySocialTypeAndSocialId(socialId, socialType) - .orElseThrow(() -> new NotFoundException(MemberErrorCode.MEMBER_NOT_FOUND)); - } - - public Users findUserByMemberId(final Long memberId) { - return userRepository.findById(memberId) - .orElseThrow(() -> new NotFoundException(MemberErrorCode.MEMBER_NOT_FOUND)); - } - - @Override - public Member findMemberById(Long memberId) { - return memberRepository.findById(memberId) - .orElseThrow(() -> new NotFoundException(MemberErrorCode.MEMBER_NOT_FOUND)); - } + private final UserRepository userRepository; + private final MemberRepository memberRepository; + + @Override + @Transactional(readOnly = true) + public Member findMemberByMemberId(Long memberId) { + return memberRepository.findById(memberId) + .orElseThrow(() -> new NotFoundException(MemberErrorCode.MEMBER_NOT_FOUND)); + } + + @Override + @Transactional(readOnly = true) + public boolean checkMemberExistsBySocialIdAndSocialType(final Long socialId, final SocialType socialType) { + return memberRepository.findBySocialTypeAndSocialId(socialId, socialType).isPresent(); + } + + @Override + @Transactional(readOnly = true) + public Member findMemberBySocialIdAndSocialType(final Long socialId, final SocialType socialType) { + return memberRepository.findBySocialTypeAndSocialId(socialId, socialType) + .orElseThrow(() -> new NotFoundException(MemberErrorCode.MEMBER_NOT_FOUND)); + } + + @Transactional + public void deleteUser(final Long id) { + Users users = userRepository.findById(id) + .orElseThrow(() -> new NotFoundException(MemberErrorCode.MEMBER_NOT_FOUND)); + + userRepository.delete(users); + } } \ No newline at end of file diff --git a/src/main/java/com/beat/domain/member/application/SocialLoginService.java b/src/main/java/com/beat/domain/member/application/SocialLoginService.java index 4fa4a0b4..36b304c9 100644 --- a/src/main/java/com/beat/domain/member/application/SocialLoginService.java +++ b/src/main/java/com/beat/domain/member/application/SocialLoginService.java @@ -4,7 +4,9 @@ import com.beat.domain.member.domain.SocialType; import com.beat.domain.member.dto.LoginSuccessResponse; import com.beat.domain.member.exception.MemberErrorCode; +import com.beat.domain.member.port.in.MemberUseCase; import com.beat.domain.user.domain.Users; +import com.beat.domain.user.port.in.UserUseCase; import com.beat.global.auth.client.application.KakaoSocialService; import com.beat.global.auth.client.application.SocialService; import com.beat.global.auth.client.dto.MemberInfoResponse; @@ -22,10 +24,10 @@ @Service public class SocialLoginService { - private final MemberService memberService; private final MemberRegistrationService memberRegistrationService; private final AuthenticationService authenticationService; private final KakaoSocialService kakaoSocialService; + private final MemberUseCase memberUseCase; /** * 소셜 로그인 또는 회원가입을 처리하는 메서드. @@ -86,7 +88,9 @@ private LoginSuccessResponse generateLoginResponseFromMemberInfo(final MemberInf Long memberId = findOrRegisterMember(memberInfoResponse); log.info("Found or registered member with memberId: {}", memberId); - Users user = memberService.findUserByMemberId(memberId); + Member member = memberUseCase.findMemberByMemberId(memberId); + Users user = member.getUser(); + log.info("User role before generating token: {}", user.getRole()); return authenticationService.generateLoginSuccessResponse(memberId, user, memberInfoResponse); @@ -100,11 +104,11 @@ private LoginSuccessResponse generateLoginResponseFromMemberInfo(final MemberInf * @return 등록된 회원 또는 기존 회원의 ID */ private Long findOrRegisterMember(final MemberInfoResponse memberInfoResponse) { - boolean memberExists = memberService.checkMemberExistsBySocialIdAndSocialType(memberInfoResponse.socialId(), + boolean memberExists = memberUseCase.checkMemberExistsBySocialIdAndSocialType(memberInfoResponse.socialId(), memberInfoResponse.socialType()); if (memberExists) { - Member existingMember = memberService.findMemberBySocialIdAndSocialType(memberInfoResponse.socialId(), + Member existingMember = memberUseCase.findMemberBySocialIdAndSocialType(memberInfoResponse.socialId(), memberInfoResponse.socialType()); log.info("Existing member role: {}", existingMember.getUser().getRole()); return existingMember.getId(); diff --git a/src/main/java/com/beat/domain/member/port/in/MemberUseCase.java b/src/main/java/com/beat/domain/member/port/in/MemberUseCase.java index 1dd01dd0..d6a194b1 100644 --- a/src/main/java/com/beat/domain/member/port/in/MemberUseCase.java +++ b/src/main/java/com/beat/domain/member/port/in/MemberUseCase.java @@ -1,7 +1,14 @@ package com.beat.domain.member.port.in; import com.beat.domain.member.domain.Member; +import com.beat.domain.member.domain.SocialType; public interface MemberUseCase { - Member findMemberById(Long memberId); + Member findMemberByMemberId(Long memberId); + + boolean checkMemberExistsBySocialIdAndSocialType(Long socialId, SocialType socialType); + + Member findMemberBySocialIdAndSocialType(Long socialId, SocialType socialType); + + void deleteUser(Long id); } diff --git a/src/main/java/com/beat/domain/user/application/UserService.java b/src/main/java/com/beat/domain/user/application/UserService.java index 0a1c5d72..f485c0fc 100644 --- a/src/main/java/com/beat/domain/user/application/UserService.java +++ b/src/main/java/com/beat/domain/user/application/UserService.java @@ -2,8 +2,12 @@ import com.beat.domain.user.dao.UserRepository; import com.beat.domain.user.domain.Users; +import com.beat.domain.user.exception.UserErrorCode; import com.beat.domain.user.port.in.UserUseCase; +import com.beat.global.common.exception.NotFoundException; + import lombok.RequiredArgsConstructor; + import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -12,11 +16,18 @@ @Service @RequiredArgsConstructor public class UserService implements UserUseCase { - private final UserRepository userRepository; + private final UserRepository userRepository; + + @Override + @Transactional(readOnly = true) + public List findAllUsers() { + return userRepository.findAll(); + } - @Override - @Transactional(readOnly = true) - public List findAllUsers() { - return userRepository.findAll(); - } + @Override + @Transactional(readOnly = true) + public Users findUserByUserId(final Long userId) { + return userRepository.findById(userId) + .orElseThrow(() -> new NotFoundException(UserErrorCode.USER_NOT_FOUND)); + } } \ No newline at end of file diff --git a/src/main/java/com/beat/domain/user/port/in/UserUseCase.java b/src/main/java/com/beat/domain/user/port/in/UserUseCase.java index 759b2625..4ef38873 100644 --- a/src/main/java/com/beat/domain/user/port/in/UserUseCase.java +++ b/src/main/java/com/beat/domain/user/port/in/UserUseCase.java @@ -6,4 +6,6 @@ public interface UserUseCase { List findAllUsers(); + + Users findUserByUserId(final Long userId); } \ No newline at end of file