게시판 쿼리수정
This commit is contained in:
parent
b64f203a93
commit
cef01c7c82
@ -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);
|
||||||
|
|||||||
@ -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>
|
||||||
|
|
||||||
<!-- 비밀 게시판 여부 확인 -->
|
<!-- 비밀 게시판 여부 확인 -->
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user