diff --git a/src/main/java/swm_nm/morandi/domain/testStart/dto/BojProblemDto.java b/src/main/java/swm_nm/morandi/domain/testStart/dto/BojProblemDto.java new file mode 100644 index 00000000..e1dc2437 --- /dev/null +++ b/src/main/java/swm_nm/morandi/domain/testStart/dto/BojProblemDto.java @@ -0,0 +1,16 @@ +package swm_nm.morandi.domain.testStart.dto; + + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; +import lombok.Setter; + +@Setter +@Getter +@Builder +@AllArgsConstructor +public class BojProblemDto { + public Long bojProblemId; + public Boolean isSolved; +} diff --git a/src/main/java/swm_nm/morandi/domain/testStart/dto/TestStartResponseDto.java b/src/main/java/swm_nm/morandi/domain/testStart/dto/TestStartResponseDto.java index ae37a375..86cef666 100644 --- a/src/main/java/swm_nm/morandi/domain/testStart/dto/TestStartResponseDto.java +++ b/src/main/java/swm_nm/morandi/domain/testStart/dto/TestStartResponseDto.java @@ -11,7 +11,7 @@ @Builder public class TestStartResponseDto { private Long testId; - private List bojProblemIds = new ArrayList<>(); + private List bojProblems = new ArrayList<>(); private List testCodeDtos = new ArrayList<>(); private Long remainingTime; } diff --git a/src/main/java/swm_nm/morandi/domain/testStart/service/TestStartUseCase.java b/src/main/java/swm_nm/morandi/domain/testStart/service/TestStartUseCase.java index f2bfdee5..227c3c5e 100644 --- a/src/main/java/swm_nm/morandi/domain/testStart/service/TestStartUseCase.java +++ b/src/main/java/swm_nm/morandi/domain/testStart/service/TestStartUseCase.java @@ -4,11 +4,10 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import swm_nm.morandi.domain.problem.dto.BojProblem; -import swm_nm.morandi.domain.problem.entity.Problem; -import swm_nm.morandi.domain.testDuring.dto.TempCode; import swm_nm.morandi.domain.testDuring.service.TempCodeService; import swm_nm.morandi.domain.testInfo.entity.TestType; import swm_nm.morandi.domain.testInfo.repository.TestTypeRepository; +import swm_nm.morandi.domain.testStart.dto.BojProblemDto; import swm_nm.morandi.domain.testStart.dto.TestCodeDto; import swm_nm.morandi.domain.testStart.dto.TestStartResponseDto; import swm_nm.morandi.domain.testInfo.entity.AttemptProblem; @@ -84,12 +83,20 @@ public TestStartResponseDto getTestStartsData(Long testTypeId) { return getTestStartResponseDto(test, bojProblems); } + + //테스트 만들어졌을 때에는 모두 안 푼 문제니깐 false로 초기화 private TestStartResponseDto getTestStartResponseDto(Tests test, List bojProblems) { - List bojProblemIds = bojProblems.stream().map(BojProblem::getProblemId).collect(Collectors.toList()); + List bojProblemDtos = bojProblems.stream().map(bojProblem -> + BojProblemDto.builder() + .isSolved(false) + .bojProblemId(bojProblem.getProblemId()) + .build()) + .collect(Collectors.toList()); + List testCodeDtos = getTestCodeDtos(test); return TestStartResponseDto.builder() .testId(test.getTestId()) - .bojProblemIds(bojProblemIds) + .bojProblems(bojProblemDtos) .remainingTime(test.getRemainingTime()) .testCodeDtos(testCodeDtos) .build(); @@ -122,13 +129,19 @@ private List getTestCodeDtos(Tests test) { private TestStartResponseDto getTestStartResponseDto(Tests test) { Long testId = test.getTestId(); List attemptProblems = attemptProblemRepository.findAttemptProblemsByTest_TestId(testId); - List bojProblemIds = attemptProblems.stream().map(AttemptProblem::getProblem) - .map(Problem::getBojProblemId).collect(Collectors.toList()); + + List bojProblemDtos = + attemptProblems.stream().map(attemptProblem -> BojProblemDto.builder() + .isSolved(attemptProblem.getIsSolved()) + .bojProblemId(attemptProblem.getProblem().getBojProblemId()) + .build()).collect(Collectors.toList()); + List testCodeDtos = getTestCodeDtos(test); + TestStartResponseDto testStartResponseDto = TestStartResponseDto.builder() .testId(testId) - .bojProblemIds(bojProblemIds) + .bojProblems(bojProblemDtos) .remainingTime(test.getRemainingTime()) .testCodeDtos(testCodeDtos) .build();