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; + } + } + }