From aa3f52b7cfec74d2e555a3e4b039434d54451a96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9C=A0=EB=AF=BC=ED=98=95?= Date: Wed, 24 Jul 2024 17:59:58 +0900 Subject: [PATCH] =?UTF-8?q?=EB=8C=93=EA=B8=80=20=EC=82=AD=EC=A0=9C=20?= =?UTF-8?q?=EC=9E=91=EC=97=85=EC=A4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/pages/support/Detail.jsx | 38 ++++++++++++++++--- .../user/UserBoardsController.java | 27 +++++++++++++ .../user/service/UserBoardsService.java | 11 ++++++ 3 files changed, 71 insertions(+), 5 deletions(-) diff --git a/egovframe-template-simple-react-contribution/src/pages/support/Detail.jsx b/egovframe-template-simple-react-contribution/src/pages/support/Detail.jsx index 0402f9c..95b7f61 100644 --- a/egovframe-template-simple-react-contribution/src/pages/support/Detail.jsx +++ b/egovframe-template-simple-react-contribution/src/pages/support/Detail.jsx @@ -34,6 +34,7 @@ function Detail(){ }; const retrieveList = useCallback(() => { + console.log("@@@ retrieveList 호출됨"); const retrieveListURL = '/user/boards/reply/reply-list?bbsContSeq=' + bbsContSeq; const requestOptions = { @@ -49,13 +50,13 @@ function Detail(){ let mutListTag = []; setListTag([]); resp.result.replyList.forEach(function (item) { - const finalModifiedDate = item?.lastChgDt ? item?.lastChgDt : item?.frstCrtDt; + const finalModifiedDate = item?.lastChgDt || item?.frstCrtDt; const formattedDate = finalModifiedDate ? format(finalModifiedDate, "yyyy-MM-dd HH:mm:ss") : ""; mutListTag.push( -
  • +
  • {item?.frstCrtId}, {formattedDate} {item?.replCont} - 삭제 + deleteReply(item.replSeq)}>삭제
  • ); }); @@ -66,7 +67,7 @@ function Detail(){ console.log("err response : ", resp); } ); - },[]); + },[bbsContSeq]); useEffect(() => { retrieveList(); @@ -81,7 +82,7 @@ function Detail(){ editReply(e); }; - function editReply(e) { + const editReply = (e) => { e.preventDefault(); e.stopPropagation(); @@ -113,6 +114,33 @@ function Detail(){ ) } + const deleteReply = (replSeq) => { + if (window.confirm("삭제하시겠습니까?")) { + EgovNet.requestFetch( + '/user/boards/reply/reply-mgt', + { + method: "DELETE", + headers: { + 'Content-type': 'application/json' + }, + body: JSON.stringify({replSeq}) + }, + (resp) => { + if (Number(resp.resultCode) === Number(CODE.RCV_SUCCESS)) { + console.log("@@@ 삭제 성공, retrieveList 호출"); + retrieveList(); + } else if (Number(resp.resultCode) === Number(CODE.RCV_ERROR_AUTH)) { + console.log("토큰 갱신중.") + } else { + alert(resp.result.resultMessage) + } + } + ) + } + } + + + return (
    diff --git a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/user/UserBoardsController.java b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/user/UserBoardsController.java index 25d9b55..e6ba546 100644 --- a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/user/UserBoardsController.java +++ b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/user/UserBoardsController.java @@ -225,4 +225,31 @@ public class UserBoardsController extends BaseController { return resultVO; } + @Operation( + summary = "댓글 삭제", + description = "댓글 삭제", + tags = {"AdminBoardsController"} + ) + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "삭제 성공"), + @ApiResponse(responseCode = "403", description = "인가된 사용자가 아님") + }) + @RequestMapping(method = RequestMethod.DELETE, value = "/reply/reply-mgt") + public ResultVO deleteReplyMgt(@RequestBody TnBbsRepl tnBbsRepl, HttpServletRequest request, @AuthenticationPrincipal LoginVO user) { + ResultVO resultVO = new ResultVO(); + if (user == null) { + resultVO.setResultCode(ResponseCode.TOKEN_EXPIRED.getCode()); + } else { + tnBbsRepl.setIpAddress(ClientUtils.getRemoteIP(request)); + String result = userBoardsService.deleteReply(tnBbsRepl); + 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/user/service/UserBoardsService.java b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/user/service/UserBoardsService.java index 311db78..0c3a26e 100644 --- a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/user/service/UserBoardsService.java +++ b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/user/service/UserBoardsService.java @@ -50,4 +50,15 @@ public class UserBoardsService extends EgovAbstractServiceImpl { tnBbsReplRepository.save(tnBbsRepl); } + @Transactional + public String deleteReply(TnBbsRepl tnBbsRepl) { + TnBbsRepl savedReply = tnBbsReplRepository.findById(tnBbsRepl.getReplSeq()).orElse(null); + if (savedReply == null) { + return "notFind"; + } else { + tnBbsReplRepository.deleteById(tnBbsRepl.getReplSeq()); + return null; + } + } + }