Skip to content

Commit 9cf18a6

Browse files
committed
[hotfix] 월별 조회시 제출 안한 문항도 조회
1 parent fc015c7 commit 9cf18a6

File tree

1 file changed

+17
-3
lines changed

1 file changed

+17
-3
lines changed

src/main/java/com/moplus/moplus_server/client/problem/service/ClientProblemsGetService.java

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@
2929
import java.time.LocalDate;
3030
import java.util.ArrayList;
3131
import java.util.List;
32+
import java.util.Map;
33+
import java.util.stream.Collectors;
3234
import lombok.RequiredArgsConstructor;
3335
import org.springframework.stereotype.Service;
3436
import org.springframework.transaction.annotation.Transactional;
@@ -83,12 +85,24 @@ public List<AllProblemGetResponse> getAllProblem(Long memberId, int year, int mo
8385
Long publishId = publish.getId();
8486
LocalDate date = publish.getPublishedDate();
8587

86-
// 날짜별 사용자 제출 정보 조회
88+
// 문항세트의 전체 문제 목록 조회
89+
ProblemSet problemSet = problemSetRepository.findByIdElseThrow(publish.getProblemSetId());
90+
List<Long> problemIds = problemSet.getProblemIds();
91+
92+
// 사용자 제출 정보 조회
8793
List<ProblemSubmit> submissions = problemSubmitRepository.findByMemberIdAndPublishId(memberId, publishId);
88-
List<ProblemSubmitStatus> problemStatuses = submissions.stream()
89-
.map(ProblemSubmit::getStatus)
94+
Map<Long, ProblemSubmitStatus> submitStatusMap = submissions.stream()
95+
.collect(Collectors.toMap(
96+
ProblemSubmit::getProblemId,
97+
ProblemSubmit::getStatus
98+
));
99+
100+
// 모든 문항에 대해 상태 리스트 구성
101+
List<ProblemSubmitStatus> problemStatuses = problemIds.stream()
102+
.map(id -> submitStatusMap.getOrDefault(id, ProblemSubmitStatus.NOT_STARTED))
90103
.toList();
91104

105+
92106
// 사용자 제출 정보 바탕으로 진행도 결정
93107
DayProgress progress = DayProgress.determineDayProgress(problemStatuses);
94108
String mainProblemImageUrl = getMainProblemImageUrl(publish.getProblemSetId());

0 commit comments

Comments
 (0)