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