diff --git a/src/main/java/com/example/prdoit/controller/CommentController.java b/src/main/java/com/example/prdoit/controller/CommentController.java index 89bed6d..91e53b9 100644 --- a/src/main/java/com/example/prdoit/controller/CommentController.java +++ b/src/main/java/com/example/prdoit/controller/CommentController.java @@ -11,18 +11,19 @@ @RestController @RequiredArgsConstructor @RequestMapping("/api/comments") +@CrossOrigin(origins = "*", allowedHeaders = "*") public class CommentController { private final CommentService commentService; // 1. 댓글 조회 - @GetMapping("/{contentId}") + @GetMapping("/content/{contentId}") public ResponseEntity> getComments(@PathVariable String contentId) { return ResponseEntity.ok(commentService.getCommentList(contentId)); } // 2. 댓글 작성 - @PostMapping + @PostMapping() public ResponseEntity createComment(@RequestBody CommentRequestDto commentRequestDto) { commentService.postComment(commentRequestDto); return ResponseEntity.ok("댓글이 성공적으로 작성되었습니다!"); diff --git a/src/main/java/com/example/prdoit/controller/ContentController.java b/src/main/java/com/example/prdoit/controller/ContentController.java index 140fa45..53e0e0a 100644 --- a/src/main/java/com/example/prdoit/controller/ContentController.java +++ b/src/main/java/com/example/prdoit/controller/ContentController.java @@ -97,4 +97,18 @@ public ResponseEntity getTotalContent(@PathVariable String userId, } } + @PostMapping("/like/{contentId}") + public ResponseEntity likeContent(@PathVariable String contentId) { + try { + contentService.likeContent(contentId); + return ResponseEntity.ok("좋아요 성공"); + } catch (CustomException e) { + log.error("[likeContent] 좋아요 실패", e); + return ResponseEntity.badRequest().body(e.getMessage()); + } catch (Exception e) { + log.error("[likeContent] 좋아요 실패", e); + return ResponseEntity.internalServerError().body("좋아요에 실패했습니다."); + } + } + } diff --git a/src/main/java/com/example/prdoit/dto/notification/NotificationResponseDto.java b/src/main/java/com/example/prdoit/dto/notification/NotificationResponseDto.java index b41dbd9..d335d13 100644 --- a/src/main/java/com/example/prdoit/dto/notification/NotificationResponseDto.java +++ b/src/main/java/com/example/prdoit/dto/notification/NotificationResponseDto.java @@ -13,4 +13,6 @@ public class NotificationResponseDto { private String contentId; private String userId; private int isRead; + private int isContent; + private String contentTitle; } diff --git a/src/main/java/com/example/prdoit/model/NotificationTable.java b/src/main/java/com/example/prdoit/model/NotificationTable.java index eeeb6db..70bb10e 100644 --- a/src/main/java/com/example/prdoit/model/NotificationTable.java +++ b/src/main/java/com/example/prdoit/model/NotificationTable.java @@ -23,6 +23,10 @@ public class NotificationTable { private int isRead; + private int isContent; + + private String contentTitle; + @ManyToOne @JoinColumn(name = "userId") private IdTable userId; diff --git a/src/main/java/com/example/prdoit/service/comment/CommentServiceImpl.java b/src/main/java/com/example/prdoit/service/comment/CommentServiceImpl.java index 3f47a88..87f5b5e 100644 --- a/src/main/java/com/example/prdoit/service/comment/CommentServiceImpl.java +++ b/src/main/java/com/example/prdoit/service/comment/CommentServiceImpl.java @@ -73,6 +73,7 @@ public void postComment(CommentRequestDto commentRequestDto) { .contentId(contentTable.getContentId()) .userId(contentTable.getUserId()) .isRead(0) + .isContent(1) .build()); log.info("[postComment] 댓글 등록을 완료했습니다."); @@ -98,6 +99,7 @@ public void postCommentReply(CommentReplyRequestDto commentReplyRequestDto) { .contentId(parentComment.getContentId().getContentId()) .userId(idTableRepository.findByNickname(parentComment.getCommentNickname())) .isRead(0) + .isContent(1) .build()); log.info("[postCommentReply] 대댓글 등록을 완료했습니다."); diff --git a/src/main/java/com/example/prdoit/service/content/ContentService.java b/src/main/java/com/example/prdoit/service/content/ContentService.java index 02b60cc..380b0d1 100644 --- a/src/main/java/com/example/prdoit/service/content/ContentService.java +++ b/src/main/java/com/example/prdoit/service/content/ContentService.java @@ -20,4 +20,6 @@ public interface ContentService { TotalContentDto getTotalContent(String userId, int size, int page); + void likeContent(String contentId); + } diff --git a/src/main/java/com/example/prdoit/service/content/ContentServiceImpl.java b/src/main/java/com/example/prdoit/service/content/ContentServiceImpl.java index 409455f..df0f9aa 100644 --- a/src/main/java/com/example/prdoit/service/content/ContentServiceImpl.java +++ b/src/main/java/com/example/prdoit/service/content/ContentServiceImpl.java @@ -248,4 +248,18 @@ public TotalContentDto getTotalContent(String userId, int size, int page){ } } + @Override + public void likeContent(String contentId){ + log.info("[likeContent] 컨텐츠 좋아요 로직 시작"); + try { + ContentTable contentTable = contentRepository.findById(contentId).orElseThrow + (() -> new RuntimeException("존재하지 않는 컨텐츠입니다.")); + contentTable.setContentLike(contentTable.getContentLike() + 1); + contentRepository.save(contentTable); + } catch (Exception e) { + log.error(e.getMessage()); + throw new RuntimeException(e.getMessage()); + } + } + } diff --git a/src/main/java/com/example/prdoit/service/notification/NotificationServiceImpl.java b/src/main/java/com/example/prdoit/service/notification/NotificationServiceImpl.java index 5cc9920..f7131dd 100644 --- a/src/main/java/com/example/prdoit/service/notification/NotificationServiceImpl.java +++ b/src/main/java/com/example/prdoit/service/notification/NotificationServiceImpl.java @@ -31,6 +31,7 @@ public List getNotificationList(String userId) { .contentId(notificationTable.getContentId()) .userId(notificationTable.getUserId().getId()) .isRead(notificationTable.getIsRead()) + .isContent(notificationTable.getIsContent()) .build()).toList(); for(NotificationTable notificationTable : idTable.getNotificationTable()) { notificationTable.setIsRead(1);