diff --git a/src/main/java/com/example/enjoy/dto/TrackProgressDto.java b/src/main/java/com/example/enjoy/dto/TrackProgressDto.java index 7b46b8b..c64ecb8 100644 --- a/src/main/java/com/example/enjoy/dto/TrackProgressDto.java +++ b/src/main/java/com/example/enjoy/dto/TrackProgressDto.java @@ -21,4 +21,6 @@ public class TrackProgressDto { private List completedCourses; // 이수한 과목 목록 private List remainingCourses; // 이수해야 할 남은 과목 목록 + + private boolean hasUploadedHistory; // 트랙 업로드 여부 } diff --git a/src/main/java/com/example/enjoy/repository/StudentCourseRepository.java b/src/main/java/com/example/enjoy/repository/StudentCourseRepository.java index 1154894..4bb727a 100644 --- a/src/main/java/com/example/enjoy/repository/StudentCourseRepository.java +++ b/src/main/java/com/example/enjoy/repository/StudentCourseRepository.java @@ -24,4 +24,5 @@ public interface StudentCourseRepository extends JpaRepository findAllByStudentIdAndManualIsTrue(String studentId); + boolean existsByStudentId(String studentId); } \ No newline at end of file diff --git a/src/main/java/com/example/enjoy/service/StudentDataService.java b/src/main/java/com/example/enjoy/service/StudentDataService.java index 9fa4a07..ca7112c 100644 --- a/src/main/java/com/example/enjoy/service/StudentDataService.java +++ b/src/main/java/com/example/enjoy/service/StudentDataService.java @@ -79,4 +79,8 @@ private StudentCourseStatus mapGradeToStatus(String grade) { default -> throw new IllegalArgumentException("잘못된 등급값: " + grade); }; } + + public boolean hasUploadedHistory(String studentId) { + return studentCourseRepository.existsByStudentId(studentId); + } } diff --git a/src/main/java/com/example/enjoy/service/TrackService.java b/src/main/java/com/example/enjoy/service/TrackService.java index cf25282..5f3896c 100644 --- a/src/main/java/com/example/enjoy/service/TrackService.java +++ b/src/main/java/com/example/enjoy/service/TrackService.java @@ -28,14 +28,14 @@ public class TrackService { private final TrackRepository trackRepository; - private final StudentCourseRepository studentCourseRepository; // 기존 기능 - private final FavoriteCourseRepository favoriteCourseRepository; - private final UserRepository userRepository; + private final StudentCourseRepository studentCourseRepository; + //진척률 계산 public List calculateTrackProgress(String studentId) { - Set completedCourseNames = getCompletedCourseNames(studentId); // 이수 과목명 목록 + boolean hasUploaded = studentCourseRepository.existsByStudentId(studentId); + Set completedCourseNames = getCompletedCourseNames(studentId); // 이수 과목명 목록 List allTracks = trackRepository.findAll(); return allTracks.stream().map(track -> { @@ -59,7 +59,8 @@ public List calculateTrackProgress(String studentId) { courses.size(), completed.size() == courses.size(), completed, - remaining + remaining, + hasUploaded ); }).toList(); }