diff --git a/src/main/java/com/cmc/suppin/SuppinApplication.java b/src/main/java/com/cmc/suppin/SuppinApplication.java index 995c389..ff74b20 100644 --- a/src/main/java/com/cmc/suppin/SuppinApplication.java +++ b/src/main/java/com/cmc/suppin/SuppinApplication.java @@ -3,9 +3,11 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.data.jpa.repository.config.EnableJpaAuditing; +import org.springframework.scheduling.annotation.EnableScheduling; @SpringBootApplication @EnableJpaAuditing +@EnableScheduling public class SuppinApplication { public static void main(String[] args) { diff --git a/src/main/java/com/cmc/suppin/event/survey/controller/SurveyApi.java b/src/main/java/com/cmc/suppin/event/survey/controller/SurveyApi.java index 81f9b21..fcf7a7c 100644 --- a/src/main/java/com/cmc/suppin/event/survey/controller/SurveyApi.java +++ b/src/main/java/com/cmc/suppin/event/survey/controller/SurveyApi.java @@ -36,13 +36,13 @@ public ResponseEntity> creat @GetMapping("/view") @Operation(summary = "설문지 조회 API", description = "생성된 설문지 전체 정보를 조회합니다. surveyId와 uuid, 둘 중 하나로 요청할 수 있습니다.") - public ResponseEntity> getSurvey( + public ResponseEntity> getSurvey( @Parameter(description = "required = false") @RequestParam(value = "surveyId", required = false) Long surveyId, @Parameter(description = "required = false") @RequestParam(value = "uuid", required = false) String uuid) { - SurveyResponseDTO.SurveyResultDTO response; + SurveyResponseDTO.SurveyViewDTO response; if (uuid != null) { response = surveyService.getSurveyByUuid(uuid); diff --git a/src/main/java/com/cmc/suppin/event/survey/controller/dto/SurveyRequestDTO.java b/src/main/java/com/cmc/suppin/event/survey/controller/dto/SurveyRequestDTO.java index 42b8654..97408f2 100644 --- a/src/main/java/com/cmc/suppin/event/survey/controller/dto/SurveyRequestDTO.java +++ b/src/main/java/com/cmc/suppin/event/survey/controller/dto/SurveyRequestDTO.java @@ -67,7 +67,8 @@ public static class SurveyAnswerDTO { @Builder public static class ParticipantDTO { private String name; - private String address; + private String fullAddress; + private String extraAddress; private String email; private String phoneNumber; private String instagramId; diff --git a/src/main/java/com/cmc/suppin/event/survey/controller/dto/SurveyResponseDTO.java b/src/main/java/com/cmc/suppin/event/survey/controller/dto/SurveyResponseDTO.java index d31b596..46be5e2 100644 --- a/src/main/java/com/cmc/suppin/event/survey/controller/dto/SurveyResponseDTO.java +++ b/src/main/java/com/cmc/suppin/event/survey/controller/dto/SurveyResponseDTO.java @@ -24,7 +24,7 @@ public static class SurveyCreateResponse { @NoArgsConstructor @AllArgsConstructor @Builder - public static class SurveyResultDTO { + public static class SurveyViewDTO { private Long eventId; private String eventTitle; private String eventDescription; @@ -33,6 +33,7 @@ public static class SurveyResultDTO { private String announcementDate; private String consentFormHtml; private List personalInfoOptions; + private Long surveyId; private List questions; @Getter @@ -40,6 +41,7 @@ public static class SurveyResultDTO { @AllArgsConstructor @Builder public static class QuestionDTO { + private Long questionId; private QuestionType questionType; private String questionText; private List options; @@ -50,7 +52,7 @@ public static class QuestionDTO { @AllArgsConstructor @Builder public static class PersonalInfoOptionDTO { - private String optionName; + private String option; } } @@ -114,7 +116,8 @@ public static class SelectionCriteriaDTO { public static class WinnerDetailDTO { private String name; private String phoneNumber; - private String address; + private String fullAddress; + private String extraAddress; private String email; private String instagramId; private List answers; diff --git a/src/main/java/com/cmc/suppin/event/survey/converter/SurveyConverter.java b/src/main/java/com/cmc/suppin/event/survey/converter/SurveyConverter.java index 47fdfe0..3777914 100644 --- a/src/main/java/com/cmc/suppin/event/survey/converter/SurveyConverter.java +++ b/src/main/java/com/cmc/suppin/event/survey/converter/SurveyConverter.java @@ -47,15 +47,16 @@ public static List toPersonalInfoCollectOptionEntitie .collect(Collectors.toList()); } - public static SurveyResponseDTO.SurveyResultDTO toSurveyResultDTO(Survey survey, Event event) { - List personalInfoOptions = survey.getPersonalInfoList().stream() - .map(option -> SurveyResponseDTO.SurveyResultDTO.PersonalInfoOptionDTO.builder() - .optionName(option.getOptionName()) + public static SurveyResponseDTO.SurveyViewDTO toSurveyViewResultDTO(Survey survey, Event event) { + List personalInfoOptions = survey.getPersonalInfoList().stream() + .map(option -> SurveyResponseDTO.SurveyViewDTO.PersonalInfoOptionDTO.builder() + .option(option.getOptionName()) .build()) .collect(Collectors.toList()); - List questions = survey.getQuestionList().stream() - .map(question -> SurveyResponseDTO.SurveyResultDTO.QuestionDTO.builder() + List questions = survey.getQuestionList().stream() + .map(question -> SurveyResponseDTO.SurveyViewDTO.QuestionDTO.builder() + .questionId(question.getId()) .questionType(question.getQuestionType()) .questionText(question.getQuestionText()) .options(question.getQuestionOptionList().stream() @@ -64,7 +65,7 @@ public static SurveyResponseDTO.SurveyResultDTO toSurveyResultDTO(Survey survey, .build()) .collect(Collectors.toList()); - return SurveyResponseDTO.SurveyResultDTO.builder() + return SurveyResponseDTO.SurveyViewDTO.builder() .eventId(event.getId()) .eventTitle(event.getTitle()) .eventDescription(event.getDescription()) @@ -73,6 +74,7 @@ public static SurveyResponseDTO.SurveyResultDTO toSurveyResultDTO(Survey survey, .announcementDate(event.getAnnouncementDate().toString()) .consentFormHtml(survey.getConsentFormHtml()) .personalInfoOptions(personalInfoOptions) + .surveyId(survey.getId()) .questions(questions) .build(); } @@ -102,7 +104,8 @@ public static AnonymousParticipant toAnonymousParticipant(SurveyRequestDTO.Surve return AnonymousParticipant.builder() .survey(survey) .name(dto.getName()) - .address(dto.getAddress()) + .fullAddress(dto.getFullAddress()) + .extraAddress(dto.getExtraAddress()) .email(dto.getEmail()) .phoneNumber(dto.getPhoneNumber()) .isAgreed(dto.getIsAgreed()) @@ -155,7 +158,8 @@ public static SurveyResponseDTO.WinnerDetailDTO toWinnerDetailDTO(AnonymousParti return SurveyResponseDTO.WinnerDetailDTO.builder() .name(participant.getName()) .phoneNumber(participant.getPhoneNumber()) - .address(participant.getAddress()) + .fullAddress(participant.getFullAddress()) + .extraAddress(participant.getExtraAddress()) .email(participant.getEmail()) .instagramId(participant.getInstagramId()) .answers(answers) diff --git a/src/main/java/com/cmc/suppin/event/survey/domain/AnonymousParticipant.java b/src/main/java/com/cmc/suppin/event/survey/domain/AnonymousParticipant.java index e75d3ea..7c2c22b 100644 --- a/src/main/java/com/cmc/suppin/event/survey/domain/AnonymousParticipant.java +++ b/src/main/java/com/cmc/suppin/event/survey/domain/AnonymousParticipant.java @@ -30,7 +30,9 @@ public class AnonymousParticipant extends BaseDateTimeEntity { private String name; - private String address; + private String fullAddress; + + private String extraAddress; private String email; diff --git a/src/main/java/com/cmc/suppin/event/survey/service/SurveyService.java b/src/main/java/com/cmc/suppin/event/survey/service/SurveyService.java index e1b2d26..664b0d2 100644 --- a/src/main/java/com/cmc/suppin/event/survey/service/SurveyService.java +++ b/src/main/java/com/cmc/suppin/event/survey/service/SurveyService.java @@ -86,21 +86,21 @@ public SurveyResponseDTO.SurveyCreateResponse createSurvey(SurveyRequestDTO.Surv // 생성된 설문지 조회 @Transactional(readOnly = true) - public SurveyResponseDTO.SurveyResultDTO getSurveyBySurveyId(Long surveyId) { + public SurveyResponseDTO.SurveyViewDTO getSurveyBySurveyId(Long surveyId) { Survey survey = surveyRepository.findById(surveyId) .orElseThrow(() -> new IllegalArgumentException("Survey not found")); Event event = survey.getEvent(); - return SurveyConverter.toSurveyResultDTO(survey, event); + return SurveyConverter.toSurveyViewResultDTO(survey, event); } @Transactional(readOnly = true) - public SurveyResponseDTO.SurveyResultDTO getSurveyByUuid(String uuid) { + public SurveyResponseDTO.SurveyViewDTO getSurveyByUuid(String uuid) { Survey survey = surveyRepository.findByUuid(uuid) .orElseThrow(() -> new IllegalArgumentException("Survey not found for UUID: " + uuid)); Event event = survey.getEvent(); - return SurveyConverter.toSurveyResultDTO(survey, event); + return SurveyConverter.toSurveyViewResultDTO(survey, event); } // 설문 응답 저장 diff --git a/src/main/java/com/cmc/suppin/global/config/WebConfig.java b/src/main/java/com/cmc/suppin/global/config/WebConfig.java deleted file mode 100644 index 5f00f39..0000000 --- a/src/main/java/com/cmc/suppin/global/config/WebConfig.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.cmc.suppin.global.config; - -import lombok.RequiredArgsConstructor; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.web.cors.CorsConfiguration; -import org.springframework.web.cors.UrlBasedCorsConfigurationSource; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; - -import java.util.Arrays; - - -@RequiredArgsConstructor -@Configuration -public class WebConfig implements WebMvcConfigurer { - - - @Bean - public UrlBasedCorsConfigurationSource corsConfigurationSource() { - UrlBasedCorsConfigurationSource corsConfigSource = new UrlBasedCorsConfigurationSource(); - - - CorsConfiguration configuration = new CorsConfiguration(); - - configuration.addAllowedOriginPattern("*"); - configuration.setAllowedMethods(Arrays.asList("GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS")); - configuration.setAllowedHeaders(Arrays.asList("*")); - configuration.setAllowCredentials(true); - configuration.setMaxAge(3600L); - - corsConfigSource.registerCorsConfiguration("/**", configuration); - return corsConfigSource; - } -} diff --git a/src/main/java/com/cmc/suppin/global/security/config/WebMvcConfig.java b/src/main/java/com/cmc/suppin/global/security/config/WebMvcConfig.java index ea879da..3147c1d 100644 --- a/src/main/java/com/cmc/suppin/global/security/config/WebMvcConfig.java +++ b/src/main/java/com/cmc/suppin/global/security/config/WebMvcConfig.java @@ -38,9 +38,10 @@ private String[] getAllowOrigins() { "https://dev.suppin.store", "https://api.suppin.store", "https://suppin.store", - "http://192.168.200.120:3000", // 테스트 디바이스 IP 허용 + "http://192.168.200.120:3000", "https://coherent-midge-probably.ngrok-free.app", - "https://suppin-servey.vercel.app/" + "https://suppin-web.vercel.app/", + "https://suppin-survey.vercel.app" ).toArray(String[]::new); } } diff --git a/src/main/java/com/cmc/suppin/global/security/config/WebSecurityConfig.java b/src/main/java/com/cmc/suppin/global/security/config/WebSecurityConfig.java index 1c89e02..79f85d3 100644 --- a/src/main/java/com/cmc/suppin/global/security/config/WebSecurityConfig.java +++ b/src/main/java/com/cmc/suppin/global/security/config/WebSecurityConfig.java @@ -115,6 +115,7 @@ private RequestMatcher[] requestHasRoleUser() { private RequestMatcher[] requestPermitAll() { List requestMatchers = List.of( antMatcher("/"), + antMatcher("/health"), antMatcher("/swagger-ui/**"), antMatcher("/actuator/**"), antMatcher("/v3/api-docs/**"),