From 9f96ea7e7e3a1bc006431d81cc17d935d4680fd7 Mon Sep 17 00:00:00 2001 From: jae-2024 Date: Mon, 9 Mar 2026 10:15:19 +0900 Subject: [PATCH] =?UTF-8?q?[#61]=20Refactor:=20commentSystem=EC=9D=84=20co?= =?UTF-8?q?mmentEvent=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/comment/entity/Comment.java | 9 ++++--- .../domain/comment/entity/CommentType.java | 5 +++- .../comment/service/CommentService.java | 20 +++++++++++--- .../service/ParticipationService.java | 26 ++++++++++++++++++- 4 files changed, 50 insertions(+), 10 deletions(-) diff --git a/src/main/java/Mua/Mua_backend/domain/comment/entity/Comment.java b/src/main/java/Mua/Mua_backend/domain/comment/entity/Comment.java index 3980215..c050580 100644 --- a/src/main/java/Mua/Mua_backend/domain/comment/entity/Comment.java +++ b/src/main/java/Mua/Mua_backend/domain/comment/entity/Comment.java @@ -92,17 +92,18 @@ public static Comment createUserComment( .build(); } - // SYSTEM 댓글 생성 - public static Comment createSystemComment( + // SYSTEMEVENT 댓글 생성 + public static Comment createEventComment( String description, Feed feed, - Long participationId + Long participationId, + CommentType type ) { return Comment.builder() .description(description) .parentId(null) .depth(0) - .commentType(CommentType.SYSTEM) + .commentType(type) .member(null) .feed(feed) .participationId(participationId) diff --git a/src/main/java/Mua/Mua_backend/domain/comment/entity/CommentType.java b/src/main/java/Mua/Mua_backend/domain/comment/entity/CommentType.java index 449e430..d45b9a1 100644 --- a/src/main/java/Mua/Mua_backend/domain/comment/entity/CommentType.java +++ b/src/main/java/Mua/Mua_backend/domain/comment/entity/CommentType.java @@ -2,5 +2,8 @@ public enum CommentType { USER, - SYSTEM + APPLY, + APPROVE, + REJECT, + CANCEL } \ No newline at end of file diff --git a/src/main/java/Mua/Mua_backend/domain/comment/service/CommentService.java b/src/main/java/Mua/Mua_backend/domain/comment/service/CommentService.java index a3c301b..77e380c 100644 --- a/src/main/java/Mua/Mua_backend/domain/comment/service/CommentService.java +++ b/src/main/java/Mua/Mua_backend/domain/comment/service/CommentService.java @@ -84,11 +84,23 @@ public List getComments(Long feedId) { } // 시스템 댓글 생성 - public void createSystemComment(Long feedId, String message, Long participationId) { + public void createEventComment( + Long feedId, + Long participationId, + String message, + CommentType type + ) { + Feed feed = feedRepository.findById(feedId) .orElseThrow(() -> new IllegalArgumentException("피드가 존재하지 않습니다.")); - Comment comment = Comment.createSystemComment(message, feed, participationId); + Comment comment = Comment.createEventComment( + message, + feed, + participationId, + type + ); + commentRepository.save(comment); } @@ -97,8 +109,8 @@ public void deleteComment(Long commentId, Long memberId) { Comment comment = commentRepository.findById(commentId) .orElseThrow(() -> new IllegalArgumentException("댓글이 존재하지 않습니다.")); - if (comment.getCommentType() == CommentType.SYSTEM) { - throw new IllegalArgumentException("SYSTEM 댓글은 삭제할 수 없습니다."); + if (comment.getCommentType() != CommentType.USER) { + throw new IllegalArgumentException("이벤트 댓글은 삭제할 수 없습니다."); } if (!comment.getMember().getId().equals(memberId)) { diff --git a/src/main/java/Mua/Mua_backend/domain/participation/service/ParticipationService.java b/src/main/java/Mua/Mua_backend/domain/participation/service/ParticipationService.java index 4682e8a..3371486 100644 --- a/src/main/java/Mua/Mua_backend/domain/participation/service/ParticipationService.java +++ b/src/main/java/Mua/Mua_backend/domain/participation/service/ParticipationService.java @@ -1,5 +1,6 @@ package Mua.Mua_backend.domain.participation.service; +import Mua.Mua_backend.domain.comment.entity.CommentType; import Mua.Mua_backend.domain.comment.service.CommentService; import Mua.Mua_backend.domain.feed.entity.Feed; import Mua.Mua_backend.domain.feed.repository.FeedRepository; @@ -56,7 +57,12 @@ public void apply(Long feedId, Member member) { participationRepository.save(participation); String message = member.getNickname() + "님이 참가 신청했습니다."; - commentService.createSystemComment(feed.getId(), message, participation.getId()); + commentService.createEventComment( + feed.getId(), + participation.getId(), + message, + CommentType.APPLY + ); } // 참가자 전체 조회 @@ -89,6 +95,15 @@ public void approve(Long participationId, Member writer) { Member applicant = participation.getApplicant(); Feed feed = participation.getFeed(); + String message = applicant.getNickname() + "님의 참가가 승인되었습니다."; + + commentService.createEventComment( + feed.getId(), + participation.getId(), + message, + CommentType.APPROVE + ); + notificationService.sendNotification( applicant, NotificationType.PARTICIPATION_APPROVED, @@ -110,6 +125,15 @@ public void reject(Long participationId, Member writer) { Member applicant = participation.getApplicant(); Feed feed = participation.getFeed(); + String message = applicant.getNickname() + "님의 참가가 거절되었습니다."; + + commentService.createEventComment( + feed.getId(), + participation.getId(), + message, + CommentType.REJECT + ); + notificationService.sendNotification( applicant, NotificationType.PARTICIPATION_REJECTED,