7
7
import com .moplus .moplus_server .client .submit .domain .ProblemSubmit ;
8
8
import com .moplus .moplus_server .client .submit .domain .ProblemSubmitStatus ;
9
9
import com .moplus .moplus_server .client .submit .dto .response .AllProblemGetResponse ;
10
+ import com .moplus .moplus_server .client .submit .dto .response .ChildProblemClientGetResponse ;
10
11
import com .moplus .moplus_server .client .submit .dto .response .ChildProblemDetailResponse ;
11
12
import com .moplus .moplus_server .client .submit .dto .response .CommentaryGetResponse ;
12
13
import com .moplus .moplus_server .client .submit .dto .response .DayProgress ;
17
18
import com .moplus .moplus_server .client .submit .repository .ProblemSubmitRepository ;
18
19
import com .moplus .moplus_server .domain .problem .domain .childProblem .ChildProblem ;
19
20
import com .moplus .moplus_server .domain .problem .domain .problem .Problem ;
21
+ import com .moplus .moplus_server .domain .problem .repository .ChildProblemRepository ;
20
22
import com .moplus .moplus_server .domain .problem .repository .ProblemRepository ;
21
23
import com .moplus .moplus_server .domain .problemset .repository .ProblemSetRepository ;
22
24
import com .moplus .moplus_server .domain .publish .repository .PublishRepository ;
@@ -38,6 +40,7 @@ public class ClientGetService {
38
40
private final ProblemRepository problemRepository ;
39
41
private final ProblemSetRepository problemSetRepository ;
40
42
private final ChildProblemSubmitRepository childProblemSubmitRepository ;
43
+ private final ChildProblemRepository childProblemRepository ;
41
44
42
45
43
46
@ Transactional (readOnly = true )
@@ -125,6 +128,7 @@ private String getMainProblemImageUrl(Long problemSetId) {
125
128
public ProblemClientGetResponse getProblem (Long publishId , Long problemId ) {
126
129
Long memberId = 1L ;
127
130
131
+ // 문항조회
128
132
Problem problem = problemRepository .findByIdElseThrow (problemId );
129
133
130
134
// 문항 제출 조회
@@ -143,4 +147,27 @@ public ProblemClientGetResponse getProblem(Long publishId, Long problemId) {
143
147
144
148
return ProblemClientGetResponse .of (problem , problemSubmit .getStatus (), childProblemStatuses );
145
149
}
150
+
151
+ @ Transactional (readOnly = true )
152
+ public ChildProblemClientGetResponse getChildProblem (Long publishId , Long problemId , Long childProblemId ) {
153
+ Long memberId = 1L ;
154
+
155
+ // 문항/새끼문항 조회
156
+ Problem problem = problemRepository .findByIdElseThrow (problemId );
157
+ ChildProblem childProblem = childProblemRepository .findByIdElseThrow (childProblemId );
158
+
159
+ // 새끼문항 제출 조회
160
+ ChildProblemSubmit childProblemSubmit = childProblemSubmitRepository .findByMemberIdAndPublishIdAndChildProblemIdElseThrow (
161
+ memberId , publishId , childProblemId );
162
+
163
+ int sequence = 0 ;
164
+ for (int i = 0 ; i < problem .getChildProblems ().size (); i ++) {
165
+ if (problem .getChildProblems ().get (i ).getId ().equals (childProblemId )) {
166
+ sequence = i + 1 ;
167
+ break ;
168
+ }
169
+ }
170
+
171
+ return ChildProblemClientGetResponse .of (problem .getNumber (), sequence , childProblem .getImageUrl (), childProblemSubmit .getStatus ());
172
+ }
146
173
}
0 commit comments