
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.util.ResponseData;
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
*
* 게시판 댓글 관련 Controller
*/
@RestController
@RequiredArgsConstructor
@Slf4j
@RequestMapping(value="/sys/cmnt")
public class CmntController {
private final CmntService cmntService;
/**
* @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) {
responseData.setStatus(HttpStatus.OK);
responseData.setMessage("정상적으로 등록 처리되었습니다.");
responseData.setData(result);
return new ResponseEntity<>(responseData, headers, HttpStatus.OK);
} else if (insertResult == -1) {
responseData.setStatus(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);
responseData.setMessage("로그인 후 이용 가능합니다.");
return new ResponseEntity<>(responseData, headers, HttpStatus.INTERNAL_SERVER_ERROR);
} else {
responseData.setStatus(HttpStatus.INTERNAL_SERVER_ERROR);
responseData.setMessage("등록에 실패하였습니다.\n담당자에게 문의하세요.");
return new ResponseEntity<>(responseData, headers, HttpStatus.INTERNAL_SERVER_ERROR);
}
}
/**
* @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);
// 응답처리
HttpHeaders headers = new HttpHeaders();
headers.setContentType(new MediaType("application", "json", Charset.forName("UTF-8")));
ResponseData responseData = new ResponseData();
responseData.setStatus(HttpStatus.OK);
responseData.setMessage("정상적으로 조회가 처리되었습니다.");
responseData.setData(result);
return new ResponseEntity<>(responseData, headers, HttpStatus.OK);
}
/**
* @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) {
responseData.setStatus(HttpStatus.OK);
responseData.setMessage("정상적으로 수정 처리되었습니다.");
responseData.setData(result);
return new ResponseEntity<>(responseData, headers, HttpStatus.OK);
} else if (updateResult == -1){
responseData.setStatus(HttpStatus.INTERNAL_SERVER_ERROR);
responseData.setMessage("아래의 금지어가 포함되어 있습니다.\n* " + result.get("word"));
return new ResponseEntity<>(responseData, headers, HttpStatus.INTERNAL_SERVER_ERROR);
} else {
responseData.setStatus(HttpStatus.INTERNAL_SERVER_ERROR);
responseData.setMessage("등록에 실패하였습니다.\n담당자에게 문의하세요.");
return new ResponseEntity<>(responseData, headers, HttpStatus.INTERNAL_SERVER_ERROR);
}
}
/**
* @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);
// 응답처리
HttpHeaders headers = new HttpHeaders();
headers.setContentType(new MediaType("application", "json", Charset.forName("UTF-8")));
ResponseData responseData = new ResponseData();
responseData.setStatus(HttpStatus.OK);
responseData.setMessage("정상적으로 삭제가 처리되었습니다.");
responseData.setData(result);
return new ResponseEntity<>(responseData, headers, HttpStatus.OK);
}
}