diff --git a/src/main/java/io/company/localhost/controller/api/BoardController.java b/src/main/java/io/company/localhost/controller/api/BoardController.java index 0b13f60..6be5861 100644 --- a/src/main/java/io/company/localhost/controller/api/BoardController.java +++ b/src/main/java/io/company/localhost/controller/api/BoardController.java @@ -68,14 +68,14 @@ public class BoardController { // 첨부파일 추가 @PostMapping("/{boardId}/attachments") public ApiResponse uploadAttachment( - @PathVariable("boardId") Long boardId, - @RequestParam("file") MultipartFile file, - @RequestParam("CMNFLEPAT") String filePath, - @RequestParam("CMNFLEORG") String originalFileName, - @RequestParam("CMNFLEEXT") String fileExtension, - @RequestParam("CMNFLESIZ") Long fileSize, - @RequestParam("CMNFLEREG") Long registrantId, - @RequestParam("CMNFLENAM") String fileName + @PathVariable("boardId") Long boardId, + @RequestParam(name = "file") MultipartFile file, + @RequestParam(name = "CMNFLEPAT") String filePath, + @RequestParam(name = "CMNFLEORG") String originalFileName, + @RequestParam(name = "CMNFLEEXT") String fileExtension, + @RequestParam(name = "CMNFLESIZ") Long fileSize, + @RequestParam(name = "CMNFLEREG") Long registrantId, + @RequestParam(name = "CMNFLENAM") String fileName ) { // 데이터 준비 MapDto fileData = new MapDto(); @@ -95,6 +95,30 @@ public class BoardController { return ApiResponse.ok("첨부파일이 저장되었습니다."); } + + // 게시물 상세보기 + @GetMapping("/{boardId}") + public ApiResponse> getBoardDetail(@PathVariable Long boardId) { + log.info("Fetching details for board ID: {}", boardId); + + // 게시물 상세정보 조회 + MapDto boardDetail = boardService.getBoardDetail(boardId); + + // 첨부파일 목록 조회 + List attachments = boardService.getAttachments(boardId); + + // 댓글 목록 조회 + List comments = boardService.getComments(boardId.intValue()); + + // 결과 조합 + Map result = new HashMap<>(); + result.put("boardDetail", boardDetail); + result.put("attachments", attachments); + result.put("comments", comments); + + return ApiResponse.ok(result); + } + // 게시물 삭제 @DeleteMapping("/{boardId}") diff --git a/src/main/java/io/company/localhost/mapper/LocalBordMapper.java b/src/main/java/io/company/localhost/mapper/LocalBordMapper.java index 4be4d47..b0943f3 100644 --- a/src/main/java/io/company/localhost/mapper/LocalBordMapper.java +++ b/src/main/java/io/company/localhost/mapper/LocalBordMapper.java @@ -51,5 +51,11 @@ public interface LocalBordMapper { // 비밀 게시판 여부 확인 boolean isSecretBoard(Long boardId); + + // 게시물 상세보기 + MapDto selectBoardDetail(Long boardId); + + // 첨부파일 가져오기 + List selectAttachments(Long boardId); } diff --git a/src/main/java/io/company/localhost/service/LocalBordService.java b/src/main/java/io/company/localhost/service/LocalBordService.java index 8e1ee8c..2aca545 100644 --- a/src/main/java/io/company/localhost/service/LocalBordService.java +++ b/src/main/java/io/company/localhost/service/LocalBordService.java @@ -32,6 +32,15 @@ public class LocalBordService { boardMapper.addAttachment(map); } + public MapDto getBoardDetail(Long boardId) { + return boardMapper.selectBoardDetail(boardId); + } + + public List getAttachments(Long boardId) { + return boardMapper.selectAttachments(boardId); + } + + public void deleteBoard(MapDto map) { boardMapper.deleteBoard(map); } diff --git a/src/main/resources/mapper/LocalBordMapper.xml b/src/main/resources/mapper/LocalBordMapper.xml index ca1cd6d..f6f3920 100644 --- a/src/main/resources/mapper/LocalBordMapper.xml +++ b/src/main/resources/mapper/LocalBordMapper.xml @@ -45,6 +45,24 @@ ) + + + + + + + +