diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d99b068 --- /dev/null +++ b/.gitignore @@ -0,0 +1,85 @@ +/target +.DS_Store +._.DS_Store +**/.DS_Store +**/._.DS_Store + + +HELP.md +.gradle +build/ +!gradle/wrapper/gradle-wrapper.jar +!**/src/main/**/build/ +!**/src/test/**/build/ + +### STS ### +.apt_generated +.classpath +.factorypath +.settings +.springBeans +.sts4-cache +bin/ +!**/src/main/**/bin/ +!**/src/test/**/bin/ + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr +out/ +!**/src/main/**/out/ +!**/src/test/**/out/ + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ + + +# Scala IDE specific (Scala & Java development for Eclipse) +.cache-main +.scala_dependencies +.worksheet + +# Uncomment this line if you wish to ignore the project description file. +# Typically, this file would be tracked if it contains build/dependency configurations: +#.project + +.svn + +# ---> Java +# Compiled class file +#*.class + +# Log file +*.log + +# BlueJ files +*.ctxt + +# Mobile Tools for Java (J2ME) +.mtj.tmp/ + +# Package Files # +*.war +*.nar +*.ear +*.zip +*.tar.gz +*.rar + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* +replay_pid* + + +### VS Code ### +.vscode/ +.vs/ + + +# Added by thkim diff --git a/list.txt b/list.txt index 7397f9d..eb81ed7 100644 --- a/list.txt +++ b/list.txt @@ -1,17 +1,7 @@ -src\main\webapp\WEB-INF\jsp\sgis\com\common\header.jsp -src\main\webapp\WEB-INF\jsp\tiles\attribute\portal.top.jsp -src\main\webapp\WEB-INF\jsp\sgis\com\common\head.jsp -src\main\webapp\WEB-INF\jsp\sgis\com\board\boardList.jsp -src\main\resources\egovframework\mapper\sgis\board\PostMapper.xml -src\main\webapp\WEB-INF\jsp\sgis\com\board\boardView.jsp -src\main\webapp\WEB-INF\jsp\sgis\com\board\boardWrite.jsp -src\main\resources\egovframework\mapper\sgis\board\MemberMapper.xml -src\main\webapp\com\js\main.map.js -src\main\webapp\WEB-INF\jsp\sgis\map\mapMain.jsp -src\main\webapp\WEB-INF\jsp\tiles\attribute\app.submenu.jsp -src\main\webapp\WEB-INF\jsp\sgis\map\mapInformation\sichudanNew.jsp -src\main\webapp\com\css\cross-section.css -src\main\webapp\com\js\cross-section.js -src\main\resources\egovframework\mapper\sgis\map\MapMainMapper.xml -src\main\webapp\WEB-INF\jsp\sgis\map\mapInformation\boreholeLog.jsp -src\main\webapp\WEB-INF\jsp\sgis\surveysystem\createSurvey.jsp \ No newline at end of file +src\main\webapp\WEB-INF\jsp\sgis\surveysystem\createSurvey.jsp +src\main\webapp\WEB-INF\jsp\tiles\attribute\adm.top.jsp +src\main\webapp\WEB-INF\jsp\sgis\surveysystem\createQuestion.jsp +src\main\resources\egovframework\mapper\sgis\surveysystem\SurveyMapper.xml +src\main\resources\egovframework\mapper\sgis\surveysystem\QuestionMapper.xml +src\main\webapp\WEB-INF\jsp\sgis\surveysystem\createQuestionOption.jsp +src\main\webapp\WEB-INF\jsp\sgis\map\mapMain.jsp \ No newline at end of file diff --git a/pom.xml b/pom.xml index 588afd9..0a2441e 100644 --- a/pom.xml +++ b/pom.xml @@ -25,36 +25,26 @@ - - mvn2 - http://repo1.maven.org/maven2/ - - true - - - true - - - - egovframe - http://www.egovframe.go.kr/maven/ - - true - - - false - - - - egovframe2 - http://maven.egovframe.kr:8080/maven/ - - true - - - false - - + + mvn2s + https://repo1.maven.org/maven2/ + + true + + + true + + + + egovframe + https://maven.egovframe.go.kr/maven/ + + true + + + false + + osgeo OSGeo Release Repository @@ -299,22 +289,22 @@ com.fasterxml.jackson.core jackson-core - 2.12.5 + 2.12.4 com.fasterxml.jackson.core jackson-databind - 2.12.5 - - - com.fasterxml.jackson.datatype - jackson-datatype-jsr310 - 2.12.5 + 2.12.4 com.fasterxml.jackson.core jackson-annotations - 2.12.5 + 2.12.4 + + + com.fasterxml.jackson.datatype + jackson-datatype-jsr310 + 2.12.4 com.googlecode.json-simple @@ -480,7 +470,7 @@ install ${basedir}/target - sht_webapp + smart_ground diff --git a/src/main/java/sgis/com/util/CryptoUtil.java b/src/main/java/sgis/com/util/CryptoUtil.java index 28bfb76..c1fb2ce 100644 --- a/src/main/java/sgis/com/util/CryptoUtil.java +++ b/src/main/java/sgis/com/util/CryptoUtil.java @@ -1,7 +1,5 @@ package sgis.com.util; -import java.net.URLDecoder; -import java.net.URLEncoder; import java.nio.ByteBuffer; import java.security.AlgorithmParameters; import java.security.MessageDigest; @@ -15,7 +13,6 @@ import javax.crypto.spec.PBEKeySpec; import javax.crypto.spec.SecretKeySpec; import org.apache.commons.codec.binary.Base64; -import org.junit.Test; /** * @FileName : CryptoUtil.java diff --git a/src/main/java/sgis/com/util/StringUtil.java b/src/main/java/sgis/com/util/StringUtil.java index 9d01662..f186fb9 100644 --- a/src/main/java/sgis/com/util/StringUtil.java +++ b/src/main/java/sgis/com/util/StringUtil.java @@ -4,7 +4,6 @@ import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.util.Date; -import org.junit.Test; /** * @FileName : StringUtil.java diff --git a/src/main/java/sgis/surveysystem/controller/AdminSurveyPageController.java b/src/main/java/sgis/surveysystem/controller/AdminSurveyPageController.java index ddb90a5..5e14b37 100644 --- a/src/main/java/sgis/surveysystem/controller/AdminSurveyPageController.java +++ b/src/main/java/sgis/surveysystem/controller/AdminSurveyPageController.java @@ -3,10 +3,14 @@ package sgis.surveysystem.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.ui.Model; // Model 객체 사용을 위해 추가 +import java.util.UUID; /** * 관리자 설문 페이지를 위한 컨트롤러. * JSP 뷰 파일을 반환합니다. + * 모든 요청은 .do 확장자로 끝납니다. */ @Controller // 뷰 이름을 반환하는 컨트롤러임을 명시 @RequestMapping("/admin/survey") // 이 컨트롤러의 기본 URL 경로 @@ -14,15 +18,50 @@ public class AdminSurveyPageController { /** * 설문 생성 폼 페이지를 표시합니다. - * 웹 브라우저에서 http://localhost:8080/your-app-context/admin/survey/create 로 접근 시 이 메서드가 호출됩니다. - * (your-app-context는 웹 애플리케이션의 컨텍스트 경로입니다. 예: /sgis) + * 웹 브라우저에서 `/admin/survey/createSurveyForm.do` 로 접근 시 이 메서드가 호출됩니다. * * @return JSP 파일의 논리적 경로 (ViewResolver에 의해 실제 경로로 변환됨) */ - @GetMapping("/create.do") + @GetMapping("/createSurveyForm.do") // GET 요청 처리, .do 확장자 추가 public String showCreateSurveyForm() { // ViewResolver 설정에 따라 다음 경로의 JSP 파일을 찾게 됩니다: - // /WEB-INF/jsp/ + sgis/surveysystem/createSurvey + .jsp + // /WEB-INF/jsp/sgis/surveysystem/createSurvey.jsp return "sgis/surveysystem/createSurvey"; } -} \ No newline at end of file + + /** + * 특정 설문에 대한 문항 생성 폼 페이지를 표시합니다. + * 웹 브라우저에서 `/admin/survey/{surveyId}/createQuestionForm.do` 로 접근 시 이 메서드가 호출됩니다. + * 이 페이지에서는 특정 설문에 속하는 문항을 생성할 수 있습니다. + * + * @param surveyId 문항을 생성할 설문의 고유 ID + * @param model Spring Model 객체 (뷰로 데이터를 전달하기 위해 사용) + * @return JSP 파일의 논리적 경로 (ViewResolver에 의해 실제 경로로 변환됨) + */ + @GetMapping("/{surveyId}/createQuestionForm.do") // GET 요청 처리, .do 확장자 추가 + public String showCreateQuestionForm(@PathVariable UUID surveyId, Model model) { + // surveyId를 Model에 추가하여 JSP에서 ${surveyId}로 접근할 수 있도록 합니다. + model.addAttribute("surveyId", surveyId); + // ViewResolver 설정에 따라 다음 경로의 JSP 파일을 찾게 됩니다: + // /WEB-INF/jsp/sgis/surveysystem/createQuestion.jsp + return "sgis/surveysystem/createQuestion"; + } + + /** + * 특정 문항에 대한 선택지 생성 폼 페이지를 표시합니다. + * 웹 브라우저에서 `/admin/survey/question/{questionId}/createOptionForm.do` 로 접근 시 이 메서드가 호출됩니다. + * 이 페이지에서는 특정 문항에 속하는 선택지를 생성할 수 있습니다. + * + * @param questionId 선택지를 생성할 문항의 고유 ID + * @param model Spring Model 객체 (뷰로 데이터를 전달하기 위해 사용) + * @return JSP 파일의 논리적 경로 (ViewResolver에 의해 실제 경로로 변환됨) + */ + @GetMapping("/question/{questionId}/createOptionForm.do") // GET 요청 처리, .do 확장자 추가 + public String showCreateQuestionOptionForm(@PathVariable UUID questionId, Model model) { + // questionId를 Model에 추가하여 JSP에서 ${questionId}로 접근할 수 있도록 합니다. + model.addAttribute("questionId", questionId); + // ViewResolver 설정에 따라 다음 경로의 JSP 파일을 찾게 됩니다: + // /WEB-INF/jsp/sgis/surveysystem/createQuestionOption.jsp + return "sgis/surveysystem/createQuestionOption"; + } +} diff --git a/src/main/java/sgis/surveysystem/controller/QuestionController.java b/src/main/java/sgis/surveysystem/controller/QuestionController.java index 2591acb..64ce19a 100644 --- a/src/main/java/sgis/surveysystem/controller/QuestionController.java +++ b/src/main/java/sgis/surveysystem/controller/QuestionController.java @@ -19,6 +19,7 @@ import java.util.stream.Collectors; /** * 설문 문항(Question) 관련 HTTP 요청을 처리하는 REST 컨트롤러. * 문항 생성, 조회, 수정, 삭제 등의 API 엔드포인트를 제공합니다. + * 모든 요청은 .do 확장자로 끝나며, GET과 POST 메서드만 사용합니다. */ @RestController @RequestMapping("/api/questions") @@ -34,7 +35,7 @@ public class QuestionController { * @param request Question 생성 요청 DTO * @return 생성된 문항 정보를 담은 응답 (HTTP 201 Created) */ - @PostMapping + @PostMapping("/createQuestion.do") // POST 요청 처리, .do 확장자 추가 public ResponseEntity createQuestion(@RequestBody QuestionCreateRequest request) { QuestionResponse createdQuestion = QuestionResponse.from( questionService.createQuestion( @@ -55,7 +56,7 @@ public class QuestionController { * @param surveyId 문항 목록을 조회할 설문 ID * @return 해당 설문의 모든 문항 정보를 담은 응답 리스트 (HTTP 200 OK) */ - @GetMapping("/by-survey/{surveyId}") + @GetMapping("/by-survey/{surveyId}/getQuestions.do") // GET 요청 처리, .do 확장자 추가 public ResponseEntity> getQuestionsBySurveyId(@PathVariable UUID surveyId) { List questions = questionService.getQuestionsBySurveyId(surveyId).stream() .map(question -> { @@ -81,7 +82,7 @@ public class QuestionController { * @return 조회된 문항 정보를 담은 응답 (HTTP 200 OK) * 문항이 없을 경우 HTTP 404 Not Found 반환 */ - @GetMapping("/{questionId}") + @GetMapping("/{questionId}/getQuestion.do") // GET 요청 처리, .do 확장자 추가 public ResponseEntity getQuestionById(@PathVariable UUID questionId) { try { QuestionResponse question = QuestionResponse.from(questionService.getQuestionById(questionId)); @@ -99,14 +100,15 @@ public class QuestionController { } /** - * 문항 정보를 업데이트합니다. (HTTP PUT) + * 문항 정보를 업데이트합니다. (HTTP POST) + * PUT 요청 대신 POST를 사용하며, URL 경로에 update 액션을 명시합니다. * * @param questionId 업데이트할 문항의 고유 ID * @param request Question 업데이트 요청 DTO * @return 업데이트된 문항 정보를 담은 응답 (HTTP 200 OK) * 문항이 없을 경우 HTTP 404 Not Found 반환 */ - @PutMapping("/{questionId}") + @PostMapping("/{questionId}/updateQuestion.do") // POST 요청으로 업데이트 처리, .do 확장자 추가 public ResponseEntity updateQuestion(@PathVariable UUID questionId, @RequestBody QuestionUpdateRequest request) { try { QuestionResponse updatedQuestion = QuestionResponse.from( @@ -125,13 +127,14 @@ public class QuestionController { } /** - * 특정 ID의 문항을 삭제합니다. (HTTP DELETE) + * 특정 ID의 문항을 삭제합니다. (HTTP POST) + * DELETE 요청 대신 POST를 사용하며, URL 경로에 delete 액션을 명시합니다. * * @param questionId 삭제할 문항의 고유 ID * @return 응답 본문 없이 HTTP 204 No Content 반환 * 문항이 없을 경우 HTTP 404 Not Found 반환 */ - @DeleteMapping("/{questionId}") + @PostMapping("/{questionId}/deleteQuestion.do") // POST 요청으로 삭제 처리, .do 확장자 추가 public ResponseEntity deleteQuestion(@PathVariable UUID questionId) { try { questionService.deleteQuestion(questionId); @@ -140,4 +143,4 @@ public class QuestionController { return new ResponseEntity<>(HttpStatus.NOT_FOUND); } } -} \ No newline at end of file +} diff --git a/src/main/java/sgis/surveysystem/controller/QuestionOptionController.java b/src/main/java/sgis/surveysystem/controller/QuestionOptionController.java index a439146..d35e106 100644 --- a/src/main/java/sgis/surveysystem/controller/QuestionOptionController.java +++ b/src/main/java/sgis/surveysystem/controller/QuestionOptionController.java @@ -17,6 +17,7 @@ import java.util.stream.Collectors; /** * 객관식 문항 선택지(QuestionOption) 관련 HTTP 요청을 처리하는 REST 컨트롤러. * 선택지 생성, 조회, 수정, 삭제 등의 API 엔드포인트를 제공합니다. + * 모든 요청은 .do 확장자로 끝나며, GET과 POST 메서드만 사용합니다. */ @RestController @RequestMapping("/api/question-options") @@ -31,7 +32,7 @@ public class QuestionOptionController { * @param request QuestionOption 생성 요청 DTO * @return 생성된 선택지 정보를 담은 응답 (HTTP 201 Created) */ - @PostMapping + @PostMapping("/createQuestionOption.do") // POST 요청 처리, .do 확장자 추가 public ResponseEntity createQuestionOption(@RequestBody QuestionOptionCreateRequest request) { QuestionOptionResponse createdOption = QuestionOptionResponse.from( questionOptionService.createQuestionOption( @@ -49,7 +50,7 @@ public class QuestionOptionController { * @param questionId 선택지 목록을 조회할 문항 ID * @return 해당 문항의 모든 선택지 정보를 담은 응답 리스트 (HTTP 200 OK) */ - @GetMapping("/by-question/{questionId}") + @GetMapping("/by-question/{questionId}/getOptions.do") // GET 요청 처리, .do 확장자 추가 public ResponseEntity> getOptionsByQuestionId(@PathVariable UUID questionId) { List options = questionOptionService.getOptionsByQuestionId(questionId).stream() .map(QuestionOptionResponse::from) @@ -64,7 +65,7 @@ public class QuestionOptionController { * @return 조회된 선택지 정보를 담은 응답 (HTTP 200 OK) * 선택지가 없을 경우 HTTP 404 Not Found 반환 */ - @GetMapping("/{optionId}") + @GetMapping("/{optionId}/getOption.do") // GET 요청 처리, .do 확장자 추가 public ResponseEntity getQuestionOptionById(@PathVariable UUID optionId) { try { QuestionOptionResponse option = QuestionOptionResponse.from(questionOptionService.getQuestionOptionById(optionId)); @@ -75,14 +76,15 @@ public class QuestionOptionController { } /** - * 선택지 정보를 업데이트합니다. (HTTP PUT) + * 선택지 정보를 업데이트합니다. (HTTP POST) + * PUT 요청 대신 POST를 사용하며, URL 경로에 update 액션을 명시합니다. * * @param optionId 업데이트할 선택지의 고유 ID * @param request QuestionOption 업데이트 요청 DTO * @return 업데이트된 선택지 정보를 담은 응답 (HTTP 200 OK) * 선택지가 없을 경우 HTTP 404 Not Found 반환 */ - @PutMapping("/{optionId}") + @PostMapping("/{optionId}/updateOption.do") // POST 요청으로 업데이트 처리, .do 확장자 추가 public ResponseEntity updateQuestionOption(@PathVariable UUID optionId, @RequestBody QuestionOptionUpdateRequest request) { try { QuestionOptionResponse updatedOption = QuestionOptionResponse.from( @@ -99,13 +101,14 @@ public class QuestionOptionController { } /** - * 특정 ID의 선택지를 삭제합니다. (HTTP DELETE) + * 특정 ID의 선택지를 삭제합니다. (HTTP POST) + * DELETE 요청 대신 POST를 사용하며, URL 경로에 delete 액션을 명시합니다. * * @param optionId 삭제할 선택지의 고유 ID * @return 응답 본문 없이 HTTP 204 No Content 반환 * 선택지가 없을 경우 HTTP 404 Not Found 반환 */ - @DeleteMapping("/{optionId}") + @PostMapping("/{optionId}/deleteOption.do") // POST 요청으로 삭제 처리, .do 확장자 추가 public ResponseEntity deleteQuestionOption(@PathVariable UUID optionId) { try { questionOptionService.deleteQuestionOption(optionId); @@ -114,4 +117,4 @@ public class QuestionOptionController { return new ResponseEntity<>(HttpStatus.NOT_FOUND); } } -} \ No newline at end of file +} diff --git a/src/main/java/sgis/surveysystem/controller/SurveyController.java b/src/main/java/sgis/surveysystem/controller/SurveyController.java index b8e13d9..4ac19a7 100644 --- a/src/main/java/sgis/surveysystem/controller/SurveyController.java +++ b/src/main/java/sgis/surveysystem/controller/SurveyController.java @@ -9,6 +9,8 @@ import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.List; import java.util.NoSuchElementException; import java.util.UUID; @@ -33,19 +35,26 @@ public class SurveyController { * @param request Survey 생성 요청 DTO * @return 생성된 설문 정보를 담은 응답 (HTTP 201 Created) */ - @PostMapping("/createSurvey.do") // POST 요청 처리, .do 확장자 추가 + @PostMapping("/createSurvey.do") public ResponseEntity createSurvey(@RequestBody SurveyCreateRequest request) { - // 서비스 계층의 createSurvey 메서드를 호출하여 설문을 생성합니다. - // DTO의 정보를 서비스 메서드의 파라미터로 전달합니다. + + LocalDateTime startDate = null; + if (request.getStartDate() != null && !request.getStartDate().isEmpty()) { + startDate = LocalDateTime.parse(request.getStartDate(), DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss")); + } + LocalDateTime endDate = null; + if (request.getEndDate() != null && !request.getEndDate().isEmpty()) { + endDate = LocalDateTime.parse(request.getEndDate(), DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss")); + } + SurveyResponse createdSurvey = SurveyResponse.from( surveyService.createSurvey( request.getSurveyTitle(), - request.getSurveyDescription(), // 수정: surveydescription() -> getSurveyDescription() - request.getStartDate(), - request.getEndDate() + request.getSurveyDescription(), + startDate, // 파싱된 LocalDateTime 객체 전달 + endDate // 파싱된 LocalDateTime 객체 전달 ) ); - // 생성 성공 시 201 Created 상태 코드와 함께 생성된 설문 정보를 반환합니다. return new ResponseEntity<>(createdSurvey, HttpStatus.CREATED); } diff --git a/src/main/java/sgis/surveysystem/dto/SurveyCreateRequest.java b/src/main/java/sgis/surveysystem/dto/SurveyCreateRequest.java index ab7ca9b..cee5504 100644 --- a/src/main/java/sgis/surveysystem/dto/SurveyCreateRequest.java +++ b/src/main/java/sgis/surveysystem/dto/SurveyCreateRequest.java @@ -18,6 +18,8 @@ import java.util.UUID; public class SurveyCreateRequest { private String surveyTitle; private String surveyDescription; - private LocalDateTime startDate; - private LocalDateTime endDate; + //private LocalDateTime startDate; + //private LocalDateTime endDate; + private String startDate; + private String endDate; } diff --git a/src/main/java/sgis/surveysystem/mapper/QuestionMapper.java b/src/main/java/sgis/surveysystem/mapper/QuestionMapper.java index 3d32e6a..2aadd27 100644 --- a/src/main/java/sgis/surveysystem/mapper/QuestionMapper.java +++ b/src/main/java/sgis/surveysystem/mapper/QuestionMapper.java @@ -2,16 +2,21 @@ package sgis.surveysystem.mapper; import sgis.surveysystem.domain.Question; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import java.util.List; -import java.util.Optional; +import java.util.Optional; // Optional은 더 이상 findQuestionById의 반환 타입으로 사용하지 않음 import java.util.UUID; @Mapper public interface QuestionMapper { void insertQuestion(Question question); + List findQuestionsBySurveyId(UUID surveyId); - Optional findQuestionById(UUID questionId); + + Question findQuestionById(UUID questionId); + void updateQuestion(Question question); + void deleteQuestion(UUID questionId); -} \ No newline at end of file +} diff --git a/src/main/java/sgis/surveysystem/mapper/QuestionOptionMapper.java b/src/main/java/sgis/surveysystem/mapper/QuestionOptionMapper.java index 8f418d2..e3d3a40 100644 --- a/src/main/java/sgis/surveysystem/mapper/QuestionOptionMapper.java +++ b/src/main/java/sgis/surveysystem/mapper/QuestionOptionMapper.java @@ -2,16 +2,20 @@ package sgis.surveysystem.mapper; import sgis.surveysystem.domain.QuestionOption; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; // @Param 사용 시 필요 import java.util.List; -import java.util.Optional; +import java.util.Optional; // Optional은 더 이상 findQuestionOptionById의 반환 타입으로 사용하지 않음 import java.util.UUID; @Mapper public interface QuestionOptionMapper { void insertQuestionOption(QuestionOption option); + List findOptionsByQuestionId(UUID questionId); - Optional findQuestionOptionById(UUID optionId); + QuestionOption findQuestionOptionById(UUID optionId); + void updateQuestionOption(QuestionOption option); + void deleteQuestionOption(UUID optionId); -} \ No newline at end of file +} diff --git a/src/main/java/sgis/surveysystem/mapper/SurveyMapper.java b/src/main/java/sgis/surveysystem/mapper/SurveyMapper.java index 5a530ed..d38db6a 100644 --- a/src/main/java/sgis/surveysystem/mapper/SurveyMapper.java +++ b/src/main/java/sgis/surveysystem/mapper/SurveyMapper.java @@ -5,15 +5,21 @@ import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; -import java.util.Optional; +import java.util.Optional; // Optional은 더 이상 findSurveyById의 반환 타입으로 사용하지 않음 import java.util.UUID; -@Mapper +@Mapper // MyBatis Mapper 임을 선언 public interface SurveyMapper { - void insertSurvey(Survey survey); - List findAllSurveys(); - Optional findSurveyById(UUID surveyId); - void updateSurvey(Survey survey); - void deleteSurvey(UUID surveyId); - void updateSurveyStatus(@Param("surveyId") UUID surveyId, @Param("isActive") Boolean isActive); -} \ No newline at end of file + void insertSurvey(Survey survey); // insert + + List findAllSurveys(); // select All + + // findSurveyById 메서드의 반환 타입을 Optional에서 Survey로 변경 + Survey findSurveyById(UUID surveyId); // select by ID (Optional 대신 직접 Survey 반환) + + void updateSurvey(Survey survey); // update + + void deleteSurvey(UUID surveyId); // delete by ID + + void updateSurveyStatus(@Param("surveyId") UUID surveyId, @Param("isActive") Boolean isActive); // 특정 필드 업데이트 +} diff --git a/src/main/java/sgis/surveysystem/service/QuestionOptionService.java b/src/main/java/sgis/surveysystem/service/QuestionOptionService.java index 903d7dd..b07be2b 100644 --- a/src/main/java/sgis/surveysystem/service/QuestionOptionService.java +++ b/src/main/java/sgis/surveysystem/service/QuestionOptionService.java @@ -8,6 +8,7 @@ import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.NoSuchElementException; +import java.util.Optional; // Optional 클래스 임포트 import java.util.UUID; /** @@ -71,7 +72,8 @@ public class QuestionOptionService { */ @Transactional(readOnly = true) public QuestionOption getQuestionOptionById(UUID optionId) { - return questionOptionMapper.findQuestionOptionById(optionId) // Mapper를 통해 ID로 선택지 조회 + // Mapper에서 직접 QuestionOption 객체를 반환하도록 변경했으므로, Optional.ofNullable()을 사용합니다. + return Optional.ofNullable(questionOptionMapper.findQuestionOptionById(optionId)) .orElseThrow(() -> new NoSuchElementException("Question Option not found with ID: " + optionId)); // 없을 경우 예외 발생 } @@ -109,4 +111,4 @@ public class QuestionOptionService { getQuestionOptionById(optionId); // 삭제할 선택지가 존재하는지 먼저 확인합니다. questionOptionMapper.deleteQuestionOption(optionId); // Mapper를 통해 선택지 삭제 } -} \ No newline at end of file +} diff --git a/src/main/java/sgis/surveysystem/service/QuestionService.java b/src/main/java/sgis/surveysystem/service/QuestionService.java index 9890d2d..d5bafce 100644 --- a/src/main/java/sgis/surveysystem/service/QuestionService.java +++ b/src/main/java/sgis/surveysystem/service/QuestionService.java @@ -8,6 +8,7 @@ import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.NoSuchElementException; +import java.util.Optional; // Optional 클래스 임포트 import java.util.UUID; /** @@ -74,7 +75,8 @@ public class QuestionService { */ @Transactional(readOnly = true) public Question getQuestionById(UUID questionId) { - return questionMapper.findQuestionById(questionId) // Mapper를 통해 ID로 문항 조회 + // Mapper에서 직접 Question 객체를 반환하도록 변경했으므로, Optional.ofNullable()을 사용합니다. + return Optional.ofNullable(questionMapper.findQuestionById(questionId)) .orElseThrow(() -> new NoSuchElementException("Question not found with ID: " + questionId)); // 없을 경우 예외 발생 } @@ -116,4 +118,4 @@ public class QuestionService { getQuestionById(questionId); // 삭제할 문항이 존재하는지 먼저 확인합니다. questionMapper.deleteQuestion(questionId); // Mapper를 통해 문항 삭제 } -} \ No newline at end of file +} diff --git a/src/main/java/sgis/surveysystem/service/SurveyService.java b/src/main/java/sgis/surveysystem/service/SurveyService.java index 972f8c1..1ee6894 100644 --- a/src/main/java/sgis/surveysystem/service/SurveyService.java +++ b/src/main/java/sgis/surveysystem/service/SurveyService.java @@ -9,6 +9,7 @@ import org.springframework.transaction.annotation.Transactional; import java.time.LocalDateTime; import java.util.List; import java.util.NoSuchElementException; +import java.util.Optional; // Optional 클래스 임포트 import java.util.UUID; /** @@ -70,7 +71,8 @@ public class SurveyService { */ @Transactional(readOnly = true) public Survey getSurveyById(UUID surveyId) { - return surveyMapper.findSurveyById(surveyId) // Mapper를 통해 ID로 설문 조회 + // Mapper에서 직접 Survey 객체를 반환하도록 변경했으므로, Optional.ofNullable()을 사용합니다. + return Optional.ofNullable(surveyMapper.findSurveyById(surveyId)) .orElseThrow(() -> new NoSuchElementException("Survey not found with ID: " + surveyId)); // 없을 경우 예외 발생 } diff --git a/src/main/resources/egovframework/mapper/sgis/app/AppMainMapper.xml b/src/main/resources/egovframework/mapper/sgis/app/AppMainMapper.xml index 9650682..107bdf8 100644 --- a/src/main/resources/egovframework/mapper/sgis/app/AppMainMapper.xml +++ b/src/main/resources/egovframework/mapper/sgis/app/AppMainMapper.xml @@ -141,6 +141,7 @@ diff --git a/src/main/resources/egovframework/mapper/sgis/surveysystem/QuestionMapper.xml b/src/main/resources/egovframework/mapper/sgis/surveysystem/QuestionMapper.xml index f5ce90d..9b3dbb8 100644 --- a/src/main/resources/egovframework/mapper/sgis/surveysystem/QuestionMapper.xml +++ b/src/main/resources/egovframework/mapper/sgis/surveysystem/QuestionMapper.xml @@ -21,8 +21,8 @@ question_order, is_required ) VALUES ( - #{questionId, jdbcType=OTHER}, - #{surveyId, jdbcType=OTHER}, + CAST(#{questionId, jdbcType=OTHER} AS uuid), + CAST(#{surveyId, jdbcType=OTHER} AS uuid), #{questionText}, #{questionType}, #{questionOrder}, @@ -30,7 +30,6 @@ ) - - - UPDATE tb_questions SET @@ -65,12 +62,11 @@ question_type = #{questionType}, question_order = #{questionOrder}, is_required = #{isRequired} - WHERE question_id = #{questionId, jdbcType=OTHER} + WHERE question_id = CAST(#{questionId, jdbcType=OTHER} AS uuid) - DELETE FROM tb_questions - WHERE question_id = #{questionId, jdbcType=OTHER} + WHERE question_id = CAST(#{questionId, jdbcType=OTHER} AS uuid) \ No newline at end of file diff --git a/src/main/resources/egovframework/mapper/sgis/surveysystem/QuestionOptionMapper.xml b/src/main/resources/egovframework/mapper/sgis/surveysystem/QuestionOptionMapper.xml index bd134c1..b8ad464 100644 --- a/src/main/resources/egovframework/mapper/sgis/surveysystem/QuestionOptionMapper.xml +++ b/src/main/resources/egovframework/mapper/sgis/surveysystem/QuestionOptionMapper.xml @@ -9,6 +9,7 @@ + INSERT INTO tb_question_options ( option_id, @@ -16,8 +17,8 @@ option_text, option_order ) VALUES ( - #{optionId, jdbcType=OTHER}, - #{questionId, jdbcType=OTHER}, + CAST(#{optionId, jdbcType=OTHER} AS uuid), + CAST(#{questionId, jdbcType=OTHER} AS uuid), #{optionText}, #{optionOrder} ) @@ -30,7 +31,7 @@ option_text, option_order FROM tb_question_options - WHERE question_id = #{questionId, jdbcType=OTHER} + WHERE question_id = CAST(#{questionId, jdbcType=OTHER} AS uuid) ORDER BY option_order ASC @@ -41,7 +42,7 @@ option_text, option_order FROM tb_question_options - WHERE option_id = #{optionId, jdbcType=OTHER} + WHERE option_id = CAST(#{optionId, jdbcType=OTHER} AS uuid) @@ -49,11 +50,11 @@ SET option_text = #{optionText}, option_order = #{optionOrder} - WHERE option_id = #{optionId, jdbcType=OTHER} + WHERE option_id = CAST(#{optionId, jdbcType=OTHER} AS uuid) DELETE FROM tb_question_options - WHERE option_id = #{optionId, jdbcType=OTHER} + WHERE option_id = CAST(#{optionId, jdbcType=OTHER} AS uuid) - \ No newline at end of file + diff --git a/src/main/resources/egovframework/mapper/sgis/surveysystem/SurveyMapper.xml b/src/main/resources/egovframework/mapper/sgis/surveysystem/SurveyMapper.xml index f6e962a..eb1ae21 100644 --- a/src/main/resources/egovframework/mapper/sgis/surveysystem/SurveyMapper.xml +++ b/src/main/resources/egovframework/mapper/sgis/surveysystem/SurveyMapper.xml @@ -24,7 +24,8 @@ start_date, end_date ) VALUES ( - #{surveyId, jdbcType=OTHER}, #{surveyTitle}, + CAST(#{surveyId, jdbcType=OTHER} AS uuid), + #{surveyTitle}, #{surveyDescription}, #{createdAt}, #{updatedAt}, @@ -58,7 +59,7 @@ start_date, end_date FROM tb_surveys - WHERE survey_id = #{surveyId, jdbcType=OTHER} + WHERE survey_id = CAST(#{surveyId, jdbcType=OTHER} AS uuid) @@ -70,7 +71,7 @@ is_active = #{isActive}, start_date = #{startDate}, end_date = #{endDate} - WHERE survey_id = #{surveyId, jdbcType=OTHER} + WHERE survey_id = CAST(#{surveyId, jdbcType=OTHER} AS uuid) @@ -78,11 +79,11 @@ SET is_active = #{isActive}, updated_at = NOW() - WHERE survey_id = #{surveyId, jdbcType=OTHER} + WHERE survey_id = CAST(#{surveyId, jdbcType=OTHER} AS uuid) DELETE FROM tb_surveys - WHERE survey_id = #{surveyId, jdbcType=OTHER} + WHERE survey_id = CAST(#{surveyId, jdbcType=OTHER} AS uuid) \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/config/egovframework/springmvc/egov-com-servlet.xml b/src/main/webapp/WEB-INF/config/egovframework/springmvc/egov-com-servlet.xml index 05f1d58..0a87cd6 100644 --- a/src/main/webapp/WEB-INF/config/egovframework/springmvc/egov-com-servlet.xml +++ b/src/main/webapp/WEB-INF/config/egovframework/springmvc/egov-com-servlet.xml @@ -4,19 +4,21 @@ xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:task="http://www.springframework.org/schema/task" + xmlns:util="http://www.springframework.org/schema/util" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd - http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.0.xsd"> + http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.0.xsd + http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd"> - - + + - + @@ -39,18 +41,17 @@ - - + + - - - - + + + @@ -58,6 +59,41 @@ - + + + + + + + + + - \ No newline at end of file + + + + + + + + + + + + + + + + + + + application/json;charset=UTF-8 + + + + + + + + + diff --git a/src/main/webapp/WEB-INF/jsp/sgis/app/proj/inputForm.jsp b/src/main/webapp/WEB-INF/jsp/sgis/app/proj/inputForm.jsp index f0d883c..8b19728 100644 --- a/src/main/webapp/WEB-INF/jsp/sgis/app/proj/inputForm.jsp +++ b/src/main/webapp/WEB-INF/jsp/sgis/app/proj/inputForm.jsp @@ -216,6 +216,7 @@ function selectComboList(class_name, data, selected_data){ } function go_save(){ + debugger; var upload = $("#fileUpload1").data("kendoUpload"); var upCnt = upload.getFiles().length diff --git a/src/main/webapp/WEB-INF/jsp/sgis/map/mapInformation/boreholeLog.jsp b/src/main/webapp/WEB-INF/jsp/sgis/map/mapInformation/boreholeLog.jsp index a8752ea..b6cb3a8 100644 --- a/src/main/webapp/WEB-INF/jsp/sgis/map/mapInformation/boreholeLog.jsp +++ b/src/main/webapp/WEB-INF/jsp/sgis/map/mapInformation/boreholeLog.jsp @@ -888,7 +888,7 @@
- 지반주상도 + 시추주상도
diff --git a/src/main/webapp/WEB-INF/jsp/sgis/map/mapInformation/sichudanNew.jsp b/src/main/webapp/WEB-INF/jsp/sgis/map/mapInformation/sichudanNew.jsp index d16cb2b..34e8712 100644 --- a/src/main/webapp/WEB-INF/jsp/sgis/map/mapInformation/sichudanNew.jsp +++ b/src/main/webapp/WEB-INF/jsp/sgis/map/mapInformation/sichudanNew.jsp @@ -186,7 +186,7 @@
  • 이동마우스 왼쪽 드래그, 확대L-Shift + 마우스 왼쪽 드래그
  • 시료를 채취한 부분으로 실내시험 결과를 확인 할 수 있습니다.
  • -
  • 지반주상도 정보를 확인 하실 수 있습니다.
  • +
  • 시추주상도 정보를 확인 하실 수 있습니다.
  • 지반단면도에 대한 XML 데이터를 보실 수 있습니다.
