diff --git a/src/main/java/umc/th/juinjang/api/checklist/controller/ChecklistControllerV2.java b/src/main/java/umc/th/juinjang/api/checklist/controller/ChecklistControllerV2.java index 03e53a14..a20bf0cd 100644 --- a/src/main/java/umc/th/juinjang/api/checklist/controller/ChecklistControllerV2.java +++ b/src/main/java/umc/th/juinjang/api/checklist/controller/ChecklistControllerV2.java @@ -18,7 +18,7 @@ import umc.th.juinjang.api.checklist.service.ChecklistQueryServiceV2; import umc.th.juinjang.api.checklist.service.response.ChecklistAnswerAndReportResponseDTO; import umc.th.juinjang.api.checklist.service.response.ChecklistAnswerResponseDTO; -import umc.th.juinjang.api.checklist.service.response.ReportResponseDTO; +import umc.th.juinjang.api.checklist.service.response.ReportWithLimjangResponseDTO; import umc.th.juinjang.api.dto.ApiResponse; @RestController @@ -41,7 +41,7 @@ public ApiResponse> getChecklistAnswe @CrossOrigin @Operation(summary = "리포트 조회 V2") @GetMapping("/report/{noteId}") - public ApiResponse getReport( + public ApiResponse getReport( @PathVariable(name = "noteId") Long noteId) { return ApiResponse.onSuccess(checklistQueryService.getReportByNoteId(noteId)); } diff --git a/src/main/java/umc/th/juinjang/api/checklist/service/ChecklistQueryServiceV2.java b/src/main/java/umc/th/juinjang/api/checklist/service/ChecklistQueryServiceV2.java index db7ad698..befeeebf 100644 --- a/src/main/java/umc/th/juinjang/api/checklist/service/ChecklistQueryServiceV2.java +++ b/src/main/java/umc/th/juinjang/api/checklist/service/ChecklistQueryServiceV2.java @@ -6,10 +6,11 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import umc.th.juinjang.api.checklist.service.converter.ReportConverter; import umc.th.juinjang.api.checklist.service.response.ChecklistAnswerResponseDTO; -import umc.th.juinjang.api.checklist.service.response.ReportResponseDTO; +import umc.th.juinjang.api.checklist.service.response.ReportGetResponse; +import umc.th.juinjang.api.checklist.service.response.ReportWithLimjangResponseDTO; import umc.th.juinjang.api.limjang.service.NoteFinder; +import umc.th.juinjang.api.limjang.service.response.LimjangDetailGetResponse; import umc.th.juinjang.domain.limjang.model.Limjang; import umc.th.juinjang.domain.report.model.Report; @@ -26,9 +27,9 @@ public List getChecklistAnswerListByLimjan return checklistAnswerFinder.findByLimjangId(noteId); } - public ReportResponseDTO.ReportV2DTO getReportByNoteId(Long noteId) { - Limjang limjang = noteFinder.getNoteByIdWhereDeletedIsFalse(noteId); - Report report = reportFinder.findReportByNote(limjang); - return ReportConverter.toReportV2Dto(report, limjang); + public ReportWithLimjangResponseDTO getReportByNoteId(Long noteId) { + Limjang note = noteFinder.getNoteByIdWithAddressAndNotePriceWhereDeletedIsFalse(noteId); + Report report = reportFinder.findReportByNote(note); + return new ReportWithLimjangResponseDTO(ReportGetResponse.of(report), LimjangDetailGetResponse.of(note)); } } diff --git a/src/main/java/umc/th/juinjang/api/checklist/service/ReportFinder.java b/src/main/java/umc/th/juinjang/api/checklist/service/ReportFinder.java index 6e25246d..9ac64997 100644 --- a/src/main/java/umc/th/juinjang/api/checklist/service/ReportFinder.java +++ b/src/main/java/umc/th/juinjang/api/checklist/service/ReportFinder.java @@ -4,13 +4,9 @@ import org.springframework.stereotype.Component; -import umc.th.juinjang.api.checklist.service.converter.ReportConverter; -import umc.th.juinjang.api.checklist.service.response.ReportResponseDTO; import umc.th.juinjang.common.code.status.ErrorStatus; import umc.th.juinjang.common.exception.handler.ChecklistHandler; -import umc.th.juinjang.common.exception.handler.LimjangHandler; import umc.th.juinjang.domain.limjang.model.Limjang; -import umc.th.juinjang.domain.limjang.repository.LimjangRepository; import umc.th.juinjang.domain.report.model.Report; import umc.th.juinjang.domain.report.repository.ReportRepository; diff --git a/src/main/java/umc/th/juinjang/api/checklist/service/converter/ReportConverter.java b/src/main/java/umc/th/juinjang/api/checklist/service/converter/ReportConverter.java deleted file mode 100644 index 3f44866f..00000000 --- a/src/main/java/umc/th/juinjang/api/checklist/service/converter/ReportConverter.java +++ /dev/null @@ -1,32 +0,0 @@ -package umc.th.juinjang.api.checklist.service.converter; - -import java.util.List; -import java.util.stream.Collectors; - -import umc.th.juinjang.api.checklist.service.response.ChecklistAnswerAndReportResponseDTO; -import umc.th.juinjang.api.checklist.service.response.ChecklistAnswerResponseDTO; -import umc.th.juinjang.api.checklist.service.response.ReportResponseDTO; -import umc.th.juinjang.api.limjang.service.converter.LimjangDetailConverter; -import umc.th.juinjang.api.limjang.service.response.LimjangDetailResponseDTO; -import umc.th.juinjang.domain.checklist.model.ChecklistAnswer; -import umc.th.juinjang.domain.limjang.model.Limjang; -import umc.th.juinjang.domain.report.model.Report; - -public class ReportConverter { - - public static ReportResponseDTO.ReportV2DTO toReportV2Dto(Report report, Limjang limjang) { - ReportResponseDTO.ReportV2DTO reportDTO = ReportResponseDTO.ReportV2DTO.builder() - .reportId(report.getReportId()) - .indoorKeyWord(report.getIndoorKeyword()) - .publicSpaceKeyWord(report.getPublicSpaceKeyword()) - .locationConditionsWord(report.getLocationConditionsKeyword()) - .indoorRate(report.getIndoorRate()) - .publicSpaceRate(report.getPublicSpaceRate()) - .locationConditionsRate(report.getLocationConditionsRate()) - .totalRate(report.getTotalRate()) - .limjangId(limjang.getLimjangId()) - .build(); - return reportDTO; - } - -} diff --git a/src/main/java/umc/th/juinjang/api/checklist/service/response/ReportGetResponse.java b/src/main/java/umc/th/juinjang/api/checklist/service/response/ReportGetResponse.java new file mode 100644 index 00000000..57e5caa0 --- /dev/null +++ b/src/main/java/umc/th/juinjang/api/checklist/service/response/ReportGetResponse.java @@ -0,0 +1,27 @@ +package umc.th.juinjang.api.checklist.service.response; + +import umc.th.juinjang.domain.report.model.Report; + +public record ReportGetResponse( + Long reportId, + String indoorKeyWord, + String publicSpaceKeyWord, + String locationConditionsWord, + Float indoorRate, + Float publicSpaceRate, + Float locationConditionsRate, + Float totalRate +) { + public static ReportGetResponse of(Report report) { + return new ReportGetResponse( + report.getReportId(), + report.getIndoorKeyword(), + report.getPublicSpaceKeyword(), + report.getLocationConditionsKeyword(), + report.getIndoorRate(), + report.getPublicSpaceRate(), + report.getLocationConditionsRate(), + report.getTotalRate() + ); + } +} \ No newline at end of file diff --git a/src/main/java/umc/th/juinjang/api/checklist/service/response/ReportResponseDTO.java b/src/main/java/umc/th/juinjang/api/checklist/service/response/ReportResponseDTO.java index 0c7234fa..efd090c5 100644 --- a/src/main/java/umc/th/juinjang/api/checklist/service/response/ReportResponseDTO.java +++ b/src/main/java/umc/th/juinjang/api/checklist/service/response/ReportResponseDTO.java @@ -1,6 +1,10 @@ package umc.th.juinjang.api.checklist.service.response; -import lombok.*; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; import umc.th.juinjang.api.limjang.service.response.LimjangDetailResponseDTO; @AllArgsConstructor @@ -25,21 +29,4 @@ public static class ReportDTO { private Float locationConditionsRate; private Float totalRate; } - - @Getter - @Setter - @NoArgsConstructor - @AllArgsConstructor - @Builder - public static class ReportV2DTO { - private Long reportId; - private String indoorKeyWord; - private String publicSpaceKeyWord; - private String locationConditionsWord; - private Float indoorRate; - private Float publicSpaceRate; - private Float locationConditionsRate; - private Float totalRate; - private Long limjangId; - } } diff --git a/src/main/java/umc/th/juinjang/api/checklist/service/response/ReportWithLimjangResponseDTO.java b/src/main/java/umc/th/juinjang/api/checklist/service/response/ReportWithLimjangResponseDTO.java new file mode 100644 index 00000000..d33c390a --- /dev/null +++ b/src/main/java/umc/th/juinjang/api/checklist/service/response/ReportWithLimjangResponseDTO.java @@ -0,0 +1,14 @@ +package umc.th.juinjang.api.checklist.service.response; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.Setter; +import umc.th.juinjang.api.limjang.service.response.LimjangDetailGetResponse; + +@Getter +@Setter +@AllArgsConstructor +public class ReportWithLimjangResponseDTO { + private ReportGetResponse reportDTO; + private LimjangDetailGetResponse limjangDto; +} \ No newline at end of file diff --git a/src/main/java/umc/th/juinjang/api/limjang/service/NoteFinder.java b/src/main/java/umc/th/juinjang/api/limjang/service/NoteFinder.java index e96fd7b7..140dcd09 100644 --- a/src/main/java/umc/th/juinjang/api/limjang/service/NoteFinder.java +++ b/src/main/java/umc/th/juinjang/api/limjang/service/NoteFinder.java @@ -28,7 +28,7 @@ public Limjang getNoteByIdWhereDeletedIsFalse(long id) { .orElseThrow(() -> new LimjangHandler(ErrorStatus.LIMJANG_NOTFOUND_ERROR)); } - protected Limjang getNoteByIdWithAddressAndNotePriceWhereDeletedIsFalse(long id) { + public Limjang getNoteByIdWithAddressAndNotePriceWhereDeletedIsFalse(long id) { return limjangRepository.findByIdWithAddressAndNotePriceWhereDeletedIsFalse(id) .orElseThrow(() -> new LimjangHandler(ErrorStatus.LIMJANG_NOTFOUND_ERROR)); }