diff --git a/src/main/java/com/palbang/unsemawang/chemistry/controller/RecommendControllerImpl.java b/src/main/java/com/palbang/unsemawang/chemistry/controller/RecommendControllerImpl.java index e077892f..b8e59b2c 100644 --- a/src/main/java/com/palbang/unsemawang/chemistry/controller/RecommendControllerImpl.java +++ b/src/main/java/com/palbang/unsemawang/chemistry/controller/RecommendControllerImpl.java @@ -8,7 +8,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import com.palbang.unsemawang.chemistry.batch.TotalCalculationService; import com.palbang.unsemawang.chemistry.dto.response.ChemistryRecommendResponse; import com.palbang.unsemawang.chemistry.service.RecommendService; import com.palbang.unsemawang.common.constants.ResponseCode; @@ -23,7 +22,6 @@ public class RecommendControllerImpl implements RecommendController { private final RecommendService recommendService; - private final TotalCalculationService totalCalculationService; @GetMapping("/recommendations") @Override @@ -34,7 +32,7 @@ public ResponseEntity> recommendChemistryMember throw new GeneralException(ResponseCode.EMPTY_TOKEN); } - List recommendedMemberList = recommendService.getTop5Matches(auth.getId()); + List recommendedMemberList = recommendService.getTopMatches(auth.getId()); return ResponseEntity.ok(recommendedMemberList); } diff --git a/src/main/java/com/palbang/unsemawang/chemistry/repository/MemberMatchingScoreRepository.java b/src/main/java/com/palbang/unsemawang/chemistry/repository/MemberMatchingScoreRepository.java index 7aa01158..34cfbb9a 100644 --- a/src/main/java/com/palbang/unsemawang/chemistry/repository/MemberMatchingScoreRepository.java +++ b/src/main/java/com/palbang/unsemawang/chemistry/repository/MemberMatchingScoreRepository.java @@ -11,7 +11,7 @@ @Repository public interface MemberMatchingScoreRepository extends JpaRepository { - List findTop5ByMemberIdOrderByScoreDesc(String memberId); + List findTop4ByMemberIdOrderByScoreDesc(String memberId); MemberMatchingScore findByMemberAndMatchMember(Member member, Member matchMember); } diff --git a/src/main/java/com/palbang/unsemawang/chemistry/service/RecommendService.java b/src/main/java/com/palbang/unsemawang/chemistry/service/RecommendService.java index 042c5bbb..5f557d70 100644 --- a/src/main/java/com/palbang/unsemawang/chemistry/service/RecommendService.java +++ b/src/main/java/com/palbang/unsemawang/chemistry/service/RecommendService.java @@ -28,24 +28,24 @@ public class RecommendService { private final FileService fileService; @Transactional(readOnly = true) - public List getTop5Matches(String memberId) { + public List getTopMatches(String memberId) { Member member = memberRepository.findById(memberId) .orElseThrow(() -> new GeneralException(ResponseCode.NOT_EXIST_MEMBER_ID)); - List matchingScores = memberMatchingScoreRepository.findTop5ByMemberIdOrderByScoreDesc( + List matchingScores = memberMatchingScoreRepository.findTop4ByMemberIdOrderByScoreDesc( member.getId()); if (matchingScores.isEmpty()) { - throw new GeneralException(ResponseCode.ERROR_SEARCH); + throw new GeneralException(ResponseCode.NOT_MATCHING_PEOPLE); } // 최대 점수 찾기 int maxScore = matchingScores.get(0).getScore(); // 가장 높은 점수 기준으로 스케일링 - String imgUrl = fileService.getProfileImgUrl(memberId); - + return matchingScores.stream() .map(score -> { String matchMemberId = score.getMatchMember().getId(); + String imgUrl = fileService.getProfileImgUrl(matchMemberId); FortuneUserInfo fortuneUserInfo = fortuneUserInfoRepository.findByMemberIdRelationIdIsOne(matchMemberId) .orElseThrow(() -> new GeneralException(ResponseCode.ERROR_SEARCH)); diff --git a/src/main/java/com/palbang/unsemawang/common/constants/ResponseCode.java b/src/main/java/com/palbang/unsemawang/common/constants/ResponseCode.java index 62b4b13b..c6a3446c 100644 --- a/src/main/java/com/palbang/unsemawang/common/constants/ResponseCode.java +++ b/src/main/java/com/palbang/unsemawang/common/constants/ResponseCode.java @@ -63,6 +63,7 @@ public enum ResponseCode implements Codable { NOT_EXIST_FORTUNE_USER_INFO("6133", HttpStatus.BAD_REQUEST, "해당 사주 정보를 찾을 수 없습니다."), NOT_EXIST_USER_RELATION("6134", HttpStatus.BAD_REQUEST, "해당 사주 관계를 찾을 수 없습니다."), NOT_CHANGED_RELATION("6135", HttpStatus.BAD_REQUEST, "본인 관계는 수정할 수 없습니다."), + NOT_MATCHING_PEOPLE("6135", HttpStatus.BAD_REQUEST, "추천된 사용자 리스트가 없습니다."), NOT_UPDATED_SHARE_FORTUNE_CATEGORY("6136", HttpStatus.BAD_REQUEST, "운세공유 게시판은 수정이 불가합니다."), // 유효성 검사 오류 (형식: 62xx)