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 19603ab..e338029 100644 --- a/src/main/java/io/company/localhost/controller/api/BoardController.java +++ b/src/main/java/io/company/localhost/controller/api/BoardController.java @@ -109,20 +109,32 @@ public class BoardController { } // 게시물 상세보기 @GetMapping("/{boardId}") - public ApiResponse> getBoardDetail(@PathVariable("boardId") Long boardId) { + public ApiResponse getBoardDetail(@PathVariable("boardId") Long boardId) { log.info("Fetching details for board ID: {}", boardId); // 게시물 상세정보 조회 MapDto boardDetail = boardService.getBoardDetail(boardId); + if (boardDetail == null) { + throw new IllegalArgumentException("Board not found for ID: " + boardId); + } - // 첨부파일 목록 조회 + // Blob 데이터를 문자열로 변환 + if (boardDetail.get("content") instanceof Blob) { + try { + Blob blob = (Blob) boardDetail.get("content"); + String contentString = new String(blob.getBytes(1, (int) blob.length()), StandardCharsets.UTF_8); + boardDetail.put("content", contentString); + } catch (Exception e) { + throw new RuntimeException("Failed to process Blob content", e); + } + } + + // 첨부파일 및 댓글 조회 List attachments = boardService.getAttachments(boardId); - - // 댓글 목록 조회 List comments = boardService.getComments(boardId.intValue()); // 결과 조합 - Map result = new HashMap<>(); + MapDto result = new MapDto(); result.put("boardDetail", boardDetail); result.put("attachments", attachments); result.put("comments", comments); diff --git a/src/main/resources/mapper/LocalBordMapper.xml b/src/main/resources/mapper/LocalBordMapper.xml index 0088287..4d4a0c4 100644 --- a/src/main/resources/mapper/LocalBordMapper.xml +++ b/src/main/resources/mapper/LocalBordMapper.xml @@ -46,7 +46,7 @@ - SELECT LOCBRDSEQ AS id, LOCBRDTTL AS title, LOCBRDCON AS content, LOCBRDRDT AS date, LOCBRDTYP AS type FROM localbord WHERE LOCBRDSEQ = #{boardId} @@ -54,7 +54,7 @@ - SELECT CMNFLESEQ AS id, CMNFLEORG AS originalName, CMNFLENAM AS fileName, CMNFLEPAT AS path, CMNFLEEXT AS extension, CMNFLESIZ AS size, CMNFLERDT AS uploadDate FROM commonfil @@ -85,27 +85,27 @@ - INSERT INTO loccomt (LOCBRDSEQ, LOCCMTRPY, LOCCMTPWD, LOCCMTRDT, LOCCMTPNT) + INSERT INTO localcomt (LOCBRDSEQ, LOCCMTRPY, LOCCMTPWD, LOCCMTRDT, LOCCMTPNT) VALUES (#{LOCBRDSEQ}, #{LOCCMTRPY}, #{LOCCMTPWD}, NOW(), #{LOCCMTPNT}) - UPDATE loccomt + UPDATE localcomt SET LOCCMTRPY = #{LOCCMTRPY}, LOCCMTUDT = NOW() WHERE LOCCMTSEQ = #{LOCCMTSEQ} AND LOCCMTPWD = #{LOCCMTPWD} - DELETE FROM loccomt + DELETE FROM localcomt WHERE LOCCMTSEQ = #{LOCCMTSEQ} AND LOCCMTPWD = #{LOCCMTPWD} @@ -116,7 +116,7 @@