게시판 쿼리수정

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}")
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);
// 게시물 상세정보 조회
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> comments = boardService.getComments(boardId.intValue());
// 결과 조합
Map<String, Object> result = new HashMap<>();
MapDto result = new MapDto();
result.put("boardDetail", boardDetail);
result.put("attachments", attachments);
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
FROM localbord
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,
CMNFLEEXT AS extension, CMNFLESIZ AS size, CMNFLERDT AS uploadDate
FROM commonfil
@ -85,27 +85,27 @@
<!-- 댓글/대댓글 조회 -->
<select id="getComments" resultType="java.util.Map">
SELECT LOCCMTSEQ, LOCBRDSEQ, LOCCMTRPY, LOCCMTPWD, LOCCMTRDT, LOCCMTPNT
FROM loccomt
FROM localcomt
WHERE LOCBRDSEQ = #{LOCBRDSEQ}
ORDER BY LOCCMTPNT ASC, LOCCMTRDT ASC
</select>
<!-- 댓글/대댓글 작성 -->
<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})
</insert>
<!-- 댓글/대댓글 수정 -->
<update id="updateComment">
UPDATE loccomt
UPDATE localcomt
SET LOCCMTRPY = #{LOCCMTRPY}, LOCCMTUDT = NOW()
WHERE LOCCMTSEQ = #{LOCCMTSEQ} AND LOCCMTPWD = #{LOCCMTPWD}
</update>
<!-- 댓글/대댓글 삭제 -->
<delete id="deleteComment">
DELETE FROM loccomt
DELETE FROM localcomt
WHERE LOCCMTSEQ = #{LOCCMTSEQ} AND LOCCMTPWD = #{LOCCMTPWD}
</delete>
@ -116,7 +116,7 @@
<!-- 비밀번호 확인 (댓글) -->
<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>
<!-- 비밀 게시판 여부 확인 -->