|
2 | 2 |
|
3 | 3 |
|
4 | 4 | import com.moplus.moplus_server.admin.publish.domain.Publish;
|
| 5 | +import com.moplus.moplus_server.client.submit.domain.ChildProblemSubmit; |
| 6 | +import com.moplus.moplus_server.client.submit.domain.ChildProblemSubmitStatus; |
5 | 7 | import com.moplus.moplus_server.client.submit.domain.ProblemSubmit;
|
6 | 8 | import com.moplus.moplus_server.client.submit.domain.ProblemSubmitStatus;
|
7 | 9 | import com.moplus.moplus_server.client.submit.dto.response.AllProblemGetResponse;
|
8 | 10 | import com.moplus.moplus_server.client.submit.dto.response.ChildProblemDetailResponse;
|
9 | 11 | import com.moplus.moplus_server.client.submit.dto.response.CommentaryGetResponse;
|
10 | 12 | import com.moplus.moplus_server.client.submit.dto.response.DayProgress;
|
11 | 13 | import com.moplus.moplus_server.client.submit.dto.response.PrescriptionResponse;
|
| 14 | +import com.moplus.moplus_server.client.submit.dto.response.ProblemClientGetResponse; |
12 | 15 | import com.moplus.moplus_server.client.submit.dto.response.ProblemDetailResponse;
|
13 | 16 | import com.moplus.moplus_server.client.submit.repository.ChildProblemSubmitRepository;
|
14 | 17 | import com.moplus.moplus_server.client.submit.repository.ProblemSubmitRepository;
|
| 18 | +import com.moplus.moplus_server.domain.problem.domain.childProblem.ChildProblem; |
15 | 19 | import com.moplus.moplus_server.domain.problem.domain.problem.Problem;
|
16 | 20 | import com.moplus.moplus_server.domain.problem.repository.ProblemRepository;
|
17 | 21 | import com.moplus.moplus_server.domain.problemset.repository.ProblemSetRepository;
|
@@ -116,4 +120,27 @@ private String getMainProblemImageUrl(Long problemSetId) {
|
116 | 120 | .map(Problem::getMainProblemImageUrl)
|
117 | 121 | .orElse(null);
|
118 | 122 | }
|
| 123 | + |
| 124 | + @Transactional(readOnly = true) |
| 125 | + public ProblemClientGetResponse getProblem(Long publishId, Long problemId) { |
| 126 | + Long memberId = 1L; |
| 127 | + |
| 128 | + Problem problem = problemRepository.findByIdElseThrow(problemId); |
| 129 | + |
| 130 | + // 문항 제출 조회 |
| 131 | + ProblemSubmit problemSubmit = problemSubmitRepository.findByMemberIdAndPublishIdAndProblemIdElseThrow(memberId, |
| 132 | + publishId, problemId); |
| 133 | + |
| 134 | + // 새끼 문항 제출 상태 조회 |
| 135 | + List<Long> childProblemIds = problem.getChildProblems().stream() |
| 136 | + .map(ChildProblem::getId) |
| 137 | + .toList(); |
| 138 | + |
| 139 | + List<ChildProblemSubmitStatus> childProblemStatuses = childProblemSubmitRepository.findAllByMemberIdAndPublishIdAndChildProblemIdIn( |
| 140 | + memberId, publishId, childProblemIds).stream() |
| 141 | + .map(ChildProblemSubmit::getStatus) |
| 142 | + .toList(); |
| 143 | + |
| 144 | + return ProblemClientGetResponse.of(problem, problemSubmit.getStatus(), childProblemStatuses); |
| 145 | + } |
119 | 146 | }
|
0 commit comments