
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
package com.takensoft.cms.bbs.web;
import com.takensoft.cms.bbs.service.CmntService;
import com.takensoft.cms.bbs.vo.CmntVO;
import com.takensoft.common.message.MessageCode;
import com.takensoft.common.util.ResponseData;
import com.takensoft.common.util.ResponseUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.nio.charset.Charset;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author 방선주
* @since 2024.05.27
* @modification
* since | author | description
* 2024.05.27 | 방선주 | 최초 등록
*
* 게시판 댓글 관련 Controller
*/
@RestController
@RequiredArgsConstructor
@Slf4j
@RequestMapping(value="/sys/cmnt")
public class CmntController {
private final CmntService cmntService;
private final ResponseUtil resUtil;
/**
* @author 방선주
* @since 2024.05.27
* @param cmntVO
* @return
* @throws Exception
*
* 댓글 등록
*/
@PostMapping("/saveProc.json")
public ResponseEntity<?> saveProc(@RequestBody CmntVO cmntVO) throws Exception {
// 응답 처리
HttpHeaders headers = new HttpHeaders();
headers.setContentType(new MediaType("application", "json", Charset.forName("UTF-8")));
ResponseData responseData = new ResponseData();
// 댓글 등록
HashMap<String,Object> result = cmntService.saveCmnt(cmntVO);
int insertResult = (int) result.get("result");
if(insertResult > 0) {
return resUtil.successRes(result, MessageCode.COMMON_SUCCESS);
} else if (insertResult == -1) {
responseData.setStatus(HttpStatus.INTERNAL_SERVER_ERROR.value());
responseData.setStatusText(HttpStatus.INTERNAL_SERVER_ERROR);
responseData.setMessage("아래의 금지어가 포함되어 있습니다.\n* " + result.get("word"));
return new ResponseEntity<>(responseData, headers, HttpStatus.INTERNAL_SERVER_ERROR);
} else if (insertResult == -2){
responseData.setStatus(HttpStatus.INTERNAL_SERVER_ERROR.value());
responseData.setStatusText(HttpStatus.INTERNAL_SERVER_ERROR);
responseData.setMessage("로그인 후 이용 가능합니다.");
return new ResponseEntity<>(responseData, headers, HttpStatus.INTERNAL_SERVER_ERROR);
} else {
return resUtil.errorRes(MessageCode.COMMON_INSERT_FAIL);
}
}
/**
* @author 방선주
* @since 2024.05.27
* @param cmntVO
* @return
* @throws Exception
*
* 댓글 목록 조회
*/
@PostMapping("/findCmntList.json")
public ResponseEntity<?> findCmntList(@RequestBody CmntVO cmntVO) throws Exception {
// 댓글 목록 조회
List<CmntVO> cmntList = cmntService.findCmntList(cmntVO.getBbsId());
Map<String, Object> result = new HashMap<String, Object>();
result.put("cmntList", cmntList);
// 응답처리
return resUtil.successRes(result, MessageCode.COMMON_SUCCESS);
}
/**
* @author 방선주
* @since 2024.05.27
* @param cmntVO
* @return
* @throws Exception
*
* 댓글 수정
*/
@PostMapping("/updateProc.json")
public ResponseEntity<?> updateProc(@RequestBody CmntVO cmntVO) throws Exception {
// 응답 처리
HttpHeaders headers = new HttpHeaders();
headers.setContentType(new MediaType("application", "json", Charset.forName("UTF-8")));
ResponseData responseData = new ResponseData();
// 댓글 수정
HashMap<String, Object> result = cmntService.updateCmnt(cmntVO);
int updateResult = (int) result.get("result");
// 응답처리
if(updateResult > 0) {
return resUtil.successRes(result, MessageCode.COMMON_SUCCESS);
} else if (updateResult == -1){
responseData.setStatus(HttpStatus.INTERNAL_SERVER_ERROR.value());
responseData.setStatusText(HttpStatus.INTERNAL_SERVER_ERROR);
responseData.setMessage("아래의 금지어가 포함되어 있습니다.\n* " + result.get("word"));
return new ResponseEntity<>(responseData, headers, HttpStatus.INTERNAL_SERVER_ERROR);
} else {
return resUtil.errorRes(MessageCode.COMMON_UPDATE_FAIL);
}
}
/**
* @author 방선주
* @since 2024.05.27
* @param cmntVO
* @return
* @throws Exception
*
* 댓글 삭제
*/
@PostMapping("/deleteProc.json")
public ResponseEntity<?> deleteProc(@RequestBody CmntVO cmntVO) throws Exception {
// 댓글 삭제 처리 (댓글 삭제는 업데이트로 처리 useYn = 'N')
int result = cmntService.deleteCmnt(cmntVO);
// 응답처리
return resUtil.successRes(result, MessageCode.COMMON_SUCCESS);
}
}