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:'설문 생성'} + + + +
{editSurvey(e)}} noValidate> + + + 제목 + + + + + + + + 설명 + + + + + + + + 시작일 + + + + + + + + 종료일 + + + + + + + + 첨부파일 + + + + + + + + + + + +
+
+ + ); +} + +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; + } }