댓글 삭제 작업중
parent
ff761d4385
commit
aa3f52b7cf
|
|
@ -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(
|
||||
<li>
|
||||
<li key={item.replSeq}>
|
||||
<span>{item?.frstCrtId}, {formattedDate}</span>
|
||||
{item?.replCont}
|
||||
<Link to="#" className="btn delete">삭제</Link>
|
||||
<Link to="#" className="btn delete" onClick={() => deleteReply(item.replSeq)}>삭제</Link>
|
||||
</li>
|
||||
);
|
||||
});
|
||||
|
|
@ -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 (
|
||||
<div className="container">
|
||||
<div className="c_wrap">
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue