게시판 쿼리수정

This commit is contained in:
dyhj625 2025-01-14 10:05:26 +09:00
parent b64f203a93
commit cef01c7c82
2 changed files with 24 additions and 12 deletions

View File

@ -109,20 +109,32 @@ public class BoardController {
} }
// 게시물 상세보기 // 게시물 상세보기
@GetMapping("/{boardId}") @GetMapping("/{boardId}")
public ApiResponse<Map<String, Object>> getBoardDetail(@PathVariable("boardId") Long boardId) { public ApiResponse<MapDto> getBoardDetail(@PathVariable("boardId") Long boardId) {
log.info("Fetching details for board ID: {}", boardId); log.info("Fetching details for board ID: {}", boardId);
// 게시물 상세정보 조회 // 게시물 상세정보 조회
MapDto boardDetail = boardService.getBoardDetail(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<MapDto> attachments = boardService.getAttachments(boardId); List<MapDto> attachments = boardService.getAttachments(boardId);
// 댓글 목록 조회
List<MapDto> comments = boardService.getComments(boardId.intValue()); List<MapDto> comments = boardService.getComments(boardId.intValue());
// 결과 조합 // 결과 조합
Map<String, Object> result = new HashMap<>(); MapDto result = new MapDto();
result.put("boardDetail", boardDetail); result.put("boardDetail", boardDetail);
result.put("attachments", attachments); result.put("attachments", attachments);
result.put("comments", comments); result.put("comments", comments);

View File

@ -46,7 +46,7 @@
<!-- 게시물 상세정보 조회 --> <!-- 게시물 상세정보 조회 -->
<select id="selectBoardDetail" parameterType="long" resultType="map"> <select id="selectBoardDetail" resultType="io.company.localhost.common.dto.MapDto">
SELECT LOCBRDSEQ AS id, LOCBRDTTL AS title, LOCBRDCON AS content, LOCBRDRDT AS date, LOCBRDTYP AS type SELECT LOCBRDSEQ AS id, LOCBRDTTL AS title, LOCBRDCON AS content, LOCBRDRDT AS date, LOCBRDTYP AS type
FROM localbord FROM localbord
WHERE LOCBRDSEQ = #{boardId} WHERE LOCBRDSEQ = #{boardId}
@ -54,7 +54,7 @@
<!-- 첨부파일 목록 조회 --> <!-- 첨부파일 목록 조회 -->
<select id="selectAttachments" parameterType="long" resultType="map"> <select id="selectAttachments" resultType="io.company.localhost.common.dto.MapDto">
SELECT CMNFLESEQ AS id, CMNFLEORG AS originalName, CMNFLENAM AS fileName, CMNFLEPAT AS path, SELECT CMNFLESEQ AS id, CMNFLEORG AS originalName, CMNFLENAM AS fileName, CMNFLEPAT AS path,
CMNFLEEXT AS extension, CMNFLESIZ AS size, CMNFLERDT AS uploadDate CMNFLEEXT AS extension, CMNFLESIZ AS size, CMNFLERDT AS uploadDate
FROM commonfil FROM commonfil
@ -85,27 +85,27 @@
<!-- 댓글/대댓글 조회 --> <!-- 댓글/대댓글 조회 -->
<select id="getComments" resultType="java.util.Map"> <select id="getComments" resultType="java.util.Map">
SELECT LOCCMTSEQ, LOCBRDSEQ, LOCCMTRPY, LOCCMTPWD, LOCCMTRDT, LOCCMTPNT SELECT LOCCMTSEQ, LOCBRDSEQ, LOCCMTRPY, LOCCMTPWD, LOCCMTRDT, LOCCMTPNT
FROM loccomt FROM localcomt
WHERE LOCBRDSEQ = #{LOCBRDSEQ} WHERE LOCBRDSEQ = #{LOCBRDSEQ}
ORDER BY LOCCMTPNT ASC, LOCCMTRDT ASC ORDER BY LOCCMTPNT ASC, LOCCMTRDT ASC
</select> </select>
<!-- 댓글/대댓글 작성 --> <!-- 댓글/대댓글 작성 -->
<insert id="addCommentOrReply"> <insert id="addCommentOrReply">
INSERT INTO loccomt (LOCBRDSEQ, LOCCMTRPY, LOCCMTPWD, LOCCMTRDT, LOCCMTPNT) INSERT INTO localcomt (LOCBRDSEQ, LOCCMTRPY, LOCCMTPWD, LOCCMTRDT, LOCCMTPNT)
VALUES (#{LOCBRDSEQ}, #{LOCCMTRPY}, #{LOCCMTPWD}, NOW(), #{LOCCMTPNT}) VALUES (#{LOCBRDSEQ}, #{LOCCMTRPY}, #{LOCCMTPWD}, NOW(), #{LOCCMTPNT})
</insert> </insert>
<!-- 댓글/대댓글 수정 --> <!-- 댓글/대댓글 수정 -->
<update id="updateComment"> <update id="updateComment">
UPDATE loccomt UPDATE localcomt
SET LOCCMTRPY = #{LOCCMTRPY}, LOCCMTUDT = NOW() SET LOCCMTRPY = #{LOCCMTRPY}, LOCCMTUDT = NOW()
WHERE LOCCMTSEQ = #{LOCCMTSEQ} AND LOCCMTPWD = #{LOCCMTPWD} WHERE LOCCMTSEQ = #{LOCCMTSEQ} AND LOCCMTPWD = #{LOCCMTPWD}
</update> </update>
<!-- 댓글/대댓글 삭제 --> <!-- 댓글/대댓글 삭제 -->
<delete id="deleteComment"> <delete id="deleteComment">
DELETE FROM loccomt DELETE FROM localcomt
WHERE LOCCMTSEQ = #{LOCCMTSEQ} AND LOCCMTPWD = #{LOCCMTPWD} WHERE LOCCMTSEQ = #{LOCCMTSEQ} AND LOCCMTPWD = #{LOCCMTPWD}
</delete> </delete>
@ -116,7 +116,7 @@
<!-- 비밀번호 확인 (댓글) --> <!-- 비밀번호 확인 (댓글) -->
<select id="checkCommentPassword" resultType="boolean"> <select id="checkCommentPassword" resultType="boolean">
SELECT COUNT(*) > 0 FROM loccomt WHERE LOCCMTSEQ = #{LOCCMTSEQ} AND LOCCMTPWD = #{LOCCMTPWD} SELECT COUNT(*) > 0 FROM localcomt WHERE LOCCMTSEQ = #{LOCCMTSEQ} AND LOCCMTPWD = #{LOCCMTPWD}
</select> </select>
<!-- 비밀 게시판 여부 확인 --> <!-- 비밀 게시판 여부 확인 -->