diff --git a/egovframe-template-simple-react-contribution/src/pages/admin/board/AdminPostMgtEdit.jsx b/egovframe-template-simple-react-contribution/src/pages/admin/board/AdminPostMgtEdit.jsx new file mode 100644 index 0000000..0335671 --- /dev/null +++ b/egovframe-template-simple-react-contribution/src/pages/admin/board/AdminPostMgtEdit.jsx @@ -0,0 +1,187 @@ +import React, {useState, useEffect, useRef} from 'react'; +import {Link, useNavigate, useLocation, useParams} from 'react-router-dom'; +import Modal from "react-bootstrap/Modal"; + +import * as EgovNet from 'api/egovFetch'; +import URL from 'constants/url'; +import CODE from 'constants/code'; + +import {default as EgovLeftNav} from 'components/leftmenu/EgovLeftNavAdmin'; +import EgovRadioButtonGroup from 'components/EgovRadioButtonGroup'; +import {Form} from "react-bootstrap"; + + +function AdminPostMgtEdit({props, reloadFunction}) { + console.group("AdminPostMgtEdit"); + console.log("[Start] AdminPostMgtEdit ------------------------------"); + console.log("AdminPostMgtEdit [props] : ", props); + + const navigate = useNavigate(); + const location = useLocation(); + const checkRef = useRef([]); + + console.log("AdminPostMgtEdit [location] : ", location); + + let item = null; + item = props; + console.log("@@@ item : " + JSON.stringify(item)); + + const [modeInfo, setModeInfo] = useState(item != null ? {mode: props.mode} : {mode: CODE.MODE_CREATE}); + const [boardDetail, setBoardDetail] = useState({}); + console.log("@@@ mode : " + modeInfo.mode); + + useEffect(() => { + initMode(); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); + + const initMode = () => { + if (modeInfo.mode === CODE.MODE_MODIFY) { + setBoardDetail(item); + } + } + + function editPartnerSite(e) { + e.preventDefault(); + e.stopPropagation(); + const form = e.target; + const info = { + siteTitle: form.siteTitle.value, + siteUrl: form.siteUrl.value, + fileGrpId: form.fileGrpId.value, + siteOrder: form.siteOrder.value, + useYn: form.useYn.value + } + if (modeInfo.mode === CODE.MODE_MODIFY) { + info.siteSeq = props.siteSeq; + } + EgovNet.requestFetch( + '/admin/config/partner-site-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.result.resultMessage) + } + } + ) + } + + function deletePartnerSite(partnerSite){ + if(window.confirm("삭제하시겠습니까?")) { + EgovNet.requestFetch( + '/admin/config/partner-site-mgt', + { + method: "DELETE", + headers: { + 'Content-type': 'application/json' + }, + body: JSON.stringify(partnerSite) + }, + (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.result.resultMessage) + } + } + ) + } + } + + console.log("------------------------------AdminPostMgtEdit [End]"); + console.groupEnd("AdminPostMgtEdit"); + + const [defaultFixedYn, setDefaultFixedYn] = useState(props?.fixedYn || "N"); + + return ( + <> + {/* */} + + + {modeInfo.mode === CODE.MODE_CREATE && '글 작성'} + {modeInfo.mode === CODE.MODE_MODIFY && '글 수정'} + + + + +
+
{editPartnerSite(e)}} noValidate> +
+
필수
+
+ setDefaultFixedYn(e.target.checked ? 'Y' : 'N')} + /> +
+
+
+
필수
+
+ +
+
+
+
필수
+
+ +
+
+
+
필수
+
+ +
+
+
+
필수
+
+ +
+
+ + {/* */} +
+
+ + {modeInfo.mode === CODE.MODE_MODIFY && + + } +
+ +
+ +
+
+ {/* */} +
+
+
+ + + ); +} + +export default AdminPostMgtEdit; \ No newline at end of file diff --git a/egovframe-template-simple-react-contribution/src/pages/admin/board/AdminPostMgtList.jsx b/egovframe-template-simple-react-contribution/src/pages/admin/board/AdminPostMgtList.jsx index 36b6e2b..4f65a0d 100644 --- a/egovframe-template-simple-react-contribution/src/pages/admin/board/AdminPostMgtList.jsx +++ b/egovframe-template-simple-react-contribution/src/pages/admin/board/AdminPostMgtList.jsx @@ -8,14 +8,18 @@ import { default as EgovLeftNav } from 'components/leftmenu/EgovLeftNavAdmin'; import EgovPaging from 'components/EgovPaging'; import { itemIdxByPage } from 'utils/calc'; +import CODE from "../../../constants/code"; +import AboutSiteModal from "../config/aboutSiteMgt/AboutSiteModal"; +import AdminPostMgtEdit from "./AdminPostMgtEdit"; +import Modal from "react-bootstrap/Modal"; function AdminPostMgtList(props) { - console.group("EgovAdminBoardList"); - console.log("[Start] EgovAdminBoardList ------------------------------"); - console.log("EgovAdminBoardList [props] : ", props); + console.group("EgovAdminPostList"); + console.log("[Start] EgovAdminPostList ------------------------------"); + console.log("EgovAdminPostList [props] : ", props); const location = useLocation(); - console.log("EgovAdminBoardList [location] : ", location); + console.log("EgovAdminPostList [location] : ", location); // eslint-disable-next-line no-unused-vars const [searchCondition, setSearchCondition] = useState(location.state?.searchCondition || { pageIndex: 1, searchCnd: '0', searchWrd: '' });// 기존 조회에서 접근 했을 시 || 신규로 접근 했을 시 @@ -26,18 +30,23 @@ function AdminPostMgtList(props) { const [listTag, setListTag] = useState([]); - const retrieveList = useCallback((srchCnd) => { - console.groupCollapsed("EgovAdminBoardList.retrieveList()"); + const [show, setShow] = useState(false); + const [modalBody, setModalBody] = useState(); + const handleClose = () => setShow(false); + const handleShow = () => setShow(true); - const retrieveListURL = '/cop/bbs/selectBBSMasterInfsAPI.do'; + const retrieveList = useCallback(() => { + console.groupCollapsed("EgovAdminPostList.retrieveList()"); + + const retrieveListURL = '/admin/boards/post-list'; const requestOptions = { - method: "POST", + method: "GET", headers: { 'Content-type': 'application/json', }, - body: JSON.stringify(srchCnd) + body: JSON.stringify() } EgovNet.requestFetch(retrieveListURL, @@ -48,31 +57,19 @@ function AdminPostMgtList(props) { let mutListTag = []; listTag.push(

검색된 결과가 없습니다.

); // 게시판 목록 초기값 - const resultCnt = parseInt(resp.result.resultCnt); - const currentPageNo = resp.result.paginationInfo.currentPageNo; - const pageSize = resp.result.paginationInfo.pageSize; - // 리스트 항목 구성 - resp.result.resultList.forEach(function (item, index) { + resp.result.postList.forEach(function (item, index) { if (index === 0) mutListTag = []; // 목록 초기화 - const listIdx = itemIdxByPage(resultCnt , currentPageNo, pageSize, index); mutListTag.push( - -
{listIdx}
-
{item.bbsNm}
-
{item.bbsTyCodeNm}
-
{item.bbsAttrbCodeNm}
-
{item.frstRegisterPnttm}
-
{item.useAt === "Y" ? "사용" : "사용안함"}
- +
+
{item.bbsContSeq}
+
{item.bbsSeq}
+
{item.bbsContTitle}
+
{item.bbsContents}
+
{item.bbsReadCnt}
+
{item.bbsContLevel}
+
); }); @@ -82,7 +79,7 @@ function AdminPostMgtList(props) { console.log("err response : ", resp); } ); - console.groupEnd("EgovAdminBoardList.retrieveList()"); + console.groupEnd("EgovAdminPostList.retrieveList()"); },[listTag, searchCondition]); useEffect(() => { @@ -90,8 +87,16 @@ function AdminPostMgtList(props) { // eslint-disable-next-line react-hooks/exhaustive-deps }, []); - console.log("------------------------------EgovAdminBoardList [End]"); - console.groupEnd("EgovAdminBoardList"); + function editPost(item){ + handleShow(); + if(item != undefined) { + item.mode = CODE.MODE_MODIFY; + } + setModalBody() + } + + console.log("------------------------------EgovAdminPostList [End]"); + console.groupEnd("EgovAdminPostList"); return (
@@ -99,7 +104,8 @@ function AdminPostMgtList(props) {
  • Home
  • -
  • 사이트관리
  • +
  • 사이트관리
  • +
  • 게시판현황
  • 게시물 관리
@@ -114,11 +120,9 @@ function AdminPostMgtList(props) { {/* */}
-

사이트관리

+

게시물 관리

-

게시물 관리

- {/* */}
    @@ -159,12 +163,13 @@ function AdminPostMgtList(props) { {/* */}
    - 번호 - 게시판명 - 게시판유형 - 게시판속성 - 생성일 - 사용여부 + + 제목 + 작성자 + 작성일 + 조회수 + 파일 +
    {listTag} @@ -184,6 +189,9 @@ function AdminPostMgtList(props) {
+ + {modalBody} +
diff --git a/egovframe-template-simple-react-contribution/src/pages/admin/board/EgovAdminBoardEdit.jsx b/egovframe-template-simple-react-contribution/src/pages/admin/board/EgovAdminBoardEdit.jsx index 1051483..eb120ad 100644 --- a/egovframe-template-simple-react-contribution/src/pages/admin/board/EgovAdminBoardEdit.jsx +++ b/egovframe-template-simple-react-contribution/src/pages/admin/board/EgovAdminBoardEdit.jsx @@ -1,4 +1,4 @@ -import React, {useState, useEffect, useRef} from 'react'; +import React, {useState, useEffect, useRef, useCallback} from 'react'; import {Link, useNavigate, useLocation, useParams} from 'react-router-dom'; import Modal from "react-bootstrap/Modal"; @@ -30,7 +30,35 @@ function EgovAdminBoardEdit({props, reloadFunction}) { const [boardDetail, setBoardDetail] = useState({}); console.log("@@@ mode : " + modeInfo.mode); + const [bbsTypeList, setBbsTypeList] = useState([]); + const [roleList, setRoleList] = useState([]); + + const retrieveList = useCallback(() => { + const retrieveListURL = '/admin/boards/get-option-list'; + + const requestOptions = { + method: "GET", + headers: { + 'Content-type': 'application/json', + }, + body: JSON.stringify() + } + + EgovNet.requestFetch(retrieveListURL, + requestOptions, + (resp) => { + setBbsTypeList(resp.result.bbsTypeList); + setRoleList(resp.result.roleList); + console.log("@@@ bbsTypeList : " + JSON.stringify(resp.result.bbsTypeList)); + }, + function (resp) { + console.log("err response : ", resp); + } + ); + },[]); + useEffect(() => { + retrieveList(); initMode(); // eslint-disable-next-line react-hooks/exhaustive-deps }, []); @@ -48,7 +76,13 @@ function EgovAdminBoardEdit({props, reloadFunction}) { const info = { bbsId: form.bbsId.value, bbsTitle: form.bbsTitle.value, - bbsDesc: form.bbsDesc.value + bbsDesc: form.bbsDesc.value, + bbsType: form.bbsType.value, + bbsAnsYn: bbsAnsYn, + bbsReplYn: bbsReplYn, + useYn: useYn, + readRole: form.readRole.value, + writeRole: form.writeRole.value } if (modeInfo.mode === CODE.MODE_MODIFY) { info.bbsSeq = props.bbsSeq; @@ -103,6 +137,10 @@ function EgovAdminBoardEdit({props, reloadFunction}) { console.log("------------------------------EgovAdminBoardEdit [End]"); console.groupEnd("EgovAdminBoardEdit"); + const [bbsAnsYn, setBbsAnsYn] = useState(props?.bbsAnsYn || "N"); + const [bbsReplYn, setBbsReplYn] = useState(props?.bbsReplYn || "N"); + const [useYn, setUseYn] = useState(props?.useYn || "N"); + return ( <> {/* */} @@ -137,6 +175,75 @@ function EgovAdminBoardEdit({props, reloadFunction}) { defaultValue={props?.bbsDesc}/> +
+
필수
+
+ + + {bbsTypeList.map((item) => ( + + ))} + +
+
+
+
필수
+
+ setBbsAnsYn(e.target.checked ? 'Y' : 'N')} + /> +
+
+
+
필수
+
+ setBbsReplYn(e.target.checked ? 'Y' : 'N')} + /> +
+
+
+
필수
+
+ setUseYn(e.target.checked ? 'Y' : 'N')} + /> +
+
+
+
필수
+
+ + + {roleList.map((item) => ( + + ))} + +
+
+
+
필수
+
+ + + {roleList.map((item) => ( + + ))} + +
+
{/* */}
diff --git a/egovframe-template-simple-react-contribution/src/pages/admin/boards/List.jsx b/egovframe-template-simple-react-contribution/src/pages/admin/boards/List.jsx index fe4318e..27d39a3 100644 --- a/egovframe-template-simple-react-contribution/src/pages/admin/boards/List.jsx +++ b/egovframe-template-simple-react-contribution/src/pages/admin/boards/List.jsx @@ -53,15 +53,17 @@ function EgovAdminBoardList(props) { // 리스트 항목 구성 resp.result.boardList.forEach(function (item, index) { if (index === 0) mutListTag = []; // 목록 초기화 + const finalModifiedDate = item.lastChgDt ? item.lastChgDt : item.frstCrtDt; + const formattedDate = finalModifiedDate ? format(finalModifiedDate, "yyyy-MM-dd HH:mm") : ""; mutListTag.push(
-
{item.bbsSeq}
+
{item.bbsId}
{item.bbsTitle}
{item.frstCrtId}
-
{item.frstCrtDt ? format(item.frstCrtDt, "yyyy-MM-dd HH:mm") : ""}
-
{item.lastChgDt ? format(item.lastChgDt, "yyyy-MM-dd HH:mm") : ""}
+
{formattedDate}
+
{item.useYn}
); @@ -79,7 +81,6 @@ function EgovAdminBoardList(props) { useEffect(() => { retrieveList(searchCondition); - // eslint-disable-next-line react-hooks/exhaustive-deps }, []); function editBoard(item){ @@ -99,7 +100,8 @@ function EgovAdminBoardList(props) {
  • Home
  • -
  • 사이트관리
  • +
  • 사이트관리
  • +
  • 게시판현황
  • 게시판 관리
@@ -114,57 +116,18 @@ function EgovAdminBoardList(props) { {/* */}
-

사이트관리

+

게시판 관리

-

게시판 관리

- - {/* */} - {/*
-
    -
  • - 검색유형선택 - -
  • -
  • - 검색어 - - { - wrdRef.current.value = e.target.value; - }} - /> - - -
  • -
  • - 등록 -
  • -
-
*/} - {/* */} - {/* */}
- 번호 + 아이디 제목 작성자 - 작성일 - 수정일 + 최종수정일 + 사용여부
@@ -174,11 +137,6 @@ function EgovAdminBoardList(props) { {/* */}
- {/* */} - {/* { - retrieveList({ ...searchCondition, pageIndex: passedPage, searchCnd: cndRef.current.value, searchWrd: wrdRef.current.value }) - }} />*/} - {/* */}
{/* */} diff --git a/egovframe-template-simple-react-contribution/src/pages/admin/config/AboutSiteMgt.jsx b/egovframe-template-simple-react-contribution/src/pages/admin/config/AboutSiteMgt.jsx index 0003462..3bf6bab 100644 --- a/egovframe-template-simple-react-contribution/src/pages/admin/config/AboutSiteMgt.jsx +++ b/egovframe-template-simple-react-contribution/src/pages/admin/config/AboutSiteMgt.jsx @@ -50,13 +50,13 @@ function StandardCodeMgt(props) { mutListTag.push(
-
{item.siteSeq}
+
{item.siteTitle}
{item.siteUrl}
{item.fileGrpId}
{item.siteOrder}
{item.useYn}
-
+
); }); @@ -76,7 +76,7 @@ function StandardCodeMgt(props) { // eslint-disable-next-line react-hooks/exhaustive-deps }, []); - function editBoard(item){ + function editPartnerSite(item){ handleShow(); if(item != undefined) { item.mode = CODE.MODE_MODIFY; @@ -147,13 +147,13 @@ function StandardCodeMgt(props) { {/* */}
- 번호 + 사이트명 URL 배너이미지 정렬순서 사용여부 - +
{listTag} 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 66e22ad..7cc790d 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 @@ -8,8 +8,8 @@ import * as EgovNet from "api/egovFetch"; function QuestionModal({svySeq}){ - const [qtTag, setQtTag] = useState([]); - const [itemTag, setItemTag] = useState([]); + const [qtList, setQtList] = useState([]); + const [selectedQt, setSelectedQt] = useState(null); function getSurveyQt(){ EgovNet.requestFetch( @@ -18,19 +18,7 @@ function QuestionModal({svySeq}){ method: "GET" }, (resp) => { - - const temp = []; - resp.result.qtList.forEach(function (qt, index){ - temp.push( - - selectQt(qt.itemList)}> - - - - ) - }) - setQtTag(temp); - + setQtList(resp.result.qtList) }, function (resp) { console.log("err response : ", resp); @@ -38,42 +26,12 @@ function QuestionModal({svySeq}){ ); } - function selectQt(itemList){ - const temp = []; - itemList.forEach(function (item, index){ - temp.push( - - - - - - ) - }) - setItemTag(temp); - } - function addQt(){ - const temp = [...qtTag] - temp.push( - - - - - - ) - setQtTag(temp) + } function addItem(){ - const temp = [...itemTag] - temp.push( - - - - - - ) - setItemTag(temp) + } function editSurveyQt(e){ @@ -91,7 +49,7 @@ function QuestionModal({svySeq}){ - + @@ -99,7 +57,15 @@ function QuestionModal({svySeq}){ - {qtTag} + {qtList.map(qt=>{ + return ( + + + + ); + })} @@ -110,7 +76,32 @@ function QuestionModal({svySeq}){
+ {setSelectedQt(qt)}}/> +
- + + + + 질문유형 + + + {setSelectedQt({...selectedQt, qtType:1})}}/> + {setSelectedQt({...selectedQt, qtType:2})}}/> + {setSelectedQt({...selectedQt, qtType:3})}}/> + {setSelectedQt({...selectedQt, qtType:4})}}/> + + + + + 최대 선택 개수 + + + + + + 기타 여부 + + + + + @@ -118,7 +109,15 @@ function QuestionModal({svySeq}){ - {itemTag} + {selectedQt?.itemList.map(item=>{ + return ( + + + + ); + })} diff --git a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/boards/AdminBoardsController.java b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/boards/AdminBoardsController.java index 9215a7b..1a2ec86 100644 --- a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/boards/AdminBoardsController.java +++ b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/boards/AdminBoardsController.java @@ -4,6 +4,8 @@ import com.dbnt.kcscbackend.admin.boards.entity.TnBbs; import com.dbnt.kcscbackend.admin.boards.service.AdminBoardsService; import com.dbnt.kcscbackend.admin.config.entity.TcMenu; import com.dbnt.kcscbackend.auth.entity.LoginVO; +import com.dbnt.kcscbackend.commonCode.CommonCodeController; +import com.dbnt.kcscbackend.commonCode.service.CommonCodeService; import com.dbnt.kcscbackend.config.common.BaseController; import com.dbnt.kcscbackend.config.common.ResponseCode; import com.dbnt.kcscbackend.config.common.ResultVO; @@ -32,6 +34,7 @@ import java.util.Map; public class AdminBoardsController extends BaseController { private final AdminBoardsService adminBoardsService; + private final CommonCodeService commonCodeService; /* ---- 게시판관리 ----- */ @Operation( @@ -53,6 +56,26 @@ public class AdminBoardsController extends BaseController { return resultVO; } + @Operation( + summary = "게시판 셀렉트박스 옵션 조회", + description = "게시판 셀렉트박스 옵션 조회", + tags = {"AdminBoardsController"} + ) + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "조회 성공"), + @ApiResponse(responseCode = "403", description = "인가된 사용자가 아님") + }) + @RequestMapping(method = RequestMethod.GET, value = "/get-option-list", consumes = MediaType.APPLICATION_JSON_VALUE) + public ResultVO getOptionList() throws Exception { + ResultVO resultVO = new ResultVO(); + Map resultMap = new HashMap<>(); + + resultMap.put("bbsTypeList", commonCodeService.selectCodeItemList("BBS_TYPE")); + resultMap.put("roleList", commonCodeService.selectCodeItemList("ROLE")); + resultVO.setResult(resultMap); + return resultVO; + } + @Operation( summary = "게시판 저장", description = "게시판 저장", @@ -126,7 +149,7 @@ public class AdminBoardsController extends BaseController { ResultVO resultVO = new ResultVO(); Map resultMap = new HashMap<>(); - resultMap.put("boardList", adminBoardsService.selectBoardList()); + resultMap.put("postList", adminBoardsService.selectPostList()); resultVO.setResult(resultMap); return resultVO; } diff --git a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/boards/entity/TnBbs.java b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/boards/entity/TnBbs.java index f91277a..1226a05 100644 --- a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/boards/entity/TnBbs.java +++ b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/boards/entity/TnBbs.java @@ -70,4 +70,10 @@ public class TnBbs { @Column(name = "oldd_seq") private Long olddSeq; + @Column(name = "read_role") + private Long readRole; + + @Column(name = "write_role") + private Long writeRole; + } \ No newline at end of file diff --git a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/boards/repository/TnBbsRepository.java b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/boards/repository/TnBbsRepository.java index 5291413..874c5f0 100644 --- a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/boards/repository/TnBbsRepository.java +++ b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/boards/repository/TnBbsRepository.java @@ -8,7 +8,7 @@ import java.util.List; public interface TnBbsRepository extends JpaRepository { - @Query(value = "SELECT * FROM tn_bbs WHERE use_yn = 'Y' ORDER BY bbs_seq DESC", nativeQuery = true) + @Query(value = "SELECT * FROM tn_bbs ORDER BY bbs_seq DESC", nativeQuery = true) List findAllByOrderByBbsSeqDesc(); } diff --git a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/boards/service/AdminBoardsService.java b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/boards/service/AdminBoardsService.java index 48a4bca..796d21f 100644 --- a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/boards/service/AdminBoardsService.java +++ b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/boards/service/AdminBoardsService.java @@ -34,16 +34,18 @@ public class AdminBoardsService extends EgovAbstractServiceImpl { if (bbs.getBbsSeq() == null) { bbs.setFrstCrtDt(LocalDateTime.now()); bbs.setFrstCrtId(userId); - bbs.setBbsAnsYn("N"); - bbs.setBbsReplYn("N"); - bbs.setUseYn("Y"); tnBbsRepository.save(bbs); } else { TnBbs savedBoard = tnBbsRepository.findById(bbs.getBbsSeq()).orElse(null); savedBoard.setBbsId(bbs.getBbsId()); savedBoard.setBbsTitle(bbs.getBbsTitle()); savedBoard.setBbsDesc(bbs.getBbsDesc()); - //savedBoard.setUseYn("Y"); + savedBoard.setBbsType(bbs.getBbsType()); + savedBoard.setBbsAnsYn(bbs.getBbsAnsYn()); + savedBoard.setBbsReplYn(bbs.getBbsReplYn()); + savedBoard.setUseYn(bbs.getUseYn()); + savedBoard.setReadRole(bbs.getReadRole()); + savedBoard.setWriteRole(bbs.getWriteRole()); savedBoard.setLastChgId(userId); savedBoard.setLastChgDt(LocalDateTime.now()); tnBbsRepository.save(savedBoard);
+ +