diff --git a/egovframe-template-simple-react-contribution/src/pages/admin/contents/Survey.jsx b/egovframe-template-simple-react-contribution/src/pages/admin/contents/Survey.jsx
index 33318a0..366602ba 100644
--- a/egovframe-template-simple-react-contribution/src/pages/admin/contents/Survey.jsx
+++ b/egovframe-template-simple-react-contribution/src/pages/admin/contents/Survey.jsx
@@ -6,12 +6,15 @@ import URL from 'constants/url';
import { default as EgovLeftNav } from 'components/leftmenu/EgovLeftNavAdmin';
import * as EgovNet from "../../../api/egovFetch";
import Modal from "react-bootstrap/Modal";
+import SurveyModal from "./survey/SurveyModal";
+import QuestionModal from "./survey/QuestionModal";
function Survey({}) {
const [listTag, setListTag] = useState([]);
const [show, setShow] = useState(false);
+ const [modalSize, setModalSize] = useState("md");
const [modalBody, setModalBody] = useState();
const handleClose = () => setShow(false);
@@ -34,7 +37,7 @@ function Survey({}) {
{item.svyTitle}
{item.svyStartDt}~{item.svyEndDt}
-
+
@@ -56,9 +59,16 @@ function Survey({}) {
);
},[]);
- function editSurvey(){
+ function editSurvey(item){
handleShow();
- setModalBody(<>>);
+ setModalSize("md")
+ setModalBody(
);
+ }
+
+ function editSurveyQt(item){
+ handleShow();
+ setModalSize("xl")
+ setModalBody(
);
}
useEffect(()=>{
@@ -104,7 +114,7 @@ function Survey({}) {
-
+
{modalBody}
diff --git a/egovframe-template-simple-react-contribution/src/pages/admin/contents/survey/QuestionModal.jsx b/egovframe-template-simple-react-contribution/src/pages/admin/contents/survey/QuestionModal.jsx
new file mode 100644
index 0000000..e822272
--- /dev/null
+++ b/egovframe-template-simple-react-contribution/src/pages/admin/contents/survey/QuestionModal.jsx
@@ -0,0 +1,80 @@
+import React, {useEffect, useState} from "react";
+import Modal from "react-bootstrap/Modal";
+import Form from "react-bootstrap/Form";
+import Row from "react-bootstrap/Row";
+import Col from "react-bootstrap/Col";
+import * as EgovNet from "api/egovFetch";
+
+function QuestionModal({svySeq}){
+
+ const [qtTag, setQtTag] = useState([]);
+ const [itemTag, setItemTag] = useState([]);
+
+ function getSurveyQt(){
+ EgovNet.requestFetch(
+ '/admin/survey/edit-qt?svySeq='+svySeq,
+ {
+ method: "GET"
+ },
+ (resp) => {
+
+ const temp = [];
+ resp.result.qtList.forEach(function (qt, index){
+ temp.push(
+
+ selectQt(qt.itemList)}>{qt.qtTitle}
+
+ )
+ })
+ setQtTag(temp);
+
+ },
+ function (resp) {
+ console.log("err response : ", resp);
+ }
+ );
+ }
+
+ function selectQt(itemList){
+ const temp = [];
+ itemList.forEach(function (item, index){
+ temp.push(
+
+ {item.itemNm}
+
+ )
+ })
+ setItemTag(temp);
+ }
+
+ function editSurveyQt(e){
+
+ }
+
+ useEffect(() => {
+ getSurveyQt()
+ }, []);
+
+ return (
+ <>
+
+ 질문관리
+
+
+
+
+ {qtTag}
+
+
+ {itemTag}
+
+
+
+
+
+
+ >
+ );
+}
+
+export default QuestionModal;
\ No newline at end of file
diff --git a/egovframe-template-simple-react-contribution/src/pages/admin/contents/survey/SurveyModal.jsx b/egovframe-template-simple-react-contribution/src/pages/admin/contents/survey/SurveyModal.jsx
new file mode 100644
index 0000000..2858270
--- /dev/null
+++ b/egovframe-template-simple-react-contribution/src/pages/admin/contents/survey/SurveyModal.jsx
@@ -0,0 +1,107 @@
+import React from "react";
+import Modal from "react-bootstrap/Modal";
+import Form from "react-bootstrap/Form";
+import Row from "react-bootstrap/Row";
+import Col from "react-bootstrap/Col";
+import * as EgovNet from "api/egovFetch";
+import CODE from "constants/code";
+
+function SurveyModal({savedInfo, reloadFunction}){
+
+ function editSurvey(e){
+ e.preventDefault();
+ e.stopPropagation();
+ const form = e.target;
+ const info = {
+ menuId: form.menuId.value,
+ menuTitle: form.menuTitle.value,
+ menuGroup: form.menuGroup.value,
+ menuLevel: form.menuLevel.value,
+ menuSort: form.menuSort.value,
+ menuUrl: form.menuUrl.value,
+ menuTypeCd: form.menuTypeCd.value,
+ }
+ EgovNet.requestFetch(
+ '/admin/config/menu-mgt',
+ {
+ method: "PUT",
+ headers: {
+ 'Content-type': 'application/json'
+ },
+ body: JSON.stringify(info)
+ },
+ (resp) => {
+ if (Number(resp.resultCode) === Number(CODE.RCV_SUCCESS)) {
+ alert("저장되었습니다.")
+ reloadFunction();
+ }else if(Number(resp.resultCode) === Number(CODE.RCV_ERROR_AUTH)){
+ console.log("토큰 갱신중.")
+ }else{
+ alert(resp.resultMessage)
+ }
+ }
+ )
+ }
+
+ return (
+ <>
+
+
+ {savedInfo!==undefined?savedInfo?.svyTitle:'설문 생성'}
+
+
+
+
+
+ 제목
+
+
+
+
+
+
+
+ 설명
+
+
+
+
+
+
+
+ 시작일
+
+
+
+
+
+
+
+ 종료일
+
+
+
+
+
+
+
+ 첨부파일
+
+
+
+
+
+
+
+
+
+
+
+
+
+ >
+ );
+}
+
+export default SurveyModal;
\ No newline at end of file
diff --git a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/contents/survey/AdminSurveyController.java b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/contents/survey/AdminSurveyController.java
index 56d4c9b..a39ce99 100644
--- a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/contents/survey/AdminSurveyController.java
+++ b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/contents/survey/AdminSurveyController.java
@@ -1,9 +1,10 @@
package com.dbnt.kcscbackend.admin.contents.survey;
+import com.dbnt.kcscbackend.admin.contents.survey.entity.TnSurvey;
import com.dbnt.kcscbackend.admin.contents.survey.service.AdminSurveyService;
import com.dbnt.kcscbackend.auth.entity.LoginVO;
import com.dbnt.kcscbackend.config.common.ResultVO;
-import com.dbnt.kcscbackend.config.util.ClientUtils;
+
import lombok.RequiredArgsConstructor;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -22,7 +23,7 @@ public class AdminSurveyController {
private final AdminSurveyService adminSurveyService;
@RequestMapping(method = RequestMethod.GET, value = "/list")
- public ResultVO getSurveyList(HttpServletRequest request, @AuthenticationPrincipal LoginVO user) throws Exception{
+ public ResultVO getSurveyList() throws Exception{
ResultVO resultVO = new ResultVO();
Map resultMap = new HashMap<>();
@@ -30,4 +31,24 @@ public class AdminSurveyController {
resultVO.setResult(resultMap);
return resultVO;
}
+
+ @RequestMapping(method = RequestMethod.GET, value = "/edit")
+ public ResultVO surveyEdit(TnSurvey survey) throws Exception{
+
+ ResultVO resultVO = new ResultVO();
+ Map resultMap = new HashMap<>();
+ resultMap.put("survey", adminSurveyService.selectSurvey(survey));
+ resultVO.setResult(resultMap);
+ return resultVO;
+ }
+
+ @RequestMapping(method = RequestMethod.GET, value = "/edit-qt")
+ public ResultVO surveyEditQt(TnSurvey survey) throws Exception{
+
+ ResultVO resultVO = new ResultVO();
+ Map resultMap = new HashMap<>();
+ resultMap.put("qtList", adminSurveyService.selectSurveyQt(survey));
+ resultVO.setResult(resultMap);
+ return resultVO;
+ }
}
diff --git a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/contents/survey/entity/TnSurveyQt.java b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/contents/survey/entity/TnSurveyQt.java
index d37fbfd..28f0041 100644
--- a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/contents/survey/entity/TnSurveyQt.java
+++ b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/contents/survey/entity/TnSurveyQt.java
@@ -6,12 +6,11 @@ import lombok.Setter;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.Table;
+import javax.persistence.*;
import java.time.LocalDate;
import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
@Getter
@Setter
@@ -41,4 +40,7 @@ public class TnSurveyQt {
private String etcYn;
@Column(name = "old_seq")
private Integer oldSeq;
+
+ @Transient
+ private List itemList = new ArrayList<>();
}
diff --git a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/contents/survey/repository/TnSurveyQtItemRepository.java b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/contents/survey/repository/TnSurveyQtItemRepository.java
index 6e5e18c..fb2c308 100644
--- a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/contents/survey/repository/TnSurveyQtItemRepository.java
+++ b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/contents/survey/repository/TnSurveyQtItemRepository.java
@@ -3,5 +3,8 @@ package com.dbnt.kcscbackend.admin.contents.survey.repository;
import com.dbnt.kcscbackend.admin.contents.survey.entity.TnSurveyQtItem;
import org.springframework.data.jpa.repository.JpaRepository;
+import java.util.List;
+
public interface TnSurveyQtItemRepository extends JpaRepository {
+ List findByQtSeqInOrderByQtItemSeq(List qtSeqList);
}
diff --git a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/contents/survey/repository/TnSurveyQtRepository.java b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/contents/survey/repository/TnSurveyQtRepository.java
index 15f276d..72d38f2 100644
--- a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/contents/survey/repository/TnSurveyQtRepository.java
+++ b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/contents/survey/repository/TnSurveyQtRepository.java
@@ -3,5 +3,8 @@ package com.dbnt.kcscbackend.admin.contents.survey.repository;
import com.dbnt.kcscbackend.admin.contents.survey.entity.TnSurveyQt;
import org.springframework.data.jpa.repository.JpaRepository;
+import java.util.List;
+
public interface TnSurveyQtRepository extends JpaRepository {
+ List findBySvySeqOrderByQtSeq(Integer svySeq);
}
diff --git a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/contents/survey/service/AdminSurveyService.java b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/contents/survey/service/AdminSurveyService.java
index 56bf02f..8f1531b 100644
--- a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/contents/survey/service/AdminSurveyService.java
+++ b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/contents/survey/service/AdminSurveyService.java
@@ -1,12 +1,15 @@
package com.dbnt.kcscbackend.admin.contents.survey.service;
import com.dbnt.kcscbackend.admin.contents.survey.entity.TnSurvey;
+import com.dbnt.kcscbackend.admin.contents.survey.entity.TnSurveyQt;
+import com.dbnt.kcscbackend.admin.contents.survey.entity.TnSurveyQtItem;
import com.dbnt.kcscbackend.admin.contents.survey.repository.TnSurveyQtItemRepository;
import com.dbnt.kcscbackend.admin.contents.survey.repository.TnSurveyQtRepository;
import com.dbnt.kcscbackend.admin.contents.survey.repository.TnSurveyRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
+import java.util.ArrayList;
import java.util.List;
@Service
@@ -19,4 +22,25 @@ public class AdminSurveyService {
public List selectSurveyList() {
return surveyRepository.findAllByOrderBySvySeqDesc();
}
+
+ public TnSurvey selectSurvey(TnSurvey survey) {
+ return surveyRepository.findById(survey.getSvySeq()).orElse(null);
+ }
+
+ public List selectSurveyQt(TnSurvey survey) {
+ List qtList = qtRepository.findBySvySeqOrderByQtSeq(survey.getSvySeq());
+ List qtSeqList = new ArrayList<>();
+ for(TnSurveyQt qt: qtList){
+ qtSeqList.add(qt.getQtSeq());
+ }
+ List itemList = itemRepository.findByQtSeqInOrderByQtItemSeq(qtSeqList);
+ for(TnSurveyQt qt: qtList){
+ for(TnSurveyQtItem item: itemList){
+ if(qt.getQtSeq().equals(item.getQtSeq())){
+ qt.getItemList().add(item);
+ }
+ }
+ }
+ return qtList;
+ }
}