This commit is contained in:
khj0414 2025-01-09 15:00:19 +09:00
commit a51fb2ad3a
4 changed files with 40 additions and 36 deletions

View File

@ -14,8 +14,10 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import io.company.localhost.common.annotation.ReqMap;
import io.company.localhost.common.dto.ApiResponse; import io.company.localhost.common.dto.ApiResponse;
import io.company.localhost.service.BoardService; import io.company.localhost.common.dto.MapDto;
import io.company.localhost.service.LocalBordService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -24,7 +26,7 @@ import lombok.extern.slf4j.Slf4j;
@RequiredArgsConstructor @RequiredArgsConstructor
@Slf4j @Slf4j
public class BoardController { public class BoardController {
private final BoardService boardService; private final LocalBordService boardService;
//공지사항 //공지사항
@GetMapping("/notices") @GetMapping("/notices")
@ -34,41 +36,43 @@ public class BoardController {
//비밀,자유게시판 //비밀,자유게시판
@GetMapping("/general") @GetMapping("/general")
public ApiResponse<List<Map<String, Object>>> getGeneralPosts() { public ApiResponse<List<Map<String, Object>>> getGeneralPosts() {
return ApiResponse.ok(boardService.getGeneralPosts()); List<Map<String, Object>> posts = boardService.getGeneralPosts();
System.out.println(posts);
return ApiResponse.ok(posts);
} }
//게시물 작성 //게시물 작성
@PostMapping @PostMapping
public ApiResponse<String> createBoard(@RequestBody Map<String, Object> params) { public ApiResponse<String> createBoard(@ReqMap MapDto map) {
boardService.createBoard(params); boardService.createBoard(map);
return ApiResponse.ok("게시물이 작성되었습니다."); return ApiResponse.ok("게시물이 작성되었습니다.");
} }
// 첨부파일 추가 // 첨부파일 추가
@PostMapping("/{boardId}/attachments") @PostMapping("/{boardId}/attachments")
public ApiResponse<String> uploadAttachment(@PathVariable Long boardId, @RequestBody Map<String, Object> params) { public ApiResponse<String> uploadAttachment(@PathVariable Long boardId, @ReqMap MapDto map) {
params.put("LOCBRDSEQ", boardId); map.put("LOCBRDSEQ", boardId);
log.info("Uploading attachment for board ID: {}", boardId); log.info("Uploading attachment for board ID: {}", boardId);
boardService.addAttachment(params); boardService.addAttachment(map);
return ApiResponse.ok("첨부파일이 저장되었습니다."); return ApiResponse.ok("첨부파일이 저장되었습니다.");
} }
// 게시물 삭제 // 게시물 삭제
@DeleteMapping("/{boardId}") @DeleteMapping("/{boardId}")
public ApiResponse<String> deleteBoard(@PathVariable Long boardId, @RequestBody Map<String, Object> params) { public ApiResponse<String> deleteBoard(@PathVariable Long boardId, @ReqMap MapDto map) {
params.put("LOCBRDSEQ", boardId); map.put("LOCBRDSEQ", boardId);
log.info("Deleting board with ID: {}", boardId); log.info("Deleting board with ID: {}", boardId);
boardService.deleteBoard(params); boardService.deleteBoard(map);
return ApiResponse.ok("게시물이 삭제되었습니다."); return ApiResponse.ok("게시물이 삭제되었습니다.");
} }
//게시물 수정 //게시물 수정
@PutMapping @PutMapping
public ApiResponse<String> updateBoard(@RequestBody Map<String, Object> params) { public ApiResponse<String> updateBoard(@ReqMap MapDto map) {
boardService.updateBoard(params); boardService.updateBoard(map);
return ApiResponse.ok("게시물이 수정되었습니다."); return ApiResponse.ok("게시물이 수정되었습니다.");
} }
//게시물과 댓글에 좋아요/싫어요 추가 //게시물과 댓글에 좋아요/싫어요 추가
@PostMapping("/{boardId}/reaction") @PostMapping("/{boardId}/reaction")
public ApiResponse<String> reactToBoard(@PathVariable Long boardId, @RequestBody Map<String, Object> params) { public ApiResponse<String> reactToBoard(@PathVariable Long boardId, @ReqMap MapDto map) {
params.put("LOCBRDSEQ", boardId); map.put("LOCBRDSEQ", boardId);
boardService.reactToBoard(params); boardService.reactToBoard(map);
return ApiResponse.ok("반응이 추가되었습니다."); return ApiResponse.ok("반응이 추가되었습니다.");
} }
//댓글/대댓글 조회 //댓글/대댓글 조회
@ -78,36 +82,36 @@ public class BoardController {
} }
//댓글/대댓글 작성 //댓글/대댓글 작성
@PostMapping("/{boardId}/comment") @PostMapping("/{boardId}/comment")
public ApiResponse<String> addCommentOrReply(@PathVariable int boardId, @RequestBody Map<String, Object> params) { public ApiResponse<String> addCommentOrReply(@PathVariable int boardId, @ReqMap MapDto map) {
params.put("LOCBRDSEQ", boardId); map.put("LOCBRDSEQ", boardId);
boardService.addCommentOrReply(params); boardService.addCommentOrReply(map);
return ApiResponse.ok("댓글 또는 대댓글이 작성되었습니다."); return ApiResponse.ok("댓글 또는 대댓글이 작성되었습니다.");
} }
//댓글/대댓글 수정 //댓글/대댓글 수정
@PutMapping("/comment/{commentId}") @PutMapping("/comment/{commentId}")
public ApiResponse<String> updateComment(@PathVariable int commentId, @RequestBody Map<String, Object> params) { public ApiResponse<String> updateComment(@PathVariable int commentId, @ReqMap MapDto map) {
params.put("LOCCMTSEQ", commentId); map.put("LOCCMTSEQ", commentId);
boardService.updateComment(params); boardService.updateComment(map);
return ApiResponse.ok("댓글이 수정되었습니다."); return ApiResponse.ok("댓글이 수정되었습니다.");
} }
//댓글/대댓글 삭제 //댓글/대댓글 삭제
@DeleteMapping("/comment/{commentId}") @DeleteMapping("/comment/{commentId}")
public ApiResponse<String> deleteComment(@PathVariable int commentId, @RequestBody Map<String, Object> params) { public ApiResponse<String> deleteComment(@PathVariable int commentId, @ReqMap MapDto map) {
params.put("LOCCMTSEQ", commentId); map.put("LOCCMTSEQ", commentId);
boardService.deleteComment(params); boardService.deleteComment(map);
return ApiResponse.ok("댓글이 삭제되었습니다."); return ApiResponse.ok("댓글이 삭제되었습니다.");
} }
//비밀번호 확인 (게시물) //비밀번호 확인 (게시물)
@PostMapping("/comment/{commentId}/password") @PostMapping("/comment/{commentId}/password")
public ApiResponse<Boolean> checkCommentPassword(@PathVariable int commentId, @RequestBody Map<String, Object> params) { public ApiResponse<Boolean> checkCommentPassword(@PathVariable int commentId, @ReqMap MapDto map) {
params.put("LOCCMTSEQ", commentId); map.put("LOCCMTSEQ", commentId);
return ApiResponse.ok(boardService.checkCommentPassword(params)); return ApiResponse.ok(boardService.checkCommentPassword(map));
} }
//비밀번호 확인 (댓글) //비밀번호 확인 (댓글)
@PostMapping("/{boardId}/password") @PostMapping("/{boardId}/password")
public ApiResponse<Boolean> checkBoardPassword(@PathVariable int boardId, @RequestBody Map<String, Object> params) { public ApiResponse<Boolean> checkBoardPassword(@PathVariable int boardId, @ReqMap MapDto map) {
params.put("LOCBRDSEQ", boardId); map.put("LOCBRDSEQ", boardId);
return ApiResponse.ok(boardService.checkBoardPassword(params)); return ApiResponse.ok(boardService.checkBoardPassword(map));
} }
// 비밀게시판 여부 확인 // 비밀게시판 여부 확인
@GetMapping("/{boardId}/isSecret") @GetMapping("/{boardId}/isSecret")

View File

@ -7,7 +7,7 @@ import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@Mapper @Mapper
public interface BoardMapper { public interface LocalBordMapper {
// 공지사항 조회 // 공지사항 조회
List<Map<String, Object>> getNotices(); List<Map<String, Object>> getNotices();

View File

@ -5,13 +5,13 @@ import java.util.Map;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import io.company.localhost.mapper.BoardMapper; import io.company.localhost.mapper.LocalBordMapper;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@Service @Service
@RequiredArgsConstructor @RequiredArgsConstructor
public class BoardService { public class LocalBordService {
private final BoardMapper boardMapper; private final LocalBordMapper boardMapper;
public List<Map<String, Object>> getNotices() { public List<Map<String, Object>> getNotices() {
return boardMapper.getNotices(); return boardMapper.getNotices();

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="io.company.localhost.mapper.BoardMapper"> <mapper namespace="io.company.localhost.mapper.localBordMapper">
<!-- 공지사항 조회 --> <!-- 공지사항 조회 -->
<select id="getNotices" resultType="java.util.Map"> <select id="getNotices" resultType="java.util.Map">