From 67551b54b017c2888e3dad250f07a4feabbb4956 Mon Sep 17 00:00:00 2001 From: dyhj625 Date: Mon, 20 Jan 2025 14:07:44 +0900 Subject: [PATCH] =?UTF-8?q?=EC=93=B8=EB=8D=B0=EC=97=86=EB=8A=94=EA=B1=B0?= =?UTF-8?q?=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/api/BoardController.java | 50 +++++++++++-------- .../localhost/mapper/localbordMapper.java | 3 -- .../localhost/service/localbordService.java | 4 -- 3 files changed, 30 insertions(+), 27 deletions(-) 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 0384760..1cc4f87 100644 --- a/src/main/java/io/company/localhost/controller/api/BoardController.java +++ b/src/main/java/io/company/localhost/controller/api/BoardController.java @@ -18,29 +18,22 @@ package io.company.localhost.controller.api; import java.math.BigInteger; import java.nio.charset.StandardCharsets; import java.sql.Blob; -import java.util.ArrayList; -import java.util.Date; import java.util.HashMap; -import java.util.LinkedHashMap; import java.util.List; import java.util.Map; - -import org.springframework.http.ResponseEntity; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.multipart.MultipartFile; import com.github.pagehelper.PageInfo; -import com.github.pagehelper.PageSerializable; +import io.company.localhost.common.annotation.Member; +import io.company.localhost.common.annotation.ParameterCheck; import io.company.localhost.common.annotation.ReqMap; import io.company.localhost.common.dto.ApiResponse; import io.company.localhost.common.dto.MapDto; @@ -61,6 +54,8 @@ public class BoardController { * @ReqMap map 요청 파라미터 (searchKeyword) * @return 전체 공지사항 목록 */ + @Member + @ParameterCheck @GetMapping("/notices") public ApiResponse> getNotices(@ReqMap MapDto map) { List posts = boardService.getNotices(map); @@ -88,6 +83,8 @@ public class BoardController { * @ReqMap map 요청 파라미터 (page, searchKeyword) * @return 페이징된 자유/익명 게시판 목록 */ + @Member + @ParameterCheck @GetMapping("/general") public ApiResponse> getGeneralPosts(@ReqMap MapDto map) { PageInfo posts = boardService.getGeneralPosts(map); @@ -147,6 +144,8 @@ public class BoardController { * LOCBRDPWD(익명일떄에만), LOCBRDCAT(지식커뮤니티만)) * @return 작성된 게시물의 ID */ + @Member + @ParameterCheck @PostMapping public ApiResponse createBoard(@ReqMap MapDto map) { // 비밀번호 암호화 (익명 게시판 등 비밀번호가 필요한 경우) @@ -168,6 +167,8 @@ public class BoardController { * @ReqMap map 요청 파라미터 (CMNFLEREG, CMNFLESIZ, CMNFLEEXT, CMNFLEORG, CMNFLENAM, CMNFLEPAT, CMNBRDSEQ) * @return 첨부파일 저장 결과 메시지 */ + @Member + @ParameterCheck @PostMapping("/{CMNBRDSEQ}/attachments") public ApiResponse uploadAttachment(@ReqMap MapDto map) { // 파일 데이터 저장 @@ -181,6 +182,8 @@ public class BoardController { * @param boardId 게시물 ID * @return 게시물 상세정보, 첨부파일 목록, 댓글 목록 */ + @Member + @ParameterCheck @GetMapping("/{boardId}") public ApiResponse getBoardDetail(@PathVariable("boardId") Long boardId) { log.info("Fetching details for board ID: {}", boardId); @@ -236,6 +239,8 @@ public class BoardController { * @param boardId 게시물 ID * @return 삭제 결과 메시지 */ + @Member + @ParameterCheck @DeleteMapping("/{boardId}") public ApiResponse deleteBoard(@PathVariable("boardId") Long boardId, @ReqMap MapDto map) { map.put("LOCBRDSEQ", boardId); @@ -250,6 +255,8 @@ public class BoardController { * @ReqMap map 수정 데이터 (LOCBRDTTL, LOCBRDCON) * @return 수정 결과 메시지 */ + @Member + @ParameterCheck @PutMapping("/{boardId}") public ApiResponse updateBoard(@PathVariable("boardId") Long boardId,@ReqMap MapDto map) { map.put("LOCBRDSEQ", boardId); @@ -262,6 +269,8 @@ public class BoardController { * @ReqMap map 데이터 (LOCCMTSEQ, MEMBERSEQ, LOCGOBGOD, LOCGOBBAD, LOCBRDSEQ) * @return 반응 추가 결과 메시지 */ + @Member + @ParameterCheck @PostMapping("/{LOCBRDSEQ}/{LOCCMTSEQ}/reaction") public ApiResponse reactToBoard(@ReqMap MapDto map) { boardService.reactToBoard(map); @@ -274,6 +283,8 @@ public class BoardController { * @param boardId 게시물 ID * @return 댓글과 대댓글의 계층 구조 데이터 */ + @Member + @ParameterCheck @GetMapping("/{boardId}/comments") public ApiResponse> getComments(@PathVariable("boardId") int boardId) { // 모든 댓글과 대댓글 조회 @@ -289,6 +300,8 @@ public class BoardController { * @ReqMap map 댓글 데이터 (LOCBRDSEQ, LOCCMTRPY, LOCCMTPNT, LOCCMTPWD, MEMBERSEQ 등) * @return 작성 결과 메시지 */ + @Member + @ParameterCheck @PostMapping("/{LOCBRDSEQ}/comment") public ApiResponse addCommentOrReply(@ReqMap MapDto map) { // 비밀번호 암호화 (비밀번호가 있는 경우에만) @@ -308,6 +321,8 @@ public class BoardController { * @ReqMap map 수정 데이터 (LOCCMTSEQ, LOCCMTRPY ) * @return 수정 결과 메시지 */ + @Member + @ParameterCheck @PutMapping("/comment/{commentId}") public ApiResponse updateComment(@PathVariable("commentId") int commentId, @ReqMap MapDto map) { // 기존 댓글 조회 @@ -327,6 +342,8 @@ public class BoardController { * @param commentId 댓글 ID * @return 삭제 결과 메시지 */ + @Member + @ParameterCheck @DeleteMapping("/comment/{commentId}") public ApiResponse deleteComment(@PathVariable("commentId") int commentId, @ReqMap MapDto map) { map.put("LOCCMTSEQ", commentId); @@ -341,6 +358,8 @@ public class BoardController { * @ReqMap map 비밀번호 데이터 * @return 비밀번호 확인 결과 */ + @Member + @ParameterCheck @PostMapping("/comment/{commentId}/password") public ApiResponse checkCommentPassword(@PathVariable("commentId") int commentId, @ReqMap MapDto map) { // DB에서 암호화된 비밀번호 조회 @@ -358,6 +377,8 @@ public class BoardController { * @ReqMap map 비밀번호 데이터 * @return 비밀번호 확인 결과 */ + @Member + @ParameterCheck @PostMapping("/{boardId}/password") public ApiResponse checkBoardPassword(@PathVariable("boardId") int boardId, @ReqMap MapDto map) { // DB에서 암호화된 비밀번호 조회 @@ -368,16 +389,5 @@ public class BoardController { boolean isMatch = passwordEncoder.matches(rawPassword, storedPassword); return ApiResponse.ok(isMatch); } - -// /** -// * 비밀게시판 여부 확인 -// * @param boardId 게시물 ID -// * @return 비밀게시판 여부 -// */ -// @GetMapping("/{boardId}/isSecret") -// public ApiResponse isSecretBoard(@PathVariable("boardId") Long boardId) { -// log.info("Checking if board ID {} is secret", boardId); -// return ApiResponse.ok(boardService.isSecretBoard(boardId)); -// } } diff --git a/src/main/java/io/company/localhost/mapper/localbordMapper.java b/src/main/java/io/company/localhost/mapper/localbordMapper.java index e9291ab..ac4a2d1 100644 --- a/src/main/java/io/company/localhost/mapper/localbordMapper.java +++ b/src/main/java/io/company/localhost/mapper/localbordMapper.java @@ -69,9 +69,6 @@ public interface localbordMapper { // 댓글 비밀번호 조회 String selectBoardPassword(int boardId); - - // 비밀 게시판 여부 확인 - boolean isSecretBoard(Long boardId); // 게시물 상세보기 MapDto selectBoardDetail(Long boardId); diff --git a/src/main/java/io/company/localhost/service/localbordService.java b/src/main/java/io/company/localhost/service/localbordService.java index f3a405f..01bdcc7 100644 --- a/src/main/java/io/company/localhost/service/localbordService.java +++ b/src/main/java/io/company/localhost/service/localbordService.java @@ -119,10 +119,6 @@ public class localbordService { public String getBoardPassword(int boardId) { return boardMapper.selectBoardPassword(boardId); } - - public boolean isSecretBoard(Long boardId) { - return boardMapper.isSecretBoard(boardId); - } public MapDto getCommentById(int commentId) { return boardMapper.getCommentById(commentId);