diff --git a/src/main/java/store/teabliss/survey/controller/SurveyController.java b/src/main/java/store/teabliss/survey/controller/SurveyController.java index 16c7cbf..1a28807 100644 --- a/src/main/java/store/teabliss/survey/controller/SurveyController.java +++ b/src/main/java/store/teabliss/survey/controller/SurveyController.java @@ -1,15 +1,14 @@ package store.teabliss.survey.controller; +import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.http.ResponseEntity; import org.springframework.security.core.annotation.AuthenticationPrincipal; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import store.teabliss.member.entity.MemberDetails; import store.teabliss.survey.dto.SurveyCreateDto; +import store.teabliss.survey.dto.SurveyDto; import store.teabliss.survey.dto.SurveyResponse; import store.teabliss.survey.service.SurveyService; @@ -22,6 +21,7 @@ public class SurveyController { private final SurveyService surveyService; @PostMapping("") + @Operation(summary = "설문조사 등록", description = "설문조사 등록 API") public ResponseEntity createSurvey( @AuthenticationPrincipal MemberDetails memberDetails, @RequestBody SurveyCreateDto surveyCreateDto @@ -32,4 +32,15 @@ public ResponseEntity createSurvey( return ResponseEntity.ok(SurveyResponse.ok("정상적으로 설문조사가 등록되었습니다.", id)); } + @GetMapping("/{id}") + @Operation(summary = "설문조사 조회", description = "설문조사 조회 API") + public ResponseEntity getSurvey( + @PathVariable Long id + ) { + + SurveyDto surveyDto = surveyService.findById(id); + + return ResponseEntity.ok(SurveyResponse.ok(surveyDto)); + } + } diff --git a/src/main/java/store/teabliss/survey/dto/SurveyCreateDto.java b/src/main/java/store/teabliss/survey/dto/SurveyCreateDto.java index 287874d..ddb5519 100644 --- a/src/main/java/store/teabliss/survey/dto/SurveyCreateDto.java +++ b/src/main/java/store/teabliss/survey/dto/SurveyCreateDto.java @@ -11,8 +11,8 @@ public class SurveyCreateDto { @Schema(description = "맛", example = "1") private int taste; - @Schema(description = "원하는 가격대", example = "10,000원대") - private String sale; + @Schema(description = "원하는 가격대", example = "10000") + private int sale; @Schema(description = "원하는 재료", example = "Black,Pu Erh") private String category; diff --git a/src/main/java/store/teabliss/survey/dto/SurveyDto.java b/src/main/java/store/teabliss/survey/dto/SurveyDto.java new file mode 100644 index 0000000..b992d29 --- /dev/null +++ b/src/main/java/store/teabliss/survey/dto/SurveyDto.java @@ -0,0 +1,34 @@ +package store.teabliss.survey.dto; + +import lombok.Builder; +import lombok.Getter; +import store.teabliss.survey.entity.Survey; +import store.teabliss.tea.dto.TeaFinalDto; +import store.teabliss.tea.entity.Tea; + +import java.util.List; + +@Getter +@Builder +public class SurveyDto { + + private int taste; + + private int sale; + + private String category; + + private String caffeine; + + private List teas; + + public static SurveyDto of(Survey survey, List list) { + return SurveyDto.builder() + .taste(survey.getTaste()) + .sale(survey.getSale()) + .category(survey.getCategory()) + .caffeine(survey.getCaffeine()) + .teas(TeaFinalDto.of(list)) + .build(); + } +} diff --git a/src/main/java/store/teabliss/survey/dto/SurveyResponse.java b/src/main/java/store/teabliss/survey/dto/SurveyResponse.java index 3521d2f..e13f259 100644 --- a/src/main/java/store/teabliss/survey/dto/SurveyResponse.java +++ b/src/main/java/store/teabliss/survey/dto/SurveyResponse.java @@ -1,9 +1,11 @@ package store.teabliss.survey.dto; import lombok.Builder; +import lombok.Getter; import store.teabliss.common.response.CommonResponse; import store.teabliss.ingredient.dto.IngredientResponse; +@Getter public class SurveyResponse extends CommonResponse { private final Object data; diff --git a/src/main/java/store/teabliss/survey/entity/Survey.java b/src/main/java/store/teabliss/survey/entity/Survey.java index 35806e5..e4dd398 100644 --- a/src/main/java/store/teabliss/survey/entity/Survey.java +++ b/src/main/java/store/teabliss/survey/entity/Survey.java @@ -18,7 +18,7 @@ public class Survey { private int taste; - private String sale; + private int sale; private String category; diff --git a/src/main/java/store/teabliss/survey/mapper/SurveyMapper.java b/src/main/java/store/teabliss/survey/mapper/SurveyMapper.java index 2790430..a21a67b 100644 --- a/src/main/java/store/teabliss/survey/mapper/SurveyMapper.java +++ b/src/main/java/store/teabliss/survey/mapper/SurveyMapper.java @@ -8,4 +8,6 @@ public interface SurveyMapper { Long createSurvey(Survey survey); + Survey findById(Long id); + } diff --git a/src/main/java/store/teabliss/survey/service/SurveyService.java b/src/main/java/store/teabliss/survey/service/SurveyService.java index 96477f9..4260064 100644 --- a/src/main/java/store/teabliss/survey/service/SurveyService.java +++ b/src/main/java/store/teabliss/survey/service/SurveyService.java @@ -3,14 +3,20 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import store.teabliss.survey.dto.SurveyCreateDto; +import store.teabliss.survey.dto.SurveyDto; import store.teabliss.survey.entity.Survey; import store.teabliss.survey.mapper.SurveyMapper; +import store.teabliss.tea.entity.Tea; +import store.teabliss.tea.mapper.TeaMapper; + +import java.util.List; @Service @RequiredArgsConstructor public class SurveyService { private final SurveyMapper surveyMapper; + private final TeaMapper teaMapper; public Long createSurvey(Long memId, SurveyCreateDto surveyCreateDto) { @@ -19,4 +25,20 @@ public Long createSurvey(Long memId, SurveyCreateDto surveyCreateDto) { return surveyMapper.createSurvey(survey); } + public SurveyDto findById(Long id) { + + Survey survey = surveyMapper.findById(id); + + Tea tea = Tea.builder() + .priceStart(survey.getSale()) + .priceEnd(survey.getSale() + 10000) + .category(survey.getCategory()) + .caffeine(survey.getCaffeine().equals("N")) + .build(); + + List teas = teaMapper.surveyRecommendTea(tea); + + return SurveyDto.of(survey, teas); + } + } diff --git a/src/main/java/store/teabliss/tea/dto/TeaFinalDto.java b/src/main/java/store/teabliss/tea/dto/TeaFinalDto.java index 0128d2e..9ff0c45 100644 --- a/src/main/java/store/teabliss/tea/dto/TeaFinalDto.java +++ b/src/main/java/store/teabliss/tea/dto/TeaFinalDto.java @@ -55,8 +55,6 @@ public static List of(List list){ List teaFinalDto = new ArrayList<>(); // var fommatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss", Locale.KOREA); - - for (Tea tea : list){ TeaFinalDto dto = TeaFinalDto.builder() .id(tea.getId()) diff --git a/src/main/java/store/teabliss/tea/entity/Tea.java b/src/main/java/store/teabliss/tea/entity/Tea.java index 8940d38..7f76b66 100644 --- a/src/main/java/store/teabliss/tea/entity/Tea.java +++ b/src/main/java/store/teabliss/tea/entity/Tea.java @@ -53,4 +53,12 @@ public class Tea { private LocalDateTime createDt; private LocalDateTime updateDt; + + /** + * 가격대 검색을 위한 컬럼 + */ + private int priceStart; + + private int priceEnd; + } diff --git a/src/main/java/store/teabliss/tea/mapper/TeaMapper.java b/src/main/java/store/teabliss/tea/mapper/TeaMapper.java index 9cfd5ba..a3df607 100644 --- a/src/main/java/store/teabliss/tea/mapper/TeaMapper.java +++ b/src/main/java/store/teabliss/tea/mapper/TeaMapper.java @@ -59,5 +59,7 @@ public interface TeaMapper { // List category(); + List surveyRecommendTea(Tea tea); + } diff --git a/src/main/resources/mapper/SurveyMapper.xml b/src/main/resources/mapper/SurveyMapper.xml index 23c80c9..cba4efe 100644 --- a/src/main/resources/mapper/SurveyMapper.xml +++ b/src/main/resources/mapper/SurveyMapper.xml @@ -8,4 +8,15 @@ VALUES (#{taste}, #{sale}, #{category}, #{caffeine}, #{memId}) + + \ No newline at end of file diff --git a/src/main/resources/mapper/TeaMapper.xml b/src/main/resources/mapper/TeaMapper.xml index fccdd05..960b424 100644 --- a/src/main/resources/mapper/TeaMapper.xml +++ b/src/main/resources/mapper/TeaMapper.xml @@ -147,7 +147,39 @@ - + + \ No newline at end of file