diff --git a/src/main/java/com/kusithm/hdmedi_server/domain/survey/controller/SurveyController.java b/src/main/java/com/kusithm/hdmedi_server/domain/survey/controller/SurveyController.java index 4a4cf63..c00ed55 100644 --- a/src/main/java/com/kusithm/hdmedi_server/domain/survey/controller/SurveyController.java +++ b/src/main/java/com/kusithm/hdmedi_server/domain/survey/controller/SurveyController.java @@ -1,6 +1,7 @@ package com.kusithm.hdmedi_server.domain.survey.controller; import com.kusithm.hdmedi_server.domain.survey.dto.request.CreateSurveyDto; +import com.kusithm.hdmedi_server.domain.survey.dto.response.AllSurveyResponseDto; import com.kusithm.hdmedi_server.domain.survey.dto.response.SurveyDetailResponseDto; import com.kusithm.hdmedi_server.domain.survey.dto.response.SurveyDetailResultDto; import com.kusithm.hdmedi_server.domain.survey.dto.response.SurveyResultResponseDto; @@ -30,8 +31,8 @@ public ResponseEntity> submitSurvey(@AuthenticatedUserId final H } @GetMapping("/all") - public ResponseEntity> getAllSurveys() { - + public ResponseEntity> getAllSurveys(@AuthenticatedUserId final HDmediUser hDmediUser) { + final AllSurveyResponseDto responseDto = surveyService.getAllSurvey(hDmediUser); return ResponseEntity.status(HttpStatus.OK) .body(BaseResponse.of(SuccessCode.OK, null)); } diff --git a/src/main/java/com/kusithm/hdmedi_server/domain/survey/domain/BaseSurvey.java b/src/main/java/com/kusithm/hdmedi_server/domain/survey/domain/BaseSurvey.java index fed115b..da75755 100644 --- a/src/main/java/com/kusithm/hdmedi_server/domain/survey/domain/BaseSurvey.java +++ b/src/main/java/com/kusithm/hdmedi_server/domain/survey/domain/BaseSurvey.java @@ -2,7 +2,6 @@ import lombok.Builder; import lombok.Data; -import org.springframework.data.mongodb.core.mapping.Document; @Builder @Data @@ -10,7 +9,7 @@ public class BaseSurvey { private String question; private int score; - public static BaseSurvey createBaseSurvey(String question, int score){ + public static BaseSurvey createBaseSurvey(String question, int score) { return BaseSurvey.builder() .question(question) .score(score) diff --git a/src/main/java/com/kusithm/hdmedi_server/domain/survey/domain/EachSurvey.java b/src/main/java/com/kusithm/hdmedi_server/domain/survey/domain/EachSurvey.java index c682674..9e663ed 100644 --- a/src/main/java/com/kusithm/hdmedi_server/domain/survey/domain/EachSurvey.java +++ b/src/main/java/com/kusithm/hdmedi_server/domain/survey/domain/EachSurvey.java @@ -1,6 +1,5 @@ package com.kusithm.hdmedi_server.domain.survey.domain; -import com.kusithm.hdmedi_server.global.common.BaseTimeEntity; import lombok.Builder; import lombok.Data; import lombok.Getter; @@ -15,18 +14,18 @@ public class EachSurvey { private List parentsSurveyList; private List teacherSurveyList; - public static EachSurvey createEachSurvey(){ + public static EachSurvey createEachSurvey() { return EachSurvey.builder() .parentsSurveyList(new ArrayList<>()) .teacherSurveyList(new ArrayList<>()) .build(); } - public void addParentsSurveyList(Respondent parentsSurvey){ + public void addParentsSurveyList(Respondent parentsSurvey) { this.parentsSurveyList.add(parentsSurvey); } - public void addTeacherSurveyList(Respondent teacherSurvey){ + public void addTeacherSurveyList(Respondent teacherSurvey) { this.teacherSurveyList.add(teacherSurvey); } } diff --git a/src/main/java/com/kusithm/hdmedi_server/domain/survey/domain/Respondent.java b/src/main/java/com/kusithm/hdmedi_server/domain/survey/domain/Respondent.java index 2b8cf01..83eff35 100644 --- a/src/main/java/com/kusithm/hdmedi_server/domain/survey/domain/Respondent.java +++ b/src/main/java/com/kusithm/hdmedi_server/domain/survey/domain/Respondent.java @@ -4,7 +4,6 @@ import lombok.Builder; import lombok.Data; -import java.util.ArrayList; import java.util.List; @Builder @@ -13,7 +12,7 @@ public class Respondent extends BaseTimeEntity { private List baseSurveyList; private int totalScore; - public static Respondent createRespondent(List baseSurveyList, int totalScore){ + public static Respondent createRespondent(List baseSurveyList, int totalScore) { return Respondent.builder() .baseSurveyList(baseSurveyList) .totalScore(totalScore) diff --git a/src/main/java/com/kusithm/hdmedi_server/domain/survey/domain/Survey.java b/src/main/java/com/kusithm/hdmedi_server/domain/survey/domain/Survey.java index d659b94..47816fd 100644 --- a/src/main/java/com/kusithm/hdmedi_server/domain/survey/domain/Survey.java +++ b/src/main/java/com/kusithm/hdmedi_server/domain/survey/domain/Survey.java @@ -1,11 +1,9 @@ package com.kusithm.hdmedi_server.domain.survey.domain; -import jakarta.persistence.*; +import jakarta.persistence.Id; import lombok.*; import org.springframework.data.mongodb.core.mapping.Document; -import java.util.List; - @NoArgsConstructor(access = AccessLevel.PROTECTED) @AllArgsConstructor @Builder @@ -17,7 +15,7 @@ public class Survey { private Long userId; private EachSurvey eachSurvey; - public static Survey createSurvey(Long userId){ + public static Survey createSurvey(Long userId) { EachSurvey createdEachSurvey = EachSurvey.createEachSurvey(); return Survey.builder() .userId(userId) diff --git a/src/main/java/com/kusithm/hdmedi_server/domain/survey/dto/response/AllSurveyResponseDto.java b/src/main/java/com/kusithm/hdmedi_server/domain/survey/dto/response/AllSurveyResponseDto.java new file mode 100644 index 0000000..4833fe7 --- /dev/null +++ b/src/main/java/com/kusithm/hdmedi_server/domain/survey/dto/response/AllSurveyResponseDto.java @@ -0,0 +1,18 @@ +package com.kusithm.hdmedi_server.domain.survey.dto.response; + + +import lombok.Builder; +import lombok.Getter; + +import java.util.List; + +@Getter +@Builder +public class AllSurveyResponseDto { + private List allSurveyList; + public static AllSurveyResponseDto of(List allSurveyList){ + return AllSurveyResponseDto.builder() + .allSurveyList(allSurveyList) + .build(); + } +} diff --git a/src/main/java/com/kusithm/hdmedi_server/domain/survey/dto/response/BaseAllSurveyResponseDto.java b/src/main/java/com/kusithm/hdmedi_server/domain/survey/dto/response/BaseAllSurveyResponseDto.java new file mode 100644 index 0000000..2b0077e --- /dev/null +++ b/src/main/java/com/kusithm/hdmedi_server/domain/survey/dto/response/BaseAllSurveyResponseDto.java @@ -0,0 +1,21 @@ +package com.kusithm.hdmedi_server.domain.survey.dto.response; + +import lombok.Builder; +import lombok.Getter; + +import java.time.LocalDate; + +@Getter +@Builder +public class BaseAllSurveyResponseDto { + private LocalDate date; + private Long surveyId; + + public static BaseAllSurveyResponseDto of(LocalDate date, Long surveyId) { + return BaseAllSurveyResponseDto.builder() + .date(date) + .surveyId(surveyId) + .build(); + } + +} diff --git a/src/main/java/com/kusithm/hdmedi_server/domain/survey/dto/response/BaseSurveyResponseDto.java b/src/main/java/com/kusithm/hdmedi_server/domain/survey/dto/response/BaseSurveyResponseDto.java index 07074d1..6ac424f 100644 --- a/src/main/java/com/kusithm/hdmedi_server/domain/survey/dto/response/BaseSurveyResponseDto.java +++ b/src/main/java/com/kusithm/hdmedi_server/domain/survey/dto/response/BaseSurveyResponseDto.java @@ -9,7 +9,7 @@ public class BaseSurveyResponseDto { private String question; private int score; - public static BaseSurveyResponseDto of(String question, int score){ + public static BaseSurveyResponseDto of(String question, int score) { return BaseSurveyResponseDto.builder() .question(question) .score(score) diff --git a/src/main/java/com/kusithm/hdmedi_server/domain/survey/dto/response/SurveyDetailResponseDto.java b/src/main/java/com/kusithm/hdmedi_server/domain/survey/dto/response/SurveyDetailResponseDto.java index 881c743..7f3a1b1 100644 --- a/src/main/java/com/kusithm/hdmedi_server/domain/survey/dto/response/SurveyDetailResponseDto.java +++ b/src/main/java/com/kusithm/hdmedi_server/domain/survey/dto/response/SurveyDetailResponseDto.java @@ -11,7 +11,7 @@ public class SurveyDetailResponseDto { private List parentsSurveyList; private List teacherSurveyList; - public static SurveyDetailResponseDto of(List parentsSurveyList, List teacherSurveyList){ + public static SurveyDetailResponseDto of(List parentsSurveyList, List teacherSurveyList) { return SurveyDetailResponseDto.builder() .parentsSurveyList(parentsSurveyList) .teacherSurveyList(teacherSurveyList) diff --git a/src/main/java/com/kusithm/hdmedi_server/domain/survey/dto/response/SurveyDetailResultDto.java b/src/main/java/com/kusithm/hdmedi_server/domain/survey/dto/response/SurveyDetailResultDto.java index 4e49ddc..d04b8b0 100644 --- a/src/main/java/com/kusithm/hdmedi_server/domain/survey/dto/response/SurveyDetailResultDto.java +++ b/src/main/java/com/kusithm/hdmedi_server/domain/survey/dto/response/SurveyDetailResultDto.java @@ -11,7 +11,7 @@ public class SurveyDetailResultDto { private int teacherScore; private String teacherMessage; - public static SurveyDetailResultDto of(int parentsScore, String parentsMessage, int teacherScore, String teacherMessage){ + public static SurveyDetailResultDto of(int parentsScore, String parentsMessage, int teacherScore, String teacherMessage) { return SurveyDetailResultDto.builder() .parentsScore(parentsScore) .parentsMessage(parentsMessage) diff --git a/src/main/java/com/kusithm/hdmedi_server/domain/survey/dto/response/SurveyResultResponseDto.java b/src/main/java/com/kusithm/hdmedi_server/domain/survey/dto/response/SurveyResultResponseDto.java index f6373c8..7849459 100644 --- a/src/main/java/com/kusithm/hdmedi_server/domain/survey/dto/response/SurveyResultResponseDto.java +++ b/src/main/java/com/kusithm/hdmedi_server/domain/survey/dto/response/SurveyResultResponseDto.java @@ -9,7 +9,7 @@ public class SurveyResultResponseDto { private int totalScore; private String message; - public static SurveyResultResponseDto of(int totalScore, String message){ + public static SurveyResultResponseDto of(int totalScore, String message) { return SurveyResultResponseDto.builder() .totalScore(totalScore) .message(message) diff --git a/src/main/java/com/kusithm/hdmedi_server/domain/survey/service/SurveyService.java b/src/main/java/com/kusithm/hdmedi_server/domain/survey/service/SurveyService.java index 148e2ee..8fc0851 100644 --- a/src/main/java/com/kusithm/hdmedi_server/domain/survey/service/SurveyService.java +++ b/src/main/java/com/kusithm/hdmedi_server/domain/survey/service/SurveyService.java @@ -5,10 +5,7 @@ import com.kusithm.hdmedi_server.domain.survey.domain.Survey; import com.kusithm.hdmedi_server.domain.survey.dto.request.BaseSurveyDto; import com.kusithm.hdmedi_server.domain.survey.dto.request.CreateSurveyDto; -import com.kusithm.hdmedi_server.domain.survey.dto.response.BaseSurveyResponseDto; -import com.kusithm.hdmedi_server.domain.survey.dto.response.SurveyDetailResponseDto; -import com.kusithm.hdmedi_server.domain.survey.dto.response.SurveyDetailResultDto; -import com.kusithm.hdmedi_server.domain.survey.dto.response.SurveyResultResponseDto; +import com.kusithm.hdmedi_server.domain.survey.dto.response.*; import com.kusithm.hdmedi_server.domain.survey.repository.SurveyRepository; import com.kusithm.hdmedi_server.global.common.HDmediUser; import com.kusithm.hdmedi_server.global.common.MessageSourceProvider; @@ -18,6 +15,7 @@ import java.util.List; import java.util.stream.Collectors; +import java.util.stream.IntStream; @RequiredArgsConstructor @Transactional @@ -36,6 +34,12 @@ public SurveyResultResponseDto processSurvey(HDmediUser hDmediUser, CreateSurvey return SurveyResultResponseDto.of(respondent.getTotalScore(), surveyResultMessage); } + public AllSurveyResponseDto getAllSurvey(HDmediUser hDmediUser) { + Survey currentSurvey = findSurvey(hDmediUser.getId()); + List baseAllSurveyResponseDtoList = getBaseAllSurveyResponseDtoList(currentSurvey); + return AllSurveyResponseDto.of(baseAllSurveyResponseDtoList); + } + public SurveyDetailResultDto getDetailResult(HDmediUser hDmediUser, Long surveyId) { Survey currentSurvey = findSurvey(hDmediUser.getId()); Respondent parentsRespondent = getParentsRespondent(currentSurvey, surveyId.intValue()); @@ -54,6 +58,18 @@ public SurveyDetailResponseDto getSurveyDetail(HDmediUser hDmediUser, Long surve return SurveyDetailResponseDto.of(parentsBaseSurveyResponseDtoList, teachersBaseSurveyResponseDtoList); } + private List getBaseAllSurveyResponseDtoList(Survey currentSurvey) { + List respondentList = currentSurvey.getEachSurvey().getParentsSurveyList(); + List responseDtoList = IntStream.range(0, respondentList.size()) + .mapToObj(idx -> BaseAllSurveyResponseDto.of( + respondentList.get(idx).getLastModifiedDate().toLocalDate(), + Long.valueOf(idx) + )) + .collect(Collectors.toList()); + return responseDtoList; + } + + private List getBaseSurveyDtoListFor(Respondent respondent) { return respondent.getBaseSurveyList().stream() .map(baseSurvey ->