From a2fcdfe5695ccfa087cc9955a82d13bda7b2858a Mon Sep 17 00:00:00 2001 From: "Lim\\jun" Date: Tue, 13 Feb 2024 09:14:09 +0900 Subject: [PATCH 1/4] =?UTF-8?q?=EA=B8=B0=EB=B3=B8=20=ED=8F=AC=EB=A9=A7=20?= =?UTF-8?q?=EC=97=85=EB=8E=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/pages/admin/config/AboutSiteMgt.jsx | 36 ++++++++++++++++--- .../pages/admin/config/StandardCodeMgt.jsx | 32 +++++++++++++++-- 2 files changed, 62 insertions(+), 6 deletions(-) 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 c1bc4c4..82c04d1 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 @@ -1,13 +1,41 @@ -import React from 'react'; +import React, { useState, useEffect, useCallback } from 'react'; +import { Link, useLocation } from 'react-router-dom'; +import * as EgovNet from 'api/egovFetch'; +import URL from 'constants/url'; -function AboutSiteMgt(props) { +import { default as EgovLeftNav } from 'components/leftmenu/EgovLeftNavAdmin'; + +function StandardCodeMgt(props) { return (
- AboutSiteMgt +
+ {/* */} +
+
    +
  • Home
  • +
  • 사이트관리
  • +
  • 환경설정
  • +
  • 관련사이트 관리
  • +
+
+ {/* */} + +
+ {/* */} + + {/* */} + +
+
+

관련사이트 관리

+
+
+
+
); } -export default AboutSiteMgt; \ No newline at end of file +export default StandardCodeMgt; \ No newline at end of file diff --git a/egovframe-template-simple-react-contribution/src/pages/admin/config/StandardCodeMgt.jsx b/egovframe-template-simple-react-contribution/src/pages/admin/config/StandardCodeMgt.jsx index 168cc06..73e52ab 100644 --- a/egovframe-template-simple-react-contribution/src/pages/admin/config/StandardCodeMgt.jsx +++ b/egovframe-template-simple-react-contribution/src/pages/admin/config/StandardCodeMgt.jsx @@ -1,11 +1,39 @@ -import React from 'react'; +import React, { useState, useEffect, useCallback } from 'react'; +import { Link, useLocation } from 'react-router-dom'; +import * as EgovNet from 'api/egovFetch'; +import URL from 'constants/url'; + +import { default as EgovLeftNav } from 'components/leftmenu/EgovLeftNavAdmin'; function StandardCodeMgt(props) { return (
- StandardCodeMgt +
+ {/* */} +
+
    +
  • Home
  • +
  • 사이트관리
  • +
  • 환경설정
  • +
  • 건설기준코드 관리
  • +
+
+ {/* */} + +
+ {/* */} + + {/* */} + +
+
+

건설기준코드 관리

+
+
+
+
); } From 6ca96a65ad16f656025b38fbe85d8f8fe624c61e Mon Sep 17 00:00:00 2001 From: "Lim\\jun" Date: Tue, 13 Feb 2024 09:15:48 +0900 Subject: [PATCH 2/4] =?UTF-8?q?=EA=B8=B0=EB=B3=B8=20=ED=8F=AC=EB=A9=A7=20?= =?UTF-8?q?=EC=97=85=EB=8E=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/pages/admin/boards/Keywords.jsx | 36 ++++++++++++++++--- .../src/pages/admin/boards/Posts.jsx | 36 ++++++++++++++++--- 2 files changed, 64 insertions(+), 8 deletions(-) diff --git a/egovframe-template-simple-react-contribution/src/pages/admin/boards/Keywords.jsx b/egovframe-template-simple-react-contribution/src/pages/admin/boards/Keywords.jsx index 1810ee5..4968282 100644 --- a/egovframe-template-simple-react-contribution/src/pages/admin/boards/Keywords.jsx +++ b/egovframe-template-simple-react-contribution/src/pages/admin/boards/Keywords.jsx @@ -1,13 +1,41 @@ -import React from 'react'; +import React, { useState, useEffect, useCallback } from 'react'; +import { Link, useLocation } from 'react-router-dom'; +import * as EgovNet from 'api/egovFetch'; +import URL from 'constants/url'; -function Keywords(props) { +import { default as EgovLeftNav } from 'components/leftmenu/EgovLeftNavAdmin'; + +function StandardCodeMgt(props) { return (
- Keywords +
+ {/* */} +
+
    +
  • Home
  • +
  • 사이트관리
  • +
  • 게시판현황
  • +
  • 키워드 관리
  • +
+
+ {/* */} + +
+ {/* */} + + {/* */} + +
+
+

키워드 관리

+
+
+
+
); } -export default Keywords; \ No newline at end of file +export default StandardCodeMgt; \ No newline at end of file diff --git a/egovframe-template-simple-react-contribution/src/pages/admin/boards/Posts.jsx b/egovframe-template-simple-react-contribution/src/pages/admin/boards/Posts.jsx index 9584e57..74004a3 100644 --- a/egovframe-template-simple-react-contribution/src/pages/admin/boards/Posts.jsx +++ b/egovframe-template-simple-react-contribution/src/pages/admin/boards/Posts.jsx @@ -1,13 +1,41 @@ -import React from 'react'; +import React, { useState, useEffect, useCallback } from 'react'; +import { Link, useLocation } from 'react-router-dom'; +import * as EgovNet from 'api/egovFetch'; +import URL from 'constants/url'; -function Posts(props) { +import { default as EgovLeftNav } from 'components/leftmenu/EgovLeftNavAdmin'; + +function StandardCodeMgt(props) { return (
- Posts +
+ {/* */} +
+
    +
  • Home
  • +
  • 사이트관리
  • +
  • 게시판현황
  • +
  • 게시물 관리
  • +
+
+ {/* */} + +
+ {/* */} + + {/* */} + +
+
+

게시물 관리

+
+
+
+
); } -export default Posts; \ No newline at end of file +export default StandardCodeMgt; \ No newline at end of file From cbfb9b2ca3066861d6ccc4c70de7bf05b0ad7346 Mon Sep 17 00:00:00 2001 From: "Lim\\jun" Date: Tue, 13 Feb 2024 09:18:41 +0900 Subject: [PATCH 3/4] =?UTF-8?q?=EA=B8=B0=EB=B3=B8=20=ED=8F=AC=EB=A9=A7=20?= =?UTF-8?q?=EC=97=85=EB=8E=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/pages/admin/standards/InfoDisclosure.jsx | 4 +--- .../src/pages/admin/standards/ReferenceCodes.jsx | 4 +--- .../src/pages/admin/standards/SimilarityCheck.jsx | 3 +-- 3 files changed, 3 insertions(+), 8 deletions(-) diff --git a/egovframe-template-simple-react-contribution/src/pages/admin/standards/InfoDisclosure.jsx b/egovframe-template-simple-react-contribution/src/pages/admin/standards/InfoDisclosure.jsx index 0e06a5e..13cf6c1 100644 --- a/egovframe-template-simple-react-contribution/src/pages/admin/standards/InfoDisclosure.jsx +++ b/egovframe-template-simple-react-contribution/src/pages/admin/standards/InfoDisclosure.jsx @@ -35,11 +35,9 @@ function InfoDisclosure(props) {
{/* */}
-

건설기준 관리

+

건설기준 내용 관리

-

건설기준 내용 관리

- 여기에 구현해주세요. {/* */}
diff --git a/egovframe-template-simple-react-contribution/src/pages/admin/standards/ReferenceCodes.jsx b/egovframe-template-simple-react-contribution/src/pages/admin/standards/ReferenceCodes.jsx index cebd72f..39e52c2 100644 --- a/egovframe-template-simple-react-contribution/src/pages/admin/standards/ReferenceCodes.jsx +++ b/egovframe-template-simple-react-contribution/src/pages/admin/standards/ReferenceCodes.jsx @@ -35,11 +35,9 @@ function ReferenceCodes(props) {
{/* */}
-

건설기준 관리

+

참조코드 관리

-

참조코드 관리

- 여기에 구현해주세요. {/* */}
diff --git a/egovframe-template-simple-react-contribution/src/pages/admin/standards/SimilarityCheck.jsx b/egovframe-template-simple-react-contribution/src/pages/admin/standards/SimilarityCheck.jsx index 7a374c5..48a914f 100644 --- a/egovframe-template-simple-react-contribution/src/pages/admin/standards/SimilarityCheck.jsx +++ b/egovframe-template-simple-react-contribution/src/pages/admin/standards/SimilarityCheck.jsx @@ -35,10 +35,9 @@ function SimilarityCheck(props) {
{/* */}
-

건설기준 관리

+

유사성 검사

-

유사성 검사

여기에 구현해주세요. {/* */} From 1fd7ba0fb1888818a32a9400d5a9ce82ea56cdf3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9C=A0=EB=AF=BC=ED=98=95?= Date: Tue, 13 Feb 2024 17:25:29 +0900 Subject: [PATCH 4/4] =?UTF-8?q?=EA=B2=8C=EC=8B=9C=ED=8C=90=EA=B4=80?= =?UTF-8?q?=EB=A6=AC=20=EC=A1=B0=ED=9A=8C,=20=EC=82=AD=EC=A0=9C,=20?= =?UTF-8?q?=EB=82=A0=EC=A7=9C=ED=8F=AC=EB=A7=B7=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pages/admin/board/EgovAdminBoardEdit.jsx | 27 +++++++++++++++++- .../src/pages/admin/boards/List.jsx | 9 ++---- .../admin/boards/AdminBoardsController.java | 28 ++++++++++++++++++- .../boards/repository/TnBbsRepository.java | 2 ++ .../boards/service/AdminBoardsService.java | 24 ++++++++++++++-- 5 files changed, 79 insertions(+), 11 deletions(-) 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 49865e2..b3e425e 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 @@ -74,6 +74,31 @@ function EgovAdminBoardEdit({props, reloadFunction}) { ) } + function deleteBoard(bbs){ + if(window.confirm("삭제하시겠습니까?")) { + EgovNet.requestFetch( + '/admin/boards/board-mgt', + { + method: "DELETE", + headers: { + 'Content-type': 'application/json' + }, + body: JSON.stringify(bbs) + }, + (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("------------------------------EgovAdminBoardEdit [End]"); console.groupEnd("EgovAdminBoardEdit"); @@ -118,7 +143,7 @@ function EgovAdminBoardEdit({props, reloadFunction}) { {modeInfo.mode === CODE.MODE_MODIFY && - + }
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 5f2f31b..62486d4 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 @@ -6,12 +6,9 @@ import URL from 'constants/url'; import CODE from 'constants/code'; import { default as EgovLeftNav } from 'components/leftmenu/EgovLeftNavAdmin'; -import EgovPaging from 'components/EgovPaging'; - -import { itemIdxByPage } from 'utils/calc'; -import MenuModal from "../config/menuMgt/MenuModal"; import Modal from "react-bootstrap/Modal"; import EgovAdminBoardEdit from "../board/EgovAdminBoardEdit"; +import {format} from "date-fns"; function EgovAdminBoardList(props) { console.group("EgovAdminBoardList"); @@ -63,8 +60,8 @@ function EgovAdminBoardList(props) {
{item.bbsId}
{item.bbsTitle}
{item.frstCrtId}
-
{item.frstCrtDt}
-
{item.lastChgDt}
+
{item.frstCrtDt ? format(item.frstCrtDt, "yyyy-MM-dd HH:mm") : ""}
+
{item.lastChgDt ? format(item.lastChgDt, "yyyy-MM-dd HH:mm") : ""}
); 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 e8fbe2a..67ece4a 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 @@ -55,7 +55,7 @@ public class AdminBoardsController extends BaseController { @Operation( summary = "게시판 저장", description = "게시판 저장", - tags = {"AdminConfigController"} + tags = {"AdminBoardsController"} ) @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "저장 성공"), @@ -83,4 +83,30 @@ 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.DELETE, value = "/board-mgt") + public ResultVO removeBoardMgt(@RequestBody TnBbs bbs, @AuthenticationPrincipal LoginVO user) { + ResultVO resultVO = new ResultVO(); + if (user == null) { + resultVO.setResultCode(ResponseCode.TOKEN_EXPIRED.getCode()); + } else { + String result = adminBoardsService.deleteBoard(bbs, user.getId()); + if (result == null) { + resultVO.setResultCode(ResponseCode.SUCCESS.getCode()); + } else if (result.equals("notFind")) { + resultVO.setResultCode(ResponseCode.SAVE_ERROR.getCode()); + resultVO.setResultMessage("대상이 존재하지 않습니다."); + } + } + return resultVO; + } } 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 b700de4..5291413 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 @@ -2,11 +2,13 @@ package com.dbnt.kcscbackend.admin.boards.repository; import com.dbnt.kcscbackend.admin.boards.entity.TnBbs; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; 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) 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 39c25a1..f20dd4f 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 @@ -2,6 +2,7 @@ package com.dbnt.kcscbackend.admin.boards.service; import com.dbnt.kcscbackend.admin.boards.entity.TnBbs; import com.dbnt.kcscbackend.admin.boards.repository.TnBbsRepository; +import com.dbnt.kcscbackend.admin.config.entity.TcMenu; import lombok.RequiredArgsConstructor; import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl; import org.springframework.stereotype.Service; @@ -17,13 +18,16 @@ public class AdminBoardsService extends EgovAbstractServiceImpl { private final TnBbsRepository tnBbsRepository; - public List selectBoardList() { return tnBbsRepository.findAllByOrderByBbsSeqDesc(); } + public List selectBoardList() { + return tnBbsRepository.findAllByOrderByBbsSeqDesc(); + } - public Optional selectBoard(Long bbsSeq) { return tnBbsRepository.findById(bbsSeq); } + public Optional selectBoard(Long bbsSeq) { + return tnBbsRepository.findById(bbsSeq); + } @Transactional public void saveBoard(TnBbs bbs, String userId) { - if (bbs.getBbsSeq() == null) { bbs.setFrstCrtDt(LocalDateTime.now()); bbs.setFrstCrtId(userId); @@ -43,4 +47,18 @@ public class AdminBoardsService extends EgovAbstractServiceImpl { } } + @Transactional + public String deleteBoard(TnBbs bbs, String userId) { + TnBbs savedBoard = tnBbsRepository.findById(bbs.getBbsSeq()).orElse(null); + if (savedBoard == null) { + return "notFind"; + } else { + savedBoard.setUseYn("N"); + savedBoard.setLastChgDt(LocalDateTime.now()); + savedBoard.setLastChgId(userId); + tnBbsRepository.save(savedBoard); + return null; + } + } + }