From 57d669cbdc6a7640897673f34ab59f9cbecdc033 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B0=95=EC=84=9D=20=EC=B5=9C?= Date: Mon, 11 Mar 2024 17:29:45 +0900 Subject: [PATCH] =?UTF-8?q?=EC=84=A4=EB=AC=B8=EA=B4=80=EB=A6=AC=20?= =?UTF-8?q?=EC=9E=91=EC=97=85=EC=99=84=EB=A3=8C.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/contents/survey/QuestionModal.jsx | 141 +++++++++++++++--- .../survey/AdminSurveyController.java | 15 +- .../repository/TnSurveyQtItemRepository.java | 1 + .../repository/TnSurveyQtRepository.java | 2 + .../survey/service/AdminSurveyService.java | 16 ++ 5 files changed, 155 insertions(+), 20 deletions(-) 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 index 3ef8bc8..f10df17 100644 --- 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 @@ -5,6 +5,7 @@ import Col from "react-bootstrap/Col"; import Form from "react-bootstrap/Form"; import Table from "react-bootstrap/Table"; import * as EgovNet from "api/egovFetch"; +import CODE from "../../../../constants/code"; function QuestionModal({svySeq}){ @@ -44,12 +45,54 @@ function QuestionModal({svySeq}){ setTempSeq(tempSeq+1); } - function addItem(){ + function qtOptionChange(target, value){ + const temp = {...selectedQt} + temp[target] = value; + setSelectedQt(temp); + } + function addItem(){ + const temp = {...selectedQt} + temp.itemList.push({ + qtItemSeq: null, + qtSeq:null, + itemNm: null, + questionYn:null + }) + setSelectedQt(temp); + } + + function removeQt(index){ + const temp = [...qtList] + temp.splice(index, 1); + setQtList(temp); + setSelectedQt(null) + } + + function removeItem(index){ + const temp = {...selectedQt} + temp.itemList.splice(index, 1) + setSelectedQt(temp) } function editSurveyQt(e){ - + EgovNet.requestFetch( + '/admin/survey/info-qt', + { + method: "PUT", + headers: { + 'Content-type': 'application/json' + }, + body: JSON.stringify(qtList) + }, + (resp) => { + if (Number(resp.resultCode) === Number(CODE.RCV_SUCCESS)) { + alert("저장되었습니다.") + }else{ + alert(resp.resultMessage) + } + } + ) } useEffect(() => { @@ -60,16 +103,20 @@ function QuestionModal({svySeq}){ const tempQt = [...qtList]; tempQt.forEach(function (qt, index){ if(qt.qtSeq === null){ - if(qt.tempSeq === selectedQt.tempSeq){ - qt = selectedQt; + if(qt.tempSeq === selectedQt?.tempSeq){ + tempQt[index] = selectedQt; } - }else if(qt.qtSeq === selectedQt.qtSeq){ - qt = selectedQt; + }else if(qt.qtSeq === selectedQt?.qtSeq){ + tempQt[index] = selectedQt; } }) setQtList(tempQt); }, [selectedQt]); + useEffect(() => { + + }, [qtList]); + return ( <> @@ -79,17 +126,29 @@ function QuestionModal({svySeq}){ + + + + + - {qtList.map(qt=>{ + {qtList.map((qt, index)=>{ return ( - + setSelectedQt({...qt})}> + ); @@ -97,7 +156,7 @@ function QuestionModal({svySeq}){ - @@ -110,10 +169,38 @@ function QuestionModal({svySeq}){ 질문유형 - {setSelectedQt({...selectedQt, qtType:1})}}/> - {setSelectedQt({...selectedQt, qtType:2})}}/> - {setSelectedQt({...selectedQt, qtType:3})}}/> - {setSelectedQt({...selectedQt, qtType:4})}}/> + { + qtOptionChange("qtType", Number(e.target.value)); + }}/> + { + qtOptionChange("qtType", Number(e.target.value)); + }}/> + { + qtOptionChange("qtType", Number(e.target.value)); + }}/> + { + qtOptionChange("qtType", Number(e.target.value)); + }}/> + + + + + 설명 + + + { + qtOptionChange("qtDesc", e.target.value); + }}/> @@ -121,19 +208,32 @@ function QuestionModal({svySeq}){ 최대 선택 개수 - {setSelectedQt({...selectedQt, maxNo:e.target.value})}}/> + { + qtOptionChange("maxNo", e.target.value); + }}/> 기타 여부 - {setSelectedQt({...selectedQt, etcYn:e.target.checked?'Y':'N'})}}/> + { + qtOptionChange("etcYn", e.target.checked?'Y':'N'); + }}/> -
질문삭제
- {setSelectedQt(qt)}}/> + { + qt.qtTitle = e.target.value + setSelectedQt({...qt}) + }} /> + +
+
+
+ + + + + @@ -148,13 +248,16 @@ function QuestionModal({svySeq}){ setSelectedQt(qt); }}/> + ); })} - @@ -164,7 +267,7 @@ function QuestionModal({svySeq}){ - + ); 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 091f153..280f10b 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,6 +1,7 @@ package com.dbnt.kcscbackend.admin.contents.survey; 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.service.AdminSurveyService; import com.dbnt.kcscbackend.auth.entity.LoginVO; import com.dbnt.kcscbackend.config.common.ResponseCode; @@ -18,6 +19,7 @@ import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; import java.util.HashMap; +import java.util.List; import java.util.Map; @RestController @@ -75,7 +77,7 @@ public class AdminSurveyController { } @RequestMapping(method = RequestMethod.GET, value = "/info-qt") - public ResultVO surveyEditQt(TnSurvey survey) throws Exception{ + public ResultVO surveyQt(TnSurvey survey) throws Exception{ ResultVO resultVO = new ResultVO(); Map resultMap = new HashMap<>(); @@ -83,4 +85,15 @@ public class AdminSurveyController { resultVO.setResult(resultMap); return resultVO; } + + @RequestMapping(method = RequestMethod.PUT, value = "/info-qt") + public ResultVO surveyQtEdit(@RequestBody List qtList, @AuthenticationPrincipal LoginVO user) throws Exception{ + ResultVO resultVO = new ResultVO(); + + adminSurveyService.insertSurveyQt(qtList, user.getId()); + resultVO.setResultCode(ResponseCode.SUCCESS.getCode()); + resultVO.setResultMessage("저장 되었습니다."); + + return resultVO; + } } 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 fb2c308..418e7a5 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 @@ -7,4 +7,5 @@ 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 72d38f2..5350879 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 @@ -7,4 +7,6 @@ import java.util.List; public interface TnSurveyQtRepository extends JpaRepository { List findBySvySeqOrderByQtSeq(Integer svySeq); + + void deleteBySvySeq(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 657e8c2..9bde9f1 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 @@ -77,4 +77,20 @@ public class AdminSurveyService { public void deleteSurvey(Integer svySeq) { surveyRepository.deleteById(svySeq); } + + @Transactional + public void insertSurveyQt(List qtList, String id) { + qtRepository.deleteBySvySeq(qtList.get(0).getSvySeq()); + for(TnSurveyQt qt: qtList){ + qt.setQtSeq(null); + } + qtRepository.saveAll(qtList); + for(TnSurveyQt qt: qtList){ + for(TnSurveyQtItem item: qt.getItemList()){ + item.setQtSeq(qt.getQtSeq()); + } + itemRepository.saveAll(qt.getItemList()); + } + System.out.println(); + } }
보기삭제
+ +
+