5
5
import com .moplus .moplus_server .client .submit .domain .ProblemSubmit ;
6
6
import com .moplus .moplus_server .client .submit .domain .ProblemSubmitStatus ;
7
7
import com .moplus .moplus_server .client .submit .dto .response .AllProblemGetResponse ;
8
+ import com .moplus .moplus_server .client .submit .dto .response .ChildProblemDetailResponse ;
9
+ import com .moplus .moplus_server .client .submit .dto .response .CommentaryGetResponse ;
8
10
import com .moplus .moplus_server .client .submit .dto .response .DayProgress ;
11
+ import com .moplus .moplus_server .client .submit .dto .response .PrescriptionResponse ;
12
+ import com .moplus .moplus_server .client .submit .dto .response .ProblemDetailResponse ;
13
+ import com .moplus .moplus_server .client .submit .repository .ChildProblemSubmitRepository ;
9
14
import com .moplus .moplus_server .client .submit .repository .ProblemSubmitRepository ;
10
15
import com .moplus .moplus_server .domain .problem .domain .problem .Problem ;
11
16
import com .moplus .moplus_server .domain .problem .repository .ProblemRepository ;
@@ -28,6 +33,48 @@ public class ClientGetService {
28
33
private final ProblemSubmitRepository problemSubmitRepository ;
29
34
private final ProblemRepository problemRepository ;
30
35
private final ProblemSetRepository problemSetRepository ;
36
+ private final ChildProblemSubmitRepository childProblemSubmitRepository ;
37
+
38
+
39
+ @ Transactional (readOnly = true )
40
+ public CommentaryGetResponse getCommentary (Long publishId , Long problemId ) {
41
+
42
+ Long memberId = 1L ;
43
+
44
+ // 문항 제출 조회
45
+ ProblemSubmit problemSubmit = problemSubmitRepository .findByMemberIdAndPublishIdAndProblemIdElseThrow (memberId ,
46
+ publishId , problemId );
47
+
48
+ // 문항 해설 생성
49
+ Problem problem = problemRepository .findByIdElseThrow (problemId );
50
+ ProblemDetailResponse mainProblem = ProblemDetailResponse .of (
51
+ problem .getMainProblemImageUrl (),
52
+ problem .getPrescriptionImageUrls (),
53
+ problemSubmit .getStatus ()
54
+ );
55
+
56
+ // 새끼문항 해설 생성
57
+ List <ChildProblemDetailResponse > childProblem = problem .getChildProblems ().stream ()
58
+ .map (cp -> ChildProblemDetailResponse .of (
59
+ cp .getImageUrl (),
60
+ cp .getPrescriptionImageUrls (),
61
+ childProblemSubmitRepository .findByMemberIdAndPublishIdAndChildProblemIdElseThrow (memberId , publishId ,
62
+ cp .getId ()).getStatus ()
63
+ )).toList ();
64
+
65
+ // 처방 정보 생성
66
+ PrescriptionResponse prescription = PrescriptionResponse .of (childProblem , mainProblem );
67
+
68
+ return CommentaryGetResponse .of (
69
+ problem .getNumber (),
70
+ problem .getAnswer (),
71
+ problem .getMainAnalysisImageUrl (),
72
+ problem .getMainHandwritingExplanationImageUrl (),
73
+ problem .getReadingTipImageUrl (),
74
+ problem .getSeniorTipImageUrl (),
75
+ prescription
76
+ );
77
+ }
31
78
32
79
@ Transactional (readOnly = true )
33
80
public List <AllProblemGetResponse > getAllProblem (int year , int month ) {
0 commit comments