diff --git a/src/main/webapp/WEB-INF/jsp/sgis/map/mapMain.jsp b/src/main/webapp/WEB-INF/jsp/sgis/map/mapMain.jsp index 80f6008..b1afa10 100644 --- a/src/main/webapp/WEB-INF/jsp/sgis/map/mapMain.jsp +++ b/src/main/webapp/WEB-INF/jsp/sgis/map/mapMain.jsp @@ -381,7 +381,7 @@
  • 지반단면도 - 지반주상도 + 시추주상도 + + diff --git a/src/main/webapp/WEB-INF/jsp/sgis/surveysystem/createQuestionOption.jsp b/src/main/webapp/WEB-INF/jsp/sgis/surveysystem/createQuestionOption.jsp new file mode 100644 index 0000000..3b52bc8 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/sgis/surveysystem/createQuestionOption.jsp @@ -0,0 +1,428 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> + + + + + + 문항 선택지 생성 (관리자) + + + +
    +

    문항 ID: <%= request.getAttribute("questionId") %>

    +

    이 문항에 대한 선택지들을 생성합니다.

    +
    +
    + +
    +

    기존 선택지 목록

    +
    +

    로딩 중...

    +
    +
    + +
    +

    새 선택지 생성

    +
    + + "> + +
    + + +
    +
    + + +
    + + + +
    + ← 이전 페이지로 돌아가기 +
    + + + + diff --git a/src/main/webapp/WEB-INF/jsp/sgis/surveysystem/createSurvey.jsp b/src/main/webapp/WEB-INF/jsp/sgis/surveysystem/createSurvey.jsp index cbeaa32..17a3064 100644 --- a/src/main/webapp/WEB-INF/jsp/sgis/surveysystem/createSurvey.jsp +++ b/src/main/webapp/WEB-INF/jsp/sgis/surveysystem/createSurvey.jsp @@ -1,6 +1,3 @@ -설문 생성을 위한 관리자용 HTML 파일을 수정해 드릴게요. AJAX 요청 URL이 XXX.do 형식에 맞도록 업데이트했습니다. - -createSurvey.jsp 수정 내용 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> @@ -114,11 +111,16 @@ createSurvey.jsp 수정 내용
    - +
    - +
    @@ -151,13 +153,11 @@ createSurvey.jsp 수정 내용 endDate: document.getElementById('endDate').value ? document.getElementById('endDate').value + ':00' : null // 초까지 포함하도록 포맷팅 }; - // eGovFrame 환경에서 컨텍스트 경로를 동적으로 가져오는 방법 (JSP 파일일 경우) - // HTML 파일에서는 직접 경로를 지정하거나, 웹 서버 설정에 따라 /api/surveys로 직접 접근 가능 + // 컨텍스트 경로를 동적으로 가져오는 방법 (JSP 파일일 경우) const contextPath = "<%= request.getContextPath() %>"; // JSP일 경우에만 작동 // SurveyController의 @RequestMapping("/api/surveys")와 @PostMapping("/createSurvey.do")를 결합 const apiUrl = (typeof contextPath !== 'undefined' && contextPath !== null && contextPath !== '') ? contextPath + '/api/surveys/createSurvey.do' : '/api/surveys/createSurvey.do'; - try { const response = await fetch(apiUrl, { method: 'POST', @@ -173,6 +173,14 @@ createSurvey.jsp 수정 내용 messageDiv.classList.add('success'); messageDiv.style.display = 'block'; this.reset(); // 폼 필드 초기화 + + // 설문 생성 성공 후 createQuestion.jsp로 이동 + // AdminSurveyPageController의 /admin/survey/{surveyId}/createQuestionForm.do 경로로 이동 + const redirectUrl = (typeof contextPath !== 'undefined' && contextPath !== null && contextPath !== '') ? + contextPath + '/admin/survey/' + result.surveyId + '/createQuestionForm.do' : + '/admin/survey/' + result.surveyId + '/createQuestionForm.do'; + window.location.href = redirectUrl; // 페이지 리다이렉트 + } else { // HTTP 상태 코드가 200-299 범위를 벗어난 경우 (실패) const errorText = await response.text(); // 오류 메시지를 텍스트로 가져옴 messageDiv.textContent = '설문 생성 실패: ' + (errorText || '알 수 없는 오류'); diff --git a/src/main/webapp/WEB-INF/jsp/tiles/attribute/adm.top.jsp b/src/main/webapp/WEB-INF/jsp/tiles/attribute/adm.top.jsp index 96a15ed..c85eff1 100644 --- a/src/main/webapp/WEB-INF/jsp/tiles/attribute/adm.top.jsp +++ b/src/main/webapp/WEB-INF/jsp/tiles/attribute/adm.top.jsp @@ -20,6 +20,9 @@ function goUserInfo(){ function goApiInfo(){ location.href = ''; } +function goSurveySystem(){ + location.href = ''; +}
    diff --git a/src/main/webapp/WEB-INF/lib/jackson-datatype-jsr310-2.12.5.jar b/src/main/webapp/WEB-INF/lib/jackson-datatype-jsr310-2.12.5.jar new file mode 100644 index 0000000..1a42b3a Binary files /dev/null and b/src/main/webapp/WEB-INF/lib/jackson-datatype-jsr310-2.12.5.jar differ diff --git a/target/classes/egovframework/mapper/sgis/app/AppMainMapper.xml b/target/classes/egovframework/mapper/sgis/app/AppMainMapper.xml index 9650682..107bdf8 100644 --- a/target/classes/egovframework/mapper/sgis/app/AppMainMapper.xml +++ b/target/classes/egovframework/mapper/sgis/app/AppMainMapper.xml @@ -141,6 +141,7 @@ diff --git a/target/classes/egovframework/mapper/sgis/surveysystem/QuestionMapper.xml b/target/classes/egovframework/mapper/sgis/surveysystem/QuestionMapper.xml index f5ce90d..9b3dbb8 100644 --- a/target/classes/egovframework/mapper/sgis/surveysystem/QuestionMapper.xml +++ b/target/classes/egovframework/mapper/sgis/surveysystem/QuestionMapper.xml @@ -21,8 +21,8 @@ question_order, is_required ) VALUES ( - #{questionId, jdbcType=OTHER}, - #{surveyId, jdbcType=OTHER}, + CAST(#{questionId, jdbcType=OTHER} AS uuid), + CAST(#{surveyId, jdbcType=OTHER} AS uuid), #{questionText}, #{questionType}, #{questionOrder}, @@ -30,7 +30,6 @@ ) - - - UPDATE tb_questions SET @@ -65,12 +62,11 @@ question_type = #{questionType}, question_order = #{questionOrder}, is_required = #{isRequired} - WHERE question_id = #{questionId, jdbcType=OTHER} + WHERE question_id = CAST(#{questionId, jdbcType=OTHER} AS uuid) - DELETE FROM tb_questions - WHERE question_id = #{questionId, jdbcType=OTHER} + WHERE question_id = CAST(#{questionId, jdbcType=OTHER} AS uuid) \ No newline at end of file diff --git a/target/classes/egovframework/mapper/sgis/surveysystem/QuestionOptionMapper.xml b/target/classes/egovframework/mapper/sgis/surveysystem/QuestionOptionMapper.xml index bd134c1..b8ad464 100644 --- a/target/classes/egovframework/mapper/sgis/surveysystem/QuestionOptionMapper.xml +++ b/target/classes/egovframework/mapper/sgis/surveysystem/QuestionOptionMapper.xml @@ -9,6 +9,7 @@ + INSERT INTO tb_question_options ( option_id, @@ -16,8 +17,8 @@ option_text, option_order ) VALUES ( - #{optionId, jdbcType=OTHER}, - #{questionId, jdbcType=OTHER}, + CAST(#{optionId, jdbcType=OTHER} AS uuid), + CAST(#{questionId, jdbcType=OTHER} AS uuid), #{optionText}, #{optionOrder} ) @@ -30,7 +31,7 @@ option_text, option_order FROM tb_question_options - WHERE question_id = #{questionId, jdbcType=OTHER} + WHERE question_id = CAST(#{questionId, jdbcType=OTHER} AS uuid) ORDER BY option_order ASC @@ -41,7 +42,7 @@ option_text, option_order FROM tb_question_options - WHERE option_id = #{optionId, jdbcType=OTHER} + WHERE option_id = CAST(#{optionId, jdbcType=OTHER} AS uuid) @@ -49,11 +50,11 @@ SET option_text = #{optionText}, option_order = #{optionOrder} - WHERE option_id = #{optionId, jdbcType=OTHER} + WHERE option_id = CAST(#{optionId, jdbcType=OTHER} AS uuid) DELETE FROM tb_question_options - WHERE option_id = #{optionId, jdbcType=OTHER} + WHERE option_id = CAST(#{optionId, jdbcType=OTHER} AS uuid) - \ No newline at end of file + diff --git a/target/classes/egovframework/mapper/sgis/surveysystem/SurveyMapper.xml b/target/classes/egovframework/mapper/sgis/surveysystem/SurveyMapper.xml index f6e962a..eb1ae21 100644 --- a/target/classes/egovframework/mapper/sgis/surveysystem/SurveyMapper.xml +++ b/target/classes/egovframework/mapper/sgis/surveysystem/SurveyMapper.xml @@ -24,7 +24,8 @@ start_date, end_date ) VALUES ( - #{surveyId, jdbcType=OTHER}, #{surveyTitle}, + CAST(#{surveyId, jdbcType=OTHER} AS uuid), + #{surveyTitle}, #{surveyDescription}, #{createdAt}, #{updatedAt}, @@ -58,7 +59,7 @@ start_date, end_date FROM tb_surveys - WHERE survey_id = #{surveyId, jdbcType=OTHER} + WHERE survey_id = CAST(#{surveyId, jdbcType=OTHER} AS uuid) @@ -70,7 +71,7 @@ is_active = #{isActive}, start_date = #{startDate}, end_date = #{endDate} - WHERE survey_id = #{surveyId, jdbcType=OTHER} + WHERE survey_id = CAST(#{surveyId, jdbcType=OTHER} AS uuid) @@ -78,11 +79,11 @@ SET is_active = #{isActive}, updated_at = NOW() - WHERE survey_id = #{surveyId, jdbcType=OTHER} + WHERE survey_id = CAST(#{surveyId, jdbcType=OTHER} AS uuid) DELETE FROM tb_surveys - WHERE survey_id = #{surveyId, jdbcType=OTHER} + WHERE survey_id = CAST(#{surveyId, jdbcType=OTHER} AS uuid) \ No newline at end of file diff --git a/target/classes/sgis/com/util/CryptoUtil.class b/target/classes/sgis/com/util/CryptoUtil.class index 9255e04..7e8b434 100644 Binary files a/target/classes/sgis/com/util/CryptoUtil.class and b/target/classes/sgis/com/util/CryptoUtil.class differ diff --git a/target/classes/sgis/com/util/StringUtil.class b/target/classes/sgis/com/util/StringUtil.class index 47eb686..c44162a 100644 Binary files a/target/classes/sgis/com/util/StringUtil.class and b/target/classes/sgis/com/util/StringUtil.class differ diff --git a/target/classes/sgis/surveysystem/controller/AdminSurveyPageController.class b/target/classes/sgis/surveysystem/controller/AdminSurveyPageController.class index ba9a0ea..adc9886 100644 Binary files a/target/classes/sgis/surveysystem/controller/AdminSurveyPageController.class and b/target/classes/sgis/surveysystem/controller/AdminSurveyPageController.class differ diff --git a/target/classes/sgis/surveysystem/controller/QuestionController.class b/target/classes/sgis/surveysystem/controller/QuestionController.class index 192bdc9..b5cce64 100644 Binary files a/target/classes/sgis/surveysystem/controller/QuestionController.class and b/target/classes/sgis/surveysystem/controller/QuestionController.class differ diff --git a/target/classes/sgis/surveysystem/controller/QuestionOptionController.class b/target/classes/sgis/surveysystem/controller/QuestionOptionController.class index 95c39a2..1710e56 100644 Binary files a/target/classes/sgis/surveysystem/controller/QuestionOptionController.class and b/target/classes/sgis/surveysystem/controller/QuestionOptionController.class differ diff --git a/target/classes/sgis/surveysystem/controller/SurveyController.class b/target/classes/sgis/surveysystem/controller/SurveyController.class index a078fb1..015833b 100644 Binary files a/target/classes/sgis/surveysystem/controller/SurveyController.class and b/target/classes/sgis/surveysystem/controller/SurveyController.class differ diff --git a/target/classes/sgis/surveysystem/dto/SurveyCreateRequest.class b/target/classes/sgis/surveysystem/dto/SurveyCreateRequest.class index f3c19fc..7d912bd 100644 Binary files a/target/classes/sgis/surveysystem/dto/SurveyCreateRequest.class and b/target/classes/sgis/surveysystem/dto/SurveyCreateRequest.class differ diff --git a/target/classes/sgis/surveysystem/mapper/QuestionMapper.class b/target/classes/sgis/surveysystem/mapper/QuestionMapper.class index 79b22a2..ab1170a 100644 Binary files a/target/classes/sgis/surveysystem/mapper/QuestionMapper.class and b/target/classes/sgis/surveysystem/mapper/QuestionMapper.class differ diff --git a/target/classes/sgis/surveysystem/mapper/QuestionOptionMapper.class b/target/classes/sgis/surveysystem/mapper/QuestionOptionMapper.class index ad434de..ac66eb8 100644 Binary files a/target/classes/sgis/surveysystem/mapper/QuestionOptionMapper.class and b/target/classes/sgis/surveysystem/mapper/QuestionOptionMapper.class differ diff --git a/target/classes/sgis/surveysystem/mapper/SurveyMapper.class b/target/classes/sgis/surveysystem/mapper/SurveyMapper.class index c3a9783..341248c 100644 Binary files a/target/classes/sgis/surveysystem/mapper/SurveyMapper.class and b/target/classes/sgis/surveysystem/mapper/SurveyMapper.class differ diff --git a/target/classes/sgis/surveysystem/service/QuestionOptionService.class b/target/classes/sgis/surveysystem/service/QuestionOptionService.class index 1690f03..3fd1fd1 100644 Binary files a/target/classes/sgis/surveysystem/service/QuestionOptionService.class and b/target/classes/sgis/surveysystem/service/QuestionOptionService.class differ diff --git a/target/classes/sgis/surveysystem/service/QuestionService.class b/target/classes/sgis/surveysystem/service/QuestionService.class index 8fcf46e..2325a2d 100644 Binary files a/target/classes/sgis/surveysystem/service/QuestionService.class and b/target/classes/sgis/surveysystem/service/QuestionService.class differ diff --git a/target/classes/sgis/surveysystem/service/SurveyService.class b/target/classes/sgis/surveysystem/service/SurveyService.class index b48ed50..bfa9ea7 100644 Binary files a/target/classes/sgis/surveysystem/service/SurveyService.class and b/target/classes/sgis/surveysystem/service/SurveyService.class differ diff --git a/target/m2e-wtp/web-resources/META-INF/maven/smart_ground/sgis/pom.properties b/target/m2e-wtp/web-resources/META-INF/maven/smart_ground/sgis/pom.properties index e945115..a70f38a 100644 --- a/target/m2e-wtp/web-resources/META-INF/maven/smart_ground/sgis/pom.properties +++ b/target/m2e-wtp/web-resources/META-INF/maven/smart_ground/sgis/pom.properties @@ -1,5 +1,5 @@ #Generated by Maven Integration for Eclipse -#Sun Jul 06 01:28:23 KST 2025 +#Fri Jul 11 19:00:12 KST 2025 version=1.0.0 groupId=smart_ground m2e.projectName=sgis diff --git a/target/m2e-wtp/web-resources/META-INF/maven/smart_ground/sgis/pom.xml b/target/m2e-wtp/web-resources/META-INF/maven/smart_ground/sgis/pom.xml index 588afd9..0a2441e 100644 --- a/target/m2e-wtp/web-resources/META-INF/maven/smart_ground/sgis/pom.xml +++ b/target/m2e-wtp/web-resources/META-INF/maven/smart_ground/sgis/pom.xml @@ -25,36 +25,26 @@ - - mvn2 - http://repo1.maven.org/maven2/ - - true - - - true - - - - egovframe - http://www.egovframe.go.kr/maven/ - - true - - - false - - - - egovframe2 - http://maven.egovframe.kr:8080/maven/ - - true - - - false - - + + mvn2s + https://repo1.maven.org/maven2/ + + true + + + true + + + + egovframe + https://maven.egovframe.go.kr/maven/ + + true + + + false + + osgeo OSGeo Release Repository @@ -299,22 +289,22 @@ com.fasterxml.jackson.core jackson-core - 2.12.5 + 2.12.4 com.fasterxml.jackson.core jackson-databind - 2.12.5 - - - com.fasterxml.jackson.datatype - jackson-datatype-jsr310 - 2.12.5 + 2.12.4 com.fasterxml.jackson.core jackson-annotations - 2.12.5 + 2.12.4 + + + com.fasterxml.jackson.datatype + jackson-datatype-jsr310 + 2.12.4 com.googlecode.json-simple @@ -480,7 +470,7 @@ install ${basedir}/target - sht_webapp + smart_ground