From d1f72830a93e15c9e561d118668d7746be5b9350 Mon Sep 17 00:00:00 2001 From: pywoo Date: Tue, 12 Aug 2025 13:28:08 +0900 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20fix:=20Grade=20=EC=A1=B0?= =?UTF-8?q?=ED=9A=8C=20=EB=A1=9C=EC=A7=81=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../member/repository/GradeRepository.java | 14 -------------- .../service/query/GradeQueryServiceImpl.java | 18 ++++++++++++++++-- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/main/java/org/withtime/be/withtimebe/domain/member/repository/GradeRepository.java b/src/main/java/org/withtime/be/withtimebe/domain/member/repository/GradeRepository.java index c7cefa5..d9fb5f7 100644 --- a/src/main/java/org/withtime/be/withtimebe/domain/member/repository/GradeRepository.java +++ b/src/main/java/org/withtime/be/withtimebe/domain/member/repository/GradeRepository.java @@ -1,21 +1,7 @@ package org.withtime.be.withtimebe.domain.member.repository; -import java.util.Optional; - import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.Query; -import org.springframework.data.repository.query.Param; import org.withtime.be.withtimebe.domain.member.entity.Grade; public interface GradeRepository extends JpaRepository { - - @Query("SELECT g FROM Grade g " + - "WHERE g.requiredPoint <= :point " + - "ORDER BY g.requiredPoint DESC") - Optional findCurrentGrade(@Param("point") int point); - - @Query("SELECT g FROM Grade g " + - "WHERE g.requiredPoint > :point " + - "ORDER BY g.requiredPoint ASC") - Optional findNextGrade(@Param("point") int point); } diff --git a/src/main/java/org/withtime/be/withtimebe/domain/member/service/query/GradeQueryServiceImpl.java b/src/main/java/org/withtime/be/withtimebe/domain/member/service/query/GradeQueryServiceImpl.java index a0e611f..6e1f1aa 100644 --- a/src/main/java/org/withtime/be/withtimebe/domain/member/service/query/GradeQueryServiceImpl.java +++ b/src/main/java/org/withtime/be/withtimebe/domain/member/service/query/GradeQueryServiceImpl.java @@ -1,5 +1,8 @@ package org.withtime.be.withtimebe.domain.member.service.query; +import java.util.Comparator; +import java.util.List; + import org.springframework.stereotype.Service; import org.springframework.web.ErrorResponseException; import org.withtime.be.withtimebe.domain.member.converter.GradeConverter; @@ -23,10 +26,21 @@ public GradeResponseDTO.FindMyGrade findMyGrade(Member member) { int currentPoint = member.getPoint(); - Grade currentGrade = gradeRepository.findCurrentGrade(currentPoint) + List gradeList = gradeRepository.findAll(); + + // 필요 포인트 기준 오름차순 정렬 + gradeList.sort(Comparator.comparingInt(Grade::getRequiredPoint)); + + // 현재 Grade + Grade currentGrade = gradeList.stream() + .filter(g -> g.getRequiredPoint() <= currentPoint) + .max(Comparator.comparingInt(Grade::getRequiredPoint)) .orElseThrow(() -> new GradeException(GradeErrorCode.GRADE_NOT_FOUND)); - Grade nextGrade = gradeRepository.findNextGrade(currentPoint) + // 다음 Grade + Grade nextGrade = gradeList.stream() + .filter(g -> g.getRequiredPoint() > currentPoint) + .findFirst() .orElse(null); return GradeConverter.toFindMyGrade(member, currentGrade, nextGrade);