게시판 상세추가

This commit is contained in:
dyhj625 2025-01-13 13:57:35 +09:00
parent d5f9e7242f
commit 5a1e5a1f33
4 changed files with 65 additions and 8 deletions

View File

@ -68,14 +68,14 @@ public class BoardController {
// 첨부파일 추가
@PostMapping("/{boardId}/attachments")
public ApiResponse<String> 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();
@ -96,6 +96,30 @@ public class BoardController {
return ApiResponse.ok("첨부파일이 저장되었습니다.");
}
// 게시물 상세보기
@GetMapping("/{boardId}")
public ApiResponse<Map<String, Object>> getBoardDetail(@PathVariable Long boardId) {
log.info("Fetching details for board ID: {}", boardId);
// 게시물 상세정보 조회
MapDto boardDetail = boardService.getBoardDetail(boardId);
// 첨부파일 목록 조회
List<MapDto> attachments = boardService.getAttachments(boardId);
// 댓글 목록 조회
List<MapDto> comments = boardService.getComments(boardId.intValue());
// 결과 조합
Map<String, Object> result = new HashMap<>();
result.put("boardDetail", boardDetail);
result.put("attachments", attachments);
result.put("comments", comments);
return ApiResponse.ok(result);
}
// 게시물 삭제
@DeleteMapping("/{boardId}")
public ApiResponse<String> deleteBoard(@PathVariable Long boardId, @ReqMap MapDto map) {

View File

@ -51,5 +51,11 @@ public interface LocalBordMapper {
// 비밀 게시판 여부 확인
boolean isSecretBoard(Long boardId);
// 게시물 상세보기
MapDto selectBoardDetail(Long boardId);
// 첨부파일 가져오기
List<MapDto> selectAttachments(Long boardId);
}

View File

@ -32,6 +32,15 @@ public class LocalBordService {
boardMapper.addAttachment(map);
}
public MapDto getBoardDetail(Long boardId) {
return boardMapper.selectBoardDetail(boardId);
}
public List<MapDto> getAttachments(Long boardId) {
return boardMapper.selectAttachments(boardId);
}
public void deleteBoard(MapDto map) {
boardMapper.deleteBoard(map);
}

View File

@ -46,6 +46,24 @@
</insert>
<!-- 게시물 상세정보 조회 -->
<select id="selectBoardDetail" parameterType="long" resultType="map">
SELECT LOCBRDSEQ AS id, LOCBRDTTL AS title, LOCBRDCON AS content, LOCBRDRDT AS date, LOCBRDTYP AS type
FROM localbord
WHERE LOCBRDSEQ = #{boardId}
</select>
<!-- 첨부파일 목록 조회 -->
<select id="selectAttachments" parameterType="long" resultType="map">
SELECT CMNFLESEQ AS id, CMNFLEORG AS originalName, CMNFLENAM AS fileName, CMNFLEPAT AS path,
CMNFLEEXT AS extension, CMNFLESIZ AS size, CMNFLERDT AS uploadDate
FROM commonfil
WHERE CMNBRDSEQ = #{boardId}
ORDER BY CMNFLERDT DESC
</select>
<!-- 게시물 삭제 -->
<delete id="deleteBoard">
DELETE FROM localbord WHERE LOCBRDSEQ = #{LOCBRDSEQ}