Skip to content

Commit 3ea8168

Browse files
authored
Merge pull request #415 from Juinjang/fix/#414
[fix/#414] sharedNoteId로 조회되는 report 조회 api 추가
2 parents 17275f0 + 5f47f8a commit 3ea8168

File tree

2 files changed

+26
-3
lines changed

2 files changed

+26
-3
lines changed

src/main/java/umc/th/juinjang/api/note/shared/controller/SharedNoteController.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
import org.springframework.data.domain.Pageable;
99
import org.springframework.security.core.annotation.AuthenticationPrincipal;
10+
import org.springframework.web.bind.annotation.CrossOrigin;
1011
import org.springframework.web.bind.annotation.DeleteMapping;
1112
import org.springframework.web.bind.annotation.GetMapping;
1213
import org.springframework.web.bind.annotation.PathVariable;
@@ -18,6 +19,7 @@
1819

1920
import io.swagger.v3.oas.annotations.Operation;
2021
import lombok.RequiredArgsConstructor;
22+
import umc.th.juinjang.api.checklist.service.response.ReportWithLimjangResponseDTO;
2123
import umc.th.juinjang.api.dto.ApiResponse;
2224
import umc.th.juinjang.api.note.shared.controller.request.ExploreSortType;
2325
import umc.th.juinjang.api.note.shared.controller.request.NoteType;
@@ -100,11 +102,20 @@ public ApiResponse<UserSharedNotesGetResponse> findUsersSharedNotes(@Authenticat
100102
}
101103

102104
@Operation(summary = "체크리스트 및 상세 후기 API")
103-
@GetMapping("shared-note/{sharedNoteId}/checklist")
105+
@GetMapping("/shared-note/{sharedNoteId}/checklist")
104106
public ApiResponse<SharedNoteCheckListAndReviewResponse> findChecklistAndReview(
105107
@AuthenticationPrincipal Member member,
106108
@PathVariable("sharedNoteId") Long sharedNoteId) {
107109
return ApiResponse.onSuccess(
108110
sharedNoteQueryService.findChecklistAndReview(member, sharedNoteId));
109111
}
112+
113+
@CrossOrigin
114+
@Operation(summary = "둘러보기 리포트 조회")
115+
@GetMapping("/shared-notes/{sharedNoteId}/report")
116+
public ApiResponse<ReportWithLimjangResponseDTO> getReport(
117+
@PathVariable(name = "sharedNoteId") Long sharedNoteId) {
118+
return ApiResponse.onSuccess(sharedNoteQueryService.getReportBySharedNoteId(sharedNoteId));
119+
}
120+
110121
}

src/main/java/umc/th/juinjang/api/note/shared/service/SharedNoteQueryService.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,21 @@
1010

1111
import org.springframework.data.domain.Page;
1212
import org.springframework.data.domain.Pageable;
13-
import org.springframework.data.redis.core.RedisTemplate;
1413
import org.springframework.stereotype.Service;
1514
import org.springframework.transaction.annotation.Transactional;
1615

1716
import lombok.RequiredArgsConstructor;
1817
import lombok.extern.slf4j.Slf4j;
1918
import umc.th.juinjang.api.checklist.service.ChecklistAnswerFinder;
19+
import umc.th.juinjang.api.checklist.service.ReportFinder;
2020
import umc.th.juinjang.api.checklist.service.response.ChecklistAnswerResponseDTO;
21+
import umc.th.juinjang.api.checklist.service.response.ReportGetResponse;
22+
import umc.th.juinjang.api.checklist.service.response.ReportWithLimjangResponseDTO;
23+
import umc.th.juinjang.api.limjang.service.response.LimjangDetailGetResponse;
2124
import umc.th.juinjang.api.note.liked.service.LikedNoteFinder;
22-
import umc.th.juinjang.api.note.shared.service.response.SharedNoteCheckListAndReviewResponse;
2325
import umc.th.juinjang.api.note.shared.controller.request.ExploreSortType;
2426
import umc.th.juinjang.api.note.shared.controller.request.NoteType;
27+
import umc.th.juinjang.api.note.shared.service.response.SharedNoteCheckListAndReviewResponse;
2528
import umc.th.juinjang.api.note.shared.service.response.SharedNoteExploreGetResponse;
2629
import umc.th.juinjang.api.note.shared.service.response.SharedNoteGetResponse;
2730
import umc.th.juinjang.api.note.shared.service.response.UserSharedNotesGetResponse;
@@ -35,6 +38,7 @@
3538
import umc.th.juinjang.domain.note.liked.model.LikedNote;
3639
import umc.th.juinjang.domain.note.shared.model.SharedNote;
3740
import umc.th.juinjang.domain.pencil.used.model.UsedPencil;
41+
import umc.th.juinjang.domain.report.model.Report;
3842
import umc.th.juinjang.event.publisher.ApplicationRewardViewCountPublisherAdapter;
3943

4044
@Service
@@ -48,6 +52,7 @@ public class SharedNoteQueryService {
4852
private final ChecklistAnswerFinder checklistAnswerFinder;
4953
private final ViewCountService viewCountService;
5054
private final ApplicationRewardViewCountPublisherAdapter applicationRewardViewCountPublisherAdapter;
55+
private final ReportFinder reportFinder;
5156

5257
@Transactional(readOnly = true)
5358
public SharedNoteGetResponse findSharedNote(Member member, Long sharedNoteId) {
@@ -200,4 +205,11 @@ public SharedNoteCheckListAndReviewResponse findChecklistAndReview(Member member
200205
String review = isOwned ? sharedNote.getReview() : null;
201206
return new SharedNoteCheckListAndReviewResponse(review, answers);
202207
}
208+
209+
public ReportWithLimjangResponseDTO getReportBySharedNoteId(Long sharedNoteId) {
210+
SharedNote sharedNote = sharedNoteFinder.findByIdWithNoteAndAddress(sharedNoteId);
211+
Limjang note = sharedNote.getLimjang();
212+
Report report = reportFinder.findReportByNote(note);
213+
return new ReportWithLimjangResponseDTO(ReportGetResponse.of(report), LimjangDetailGetResponse.of(note));
214+
}
203215
}

0 commit comments

Comments
 (0)