From da2eb015a45ebf63e5f1b4cb69718912383d95f5 Mon Sep 17 00:00:00 2001 From: parkjaehak Date: Tue, 11 Feb 2025 09:51:56 +0900 Subject: [PATCH 1/5] =?UTF-8?q?CLAP-375=20Fix:=20Comment=EC=97=90=20Attach?= =?UTF-8?q?ment=20=EC=A0=95=EB=B3=B4=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../persistense/entity/task/AttachmentEntity.java | 6 +++--- .../persistense/entity/task/CommentEntity.java | 12 +++++++++++- .../service/history/PostCommentService.java | 2 +- .../clap/server/domain/model/task/Attachment.java | 3 --- .../java/clap/server/domain/model/task/Comment.java | 5 ++++- 5 files changed, 19 insertions(+), 9 deletions(-) diff --git a/src/main/java/clap/server/adapter/outbound/persistense/entity/task/AttachmentEntity.java b/src/main/java/clap/server/adapter/outbound/persistense/entity/task/AttachmentEntity.java index 2ff0eba7..80215741 100644 --- a/src/main/java/clap/server/adapter/outbound/persistense/entity/task/AttachmentEntity.java +++ b/src/main/java/clap/server/adapter/outbound/persistense/entity/task/AttachmentEntity.java @@ -35,9 +35,9 @@ public class AttachmentEntity extends BaseTimeEntity { @JoinColumn(name = "task_id") private TaskEntity task; - @OneToOne(fetch = FetchType.LAZY) - @JoinColumn(name = "comment_id") - private CommentEntity comment; +// @OneToOne(fetch = FetchType.LAZY) +// @JoinColumn(name = "comment_id") +// private CommentEntity comment; @Column(name= "is_deleted", nullable = false) @Builder.Default diff --git a/src/main/java/clap/server/adapter/outbound/persistense/entity/task/CommentEntity.java b/src/main/java/clap/server/adapter/outbound/persistense/entity/task/CommentEntity.java index 9f3df25f..950b729b 100644 --- a/src/main/java/clap/server/adapter/outbound/persistense/entity/task/CommentEntity.java +++ b/src/main/java/clap/server/adapter/outbound/persistense/entity/task/CommentEntity.java @@ -35,8 +35,18 @@ public class CommentEntity extends BaseTimeEntity { @Column(name = "content") private String content; + @Column + private String originalName; + + @Column + private String fileUrl; + + @Column + private String fileSize; + @Column(name = "is_modified", nullable = false) - private boolean isModified; + @Builder.Default + private boolean isModified = Boolean.FALSE; @Column(name="is_deleted", nullable = false) @Builder.Default diff --git a/src/main/java/clap/server/application/service/history/PostCommentService.java b/src/main/java/clap/server/application/service/history/PostCommentService.java index 1f08e2ba..1214b2f8 100644 --- a/src/main/java/clap/server/application/service/history/PostCommentService.java +++ b/src/main/java/clap/server/application/service/history/PostCommentService.java @@ -90,7 +90,7 @@ public void saveCommentAttachment(Long memberId, Long taskId, MultipartFile file private String saveAttachment(MultipartFile file, Task task, Comment comment) { String fileUrl = s3UploadPort.uploadSingleFile(FilePathConstants.TASK_COMMENT, file); - Attachment attachment = Attachment.createCommentAttachment(task, comment, file.getOriginalFilename(), fileUrl, file.getSize()); + Attachment attachment = Attachment.createCommentAttachment(task, file.getOriginalFilename(), fileUrl, file.getSize()); commandAttachmentPort.save(attachment); return file.getOriginalFilename(); } diff --git a/src/main/java/clap/server/domain/model/task/Attachment.java b/src/main/java/clap/server/domain/model/task/Attachment.java index 21f02f64..9cc9b5b0 100644 --- a/src/main/java/clap/server/domain/model/task/Attachment.java +++ b/src/main/java/clap/server/domain/model/task/Attachment.java @@ -12,7 +12,6 @@ public class Attachment extends BaseTime { private Long attachmentId; private Task task; - private Comment comment; private String originalName; private String fileUrl; private String fileSize; @@ -21,7 +20,6 @@ public class Attachment extends BaseTime { public static Attachment createAttachment(Task task, String originalName, String fileUrl, long fileSize) { return Attachment.builder() .task(task) - .comment(null) .originalName(originalName) .fileUrl(fileUrl) .fileSize(formatFileSize(fileSize)) @@ -32,7 +30,6 @@ public static Attachment createAttachment(Task task, String originalName, String public static Attachment createCommentAttachment(Task task, Comment comment, String originalName, String fileUrl, long fileSize) { return Attachment.builder() .task(task) - .comment(comment) .originalName(originalName) .fileUrl(fileUrl) .fileSize(formatFileSize(fileSize)) diff --git a/src/main/java/clap/server/domain/model/task/Comment.java b/src/main/java/clap/server/domain/model/task/Comment.java index fa74651b..3565a5b7 100644 --- a/src/main/java/clap/server/domain/model/task/Comment.java +++ b/src/main/java/clap/server/domain/model/task/Comment.java @@ -2,6 +2,7 @@ import clap.server.domain.model.common.BaseTime; import clap.server.domain.model.member.Member; +import jakarta.persistence.Column; import lombok.AccessLevel; import lombok.Getter; import lombok.NoArgsConstructor; @@ -15,6 +16,9 @@ public class Comment extends BaseTime { private Member member; private Task task; private String content; + private String originalName; + private String fileUrl; + private String fileSize; private boolean isModified; private boolean isDeleted; @@ -23,7 +27,6 @@ public static Comment createComment(Member member, Task task, String content) { .member(member) .task(task) .content(content) - .isModified(false) .build(); } From cfbd3fd955ac150765ba41611cc81c07afc52e7c Mon Sep 17 00:00:00 2001 From: parkjaehak Date: Tue, 11 Feb 2025 10:28:32 +0900 Subject: [PATCH 2/5] =?UTF-8?q?CLAP-375=20Fix:=20comment=20=ED=85=8C?= =?UTF-8?q?=EC=9D=B4=EB=B8=94=20=EC=86=8D=EC=84=B1=20flyway=20=EC=8A=A4?= =?UTF-8?q?=ED=82=A4=EB=A7=88=EC=97=90=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/task/AttachmentEntity.java | 4 ---- .../service/history/PostCommentService.java | 4 ++-- ...75__Modify_From_Comment_And_Attachment.sql | 21 +++++++++++++++++++ 3 files changed, 23 insertions(+), 6 deletions(-) create mode 100644 src/main/resources/db/migration/dev/V20250211375__Modify_From_Comment_And_Attachment.sql diff --git a/src/main/java/clap/server/adapter/outbound/persistense/entity/task/AttachmentEntity.java b/src/main/java/clap/server/adapter/outbound/persistense/entity/task/AttachmentEntity.java index 80215741..33e406b9 100644 --- a/src/main/java/clap/server/adapter/outbound/persistense/entity/task/AttachmentEntity.java +++ b/src/main/java/clap/server/adapter/outbound/persistense/entity/task/AttachmentEntity.java @@ -35,10 +35,6 @@ public class AttachmentEntity extends BaseTimeEntity { @JoinColumn(name = "task_id") private TaskEntity task; -// @OneToOne(fetch = FetchType.LAZY) -// @JoinColumn(name = "comment_id") -// private CommentEntity comment; - @Column(name= "is_deleted", nullable = false) @Builder.Default private boolean isDeleted = Boolean.FALSE; diff --git a/src/main/java/clap/server/application/service/history/PostCommentService.java b/src/main/java/clap/server/application/service/history/PostCommentService.java index 1214b2f8..1d8a53ba 100644 --- a/src/main/java/clap/server/application/service/history/PostCommentService.java +++ b/src/main/java/clap/server/application/service/history/PostCommentService.java @@ -73,7 +73,7 @@ public void saveCommentAttachment(Long memberId, Long taskId, MultipartFile file taskCommentPolicy.validateCommentPermission(task, member); Comment comment = Comment.createComment(member, task, null); Comment savedComment = commandCommentPort.saveComment(comment); - String fileName = saveAttachment(file, task, savedComment); + String fileName = saveAttachment(file, task); TaskHistory taskHistory = TaskHistory.createTaskHistory(TaskHistoryType.COMMENT_FILE, task, null, member, savedComment); commandTaskHistoryPort.save(taskHistory); @@ -88,7 +88,7 @@ public void saveCommentAttachment(Long memberId, Long taskId, MultipartFile file } - private String saveAttachment(MultipartFile file, Task task, Comment comment) { + private String saveAttachment(MultipartFile file, Task task) { String fileUrl = s3UploadPort.uploadSingleFile(FilePathConstants.TASK_COMMENT, file); Attachment attachment = Attachment.createCommentAttachment(task, file.getOriginalFilename(), fileUrl, file.getSize()); commandAttachmentPort.save(attachment); diff --git a/src/main/resources/db/migration/dev/V20250211375__Modify_From_Comment_And_Attachment.sql b/src/main/resources/db/migration/dev/V20250211375__Modify_From_Comment_And_Attachment.sql new file mode 100644 index 00000000..82ef002c --- /dev/null +++ b/src/main/resources/db/migration/dev/V20250211375__Modify_From_Comment_And_Attachment.sql @@ -0,0 +1,21 @@ +-- Step 1: comment 테이블에 컬럼 추가 +ALTER TABLE comment + ADD COLUMN original_name VARCHAR(255), + ADD COLUMN file_url VARCHAR(255), + ADD COLUMN file_size VARCHAR(255); + +-- Step 2: attachment 데이터 복사 +START TRANSACTION; +UPDATE comment c + JOIN attachment a ON c.comment_id = a.comment_id + SET + c.original_name = a.original_name, + c.file_url = a.file_url, + c.file_size = a.file_size, +WHERE c.attachment_id IS NOT NULL; +COMMIT; + +-- Step 3: attachment 테이블에 제약조건 제거 +ALTER TABLE attachment + DROP FOREIGN KEY FKds6u1rptrsif835t89kb15cyo, + DROP COLUMN comment_id; \ No newline at end of file From e55295d25a8b5036a03fef34ca31300aea82a4dd Mon Sep 17 00:00:00 2001 From: parkjaehak Date: Tue, 11 Feb 2025 11:17:01 +0900 Subject: [PATCH 3/5] =?UTF-8?q?CLAP-375=20Fix:=20=ED=9E=88=EC=8A=A4?= =?UTF-8?q?=ED=86=A0=EB=A6=AC=20=EC=A1=B0=ED=9A=8C=EC=8B=9C=20=EC=B2=A8?= =?UTF-8?q?=EB=B6=80=ED=8C=8C=EC=9D=BC=20=EB=B0=94=EC=9D=B8=EB=94=A9=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../response/FindTaskHistoryResponse.java | 1 - .../entity/member/MemberEntity.java | 4 ++-- .../response/TaskHistoryResponseMapper.java | 23 ++++++++----------- .../history/FindTaskHistoriesService.java | 4 ++-- 4 files changed, 13 insertions(+), 19 deletions(-) diff --git a/src/main/java/clap/server/adapter/inbound/web/dto/history/response/FindTaskHistoryResponse.java b/src/main/java/clap/server/adapter/inbound/web/dto/history/response/FindTaskHistoryResponse.java index 471d5b0b..ce468bc1 100644 --- a/src/main/java/clap/server/adapter/inbound/web/dto/history/response/FindTaskHistoryResponse.java +++ b/src/main/java/clap/server/adapter/inbound/web/dto/history/response/FindTaskHistoryResponse.java @@ -39,7 +39,6 @@ public static record CommentFileDetails( Long commentId, String nickName, String profileImageUrl, - boolean isModified, String fileName, String url, String size diff --git a/src/main/java/clap/server/adapter/outbound/persistense/entity/member/MemberEntity.java b/src/main/java/clap/server/adapter/outbound/persistense/entity/member/MemberEntity.java index 10bc90ad..553b8a0f 100644 --- a/src/main/java/clap/server/adapter/outbound/persistense/entity/member/MemberEntity.java +++ b/src/main/java/clap/server/adapter/outbound/persistense/entity/member/MemberEntity.java @@ -54,11 +54,11 @@ public class MemberEntity extends BaseTimeEntity { @Column(name = "kakaowork_notification_enabled") @Builder.Default - private Boolean kakaoworkNotificationEnabled = Boolean.TRUE;; + private Boolean kakaoworkNotificationEnabled = Boolean.TRUE; @Column(name = "email_notification_enabled") @Builder.Default - private Boolean emailNotificationEnabled = Boolean.TRUE;; + private Boolean emailNotificationEnabled = Boolean.TRUE; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "admin_id") diff --git a/src/main/java/clap/server/application/mapper/response/TaskHistoryResponseMapper.java b/src/main/java/clap/server/application/mapper/response/TaskHistoryResponseMapper.java index bf65372d..e6f13809 100644 --- a/src/main/java/clap/server/application/mapper/response/TaskHistoryResponseMapper.java +++ b/src/main/java/clap/server/application/mapper/response/TaskHistoryResponseMapper.java @@ -14,7 +14,7 @@ private TaskHistoryResponseMapper() { throw new IllegalArgumentException("Utility class"); } - public static FindTaskHistoryResponse toFindTaskHistoryResponse(List taskHistories, List attachments) { + public static FindTaskHistoryResponse toFindTaskHistoryResponse(List taskHistories) { List historyResponses = taskHistories.stream() .map(taskHistory -> { FindTaskHistoryResponse.Details details = @@ -47,19 +47,14 @@ public static FindTaskHistoryResponse toFindTaskHistoryResponse(List new FindTaskHistoryResponse.Details( null, null, - attachments.stream() - .filter(attachment -> attachment.getComment().getCommentId().equals(taskHistory.getComment().getCommentId())) - .findFirst() - .map(attachment -> new FindTaskHistoryResponse.CommentFileDetails( - taskHistory.getComment().getCommentId(), - taskHistory.getComment().getMember().getNickname(), - taskHistory.getComment().getMember().getImageUrl(), - taskHistory.getComment().isModified(), - attachment.getOriginalName(), - attachment.getFileUrl(), - attachment.getFileSize() - )) - .orElse(null) + new FindTaskHistoryResponse.CommentFileDetails( + taskHistory.getComment().getCommentId(), + taskHistory.getComment().getMember().getNickname(), + taskHistory.getComment().getMember().getImageUrl(), + taskHistory.getComment().getOriginalName(), + taskHistory.getComment().getFileUrl(), + taskHistory.getComment().getFileSize() + ) ); }; return new FindTaskHistoryResponse.TaskHistoryResponse( diff --git a/src/main/java/clap/server/application/service/history/FindTaskHistoriesService.java b/src/main/java/clap/server/application/service/history/FindTaskHistoriesService.java index 3192902f..05e1eee6 100644 --- a/src/main/java/clap/server/application/service/history/FindTaskHistoriesService.java +++ b/src/main/java/clap/server/application/service/history/FindTaskHistoriesService.java @@ -33,8 +33,8 @@ public FindTaskHistoryResponse findTaskHistories(Long memberId, Long taskId) { memberService.findActiveMember(memberId); Task task = loadTaskPort.findById(taskId) .orElseThrow(()-> new DomainException(TaskErrorCode.TASK_NOT_FOUND)); - List attachments = loadAttachmentPort.findAllByTaskIdAndCommentIsNotNull(task.getTaskId()); + //List attachments = loadAttachmentPort.findAllByTaskIdAndCommentIsNotNull(task.getTaskId()); List taskHistories = loadTaskHistoryPort.findAllTaskHistoriesByTaskId(task.getTaskId()); - return TaskHistoryResponseMapper.toFindTaskHistoryResponse(taskHistories, attachments); + return TaskHistoryResponseMapper.toFindTaskHistoryResponse(taskHistories); } } From c1bd0d5f7c41c0ee17c41aa7247b3c4665b59e9b Mon Sep 17 00:00:00 2001 From: parkjaehak Date: Tue, 11 Feb 2025 12:36:31 +0900 Subject: [PATCH 4/5] =?UTF-8?q?CLAP-375=20Fix:=20comment=20=EC=86=8D?= =?UTF-8?q?=EC=84=B1=20=EC=B6=94=EA=B0=80=20=EC=8A=A4=ED=82=A4=EB=A7=88=20?= =?UTF-8?q?=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../response/TaskHistoryResponseMapper.java | 4 +-- .../service/history/PostCommentService.java | 26 ++++++++++++------- .../server/domain/model/task/Attachment.java | 2 +- .../server/domain/model/task/Comment.java | 5 +++- .../dev/V20250211374__Add_From_Comment.sql | 4 +++ ...75__Modify_From_Comment_And_Attachment.sql | 17 +++++------- 6 files changed, 33 insertions(+), 25 deletions(-) create mode 100644 src/main/resources/db/migration/dev/V20250211374__Add_From_Comment.sql diff --git a/src/main/java/clap/server/application/mapper/response/TaskHistoryResponseMapper.java b/src/main/java/clap/server/application/mapper/response/TaskHistoryResponseMapper.java index e6f13809..e3ac847f 100644 --- a/src/main/java/clap/server/application/mapper/response/TaskHistoryResponseMapper.java +++ b/src/main/java/clap/server/application/mapper/response/TaskHistoryResponseMapper.java @@ -59,8 +59,8 @@ public static FindTaskHistoryResponse toFindTaskHistoryResponse(List 요청자인지 확인 taskCommentPolicy.validateCommentPermission(task, member); - Comment comment = Comment.createComment(member, task, request.content()); + Comment comment = Comment.createComment(member, task, request.content(), null, null, null); Comment savedComment = commandCommentPort.saveComment(comment); TaskHistory taskHistory = TaskHistory.createTaskHistory(TaskHistoryType.COMMENT, task, null, member, savedComment); @@ -71,11 +73,14 @@ public void saveCommentAttachment(Long memberId, Long taskId, MultipartFile file Member member = memberService.findActiveMember(memberId); taskCommentPolicy.validateCommentPermission(task, member); - Comment comment = Comment.createComment(member, task, null); + + String fileUrl = s3UploadPort.uploadSingleFile(FilePathConstants.TASK_COMMENT, file); + String fileName = file.getOriginalFilename(); + + Comment comment = Comment.createComment(member, task, null, fileName, fileUrl, formatFileSize(file.getSize())); Comment savedComment = commandCommentPort.saveComment(comment); - String fileName = saveAttachment(file, task); - TaskHistory taskHistory = TaskHistory.createTaskHistory(TaskHistoryType.COMMENT_FILE, task, null, member, savedComment); + TaskHistory taskHistory = TaskHistory.createTaskHistory(TaskHistoryType.COMMENT_FILE, null, null, null, savedComment); commandTaskHistoryPort.save(taskHistory); Member processor = task.getProcessor(); @@ -88,12 +93,13 @@ public void saveCommentAttachment(Long memberId, Long taskId, MultipartFile file } - private String saveAttachment(MultipartFile file, Task task) { - String fileUrl = s3UploadPort.uploadSingleFile(FilePathConstants.TASK_COMMENT, file); - Attachment attachment = Attachment.createCommentAttachment(task, file.getOriginalFilename(), fileUrl, file.getSize()); - commandAttachmentPort.save(attachment); - return file.getOriginalFilename(); - } + @Deprecated +// private String saveAttachment(MultipartFile file, Task task) { +// String fileUrl = s3UploadPort.uploadSingleFile(FilePathConstants.TASK_COMMENT, file); +// Attachment attachment = Attachment.createCommentAttachment(task, null, file.getOriginalFilename(), fileUrl, file.getSize()); +// commandAttachmentPort.save(attachment); +// return file.getOriginalFilename(); +// } private void publishNotification(Member receiver, Task task, String message, String commenterName) { boolean isManager = receiver.getMemberInfo().getRole() == MemberRole.ROLE_MANAGER; diff --git a/src/main/java/clap/server/domain/model/task/Attachment.java b/src/main/java/clap/server/domain/model/task/Attachment.java index 9cc9b5b0..b797a7ae 100644 --- a/src/main/java/clap/server/domain/model/task/Attachment.java +++ b/src/main/java/clap/server/domain/model/task/Attachment.java @@ -27,6 +27,7 @@ public static Attachment createAttachment(Task task, String originalName, String .build(); } + @Deprecated public static Attachment createCommentAttachment(Task task, Comment comment, String originalName, String fileUrl, long fileSize) { return Attachment.builder() .task(task) @@ -50,5 +51,4 @@ public static String formatFileSize(long size) { return String.format("%.1f MB", size / (1024.0 * 1024.0)); } } - } diff --git a/src/main/java/clap/server/domain/model/task/Comment.java b/src/main/java/clap/server/domain/model/task/Comment.java index 3565a5b7..2f13a18c 100644 --- a/src/main/java/clap/server/domain/model/task/Comment.java +++ b/src/main/java/clap/server/domain/model/task/Comment.java @@ -22,11 +22,14 @@ public class Comment extends BaseTime { private boolean isModified; private boolean isDeleted; - public static Comment createComment(Member member, Task task, String content) { + public static Comment createComment(Member member, Task task, String content, String originalName, String fileUrl, String fileSize) { return Comment.builder() .member(member) .task(task) .content(content) + .originalName(originalName) + .fileUrl(fileUrl) + .fileSize(fileSize) .build(); } diff --git a/src/main/resources/db/migration/dev/V20250211374__Add_From_Comment.sql b/src/main/resources/db/migration/dev/V20250211374__Add_From_Comment.sql new file mode 100644 index 00000000..a6b30a85 --- /dev/null +++ b/src/main/resources/db/migration/dev/V20250211374__Add_From_Comment.sql @@ -0,0 +1,4 @@ +ALTER TABLE comment + ADD COLUMN original_name VARCHAR(255), + ADD COLUMN file_url VARCHAR(255), + ADD COLUMN file_size VARCHAR(255); \ No newline at end of file diff --git a/src/main/resources/db/migration/dev/V20250211375__Modify_From_Comment_And_Attachment.sql b/src/main/resources/db/migration/dev/V20250211375__Modify_From_Comment_And_Attachment.sql index 82ef002c..0ea0c064 100644 --- a/src/main/resources/db/migration/dev/V20250211375__Modify_From_Comment_And_Attachment.sql +++ b/src/main/resources/db/migration/dev/V20250211375__Modify_From_Comment_And_Attachment.sql @@ -1,21 +1,16 @@ --- Step 1: comment 테이블에 컬럼 추가 -ALTER TABLE comment - ADD COLUMN original_name VARCHAR(255), - ADD COLUMN file_url VARCHAR(255), - ADD COLUMN file_size VARCHAR(255); - --- Step 2: attachment 데이터 복사 START TRANSACTION; +-- Step 1: attachment 데이터 복사 UPDATE comment c JOIN attachment a ON c.comment_id = a.comment_id SET c.original_name = a.original_name, c.file_url = a.file_url, - c.file_size = a.file_size, -WHERE c.attachment_id IS NOT NULL; + c.file_size = a.file_size +WHERE a.attachment_id IS NOT NULL; COMMIT; --- Step 3: attachment 테이블에 제약조건 제거 +-- Step 2: attachment 테이블에 제약조건 제거 ALTER TABLE attachment DROP FOREIGN KEY FKds6u1rptrsif835t89kb15cyo, - DROP COLUMN comment_id; \ No newline at end of file + DROP COLUMN comment_id; + From 87ec0d97504d5be3c5c138f81b933382ed91226b Mon Sep 17 00:00:00 2001 From: parkjaehak Date: Tue, 11 Feb 2025 13:11:16 +0900 Subject: [PATCH 5/5] =?UTF-8?q?CLAP-375=20Fix:=20=EC=9E=91=EC=97=85=20?= =?UTF-8?q?=EA=B4=80=EB=A0=A8=20=EC=A1=B0=ED=9A=8C=EC=8B=9C=20notnull=20?= =?UTF-8?q?=EA=B4=80=EB=A0=A8=20jpa=20=EC=BF=BC=EB=A6=AC=20=EC=A0=9C?= =?UTF-8?q?=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AttachmentPersistenceAdapter.java | 27 +++---------------- .../CommentPersistenceAdapter.java | 5 ---- .../repository/task/AttachmentRepository.java | 7 ++--- .../outbound/task/CommandCommentPort.java | 2 -- .../outbound/task/LoadAttachmentPort.java | 8 ++---- .../history/CommandCommentService.java | 24 +++-------------- .../history/FindTaskHistoriesService.java | 1 - .../service/task/FindTaskDetailsService.java | 4 +-- .../service/task/UpdateTaskService.java | 2 +- 9 files changed, 14 insertions(+), 66 deletions(-) diff --git a/src/main/java/clap/server/adapter/outbound/persistense/AttachmentPersistenceAdapter.java b/src/main/java/clap/server/adapter/outbound/persistense/AttachmentPersistenceAdapter.java index 03e031e9..b7296582 100644 --- a/src/main/java/clap/server/adapter/outbound/persistense/AttachmentPersistenceAdapter.java +++ b/src/main/java/clap/server/adapter/outbound/persistense/AttachmentPersistenceAdapter.java @@ -37,37 +37,18 @@ public void saveAll(final List attachments) { } @Override - public List findAllByTaskIdAndCommentIsNull(final Long taskId) { - List attachmentEntities = attachmentRepository.findAllByTask_TaskIdAndCommentIsNull(taskId); + public List findAllByTaskId(final Long taskId) { + List attachmentEntities = attachmentRepository.findAllByTask_TaskId(taskId); return attachmentEntities.stream() .map(attachmentPersistenceMapper::toDomain) .collect(Collectors.toList()); } @Override - public List findAllByTaskIdAndCommentIsNullAndAttachmentId(final Long taskId, final List attachmentIds) { - List attachmentEntities = attachmentRepository.findAllByTask_TaskIdAndCommentIsNullAndAttachmentIdIn(taskId, attachmentIds); + public List findAllByTaskIdAndAttachmentId(final Long taskId, final List attachmentIds) { + List attachmentEntities = attachmentRepository.findAllByTask_TaskIdAndAttachmentIdIn(taskId, attachmentIds); return attachmentEntities.stream() .map(attachmentPersistenceMapper::toDomain) .collect(Collectors.toList()); } - - @Override - public Optional findByCommentId(final Long commentId) { - Optional attachmentEntity = attachmentRepository.findByComment_CommentId(commentId); - return attachmentEntity.map(attachmentPersistenceMapper::toDomain); - } - - @Override - public List findAllByTaskIdAndCommentIsNotNull(final Long taskId) { - List attachmentEntities = attachmentRepository.findAllByTask_TaskIdAndCommentIsNotNull(taskId); - return attachmentEntities.stream() - .map(attachmentPersistenceMapper::toDomain) - .collect(Collectors.toList()); - } - - @Override - public boolean exitsByCommentId(final Long commentId) { - return attachmentRepository.existsByComment_CommentId(commentId); - } } diff --git a/src/main/java/clap/server/adapter/outbound/persistense/CommentPersistenceAdapter.java b/src/main/java/clap/server/adapter/outbound/persistense/CommentPersistenceAdapter.java index 72aa69d2..0c80994b 100644 --- a/src/main/java/clap/server/adapter/outbound/persistense/CommentPersistenceAdapter.java +++ b/src/main/java/clap/server/adapter/outbound/persistense/CommentPersistenceAdapter.java @@ -34,9 +34,4 @@ public Comment saveComment(final Comment comment) { public void deleteCommentWithTaskHistory(final Long commentId) { commentRepository.deleteCommentWithTaskHistory(commentId); } - - @Override - public void deleteComment(final Comment comment) { - commentRepository.delete(commentPersistenceMapper.toEntity(comment)); - } } diff --git a/src/main/java/clap/server/adapter/outbound/persistense/repository/task/AttachmentRepository.java b/src/main/java/clap/server/adapter/outbound/persistense/repository/task/AttachmentRepository.java index 1c5321a7..26ca4aae 100644 --- a/src/main/java/clap/server/adapter/outbound/persistense/repository/task/AttachmentRepository.java +++ b/src/main/java/clap/server/adapter/outbound/persistense/repository/task/AttachmentRepository.java @@ -8,9 +8,6 @@ @Repository public interface AttachmentRepository extends JpaRepository { - List findAllByTask_TaskIdAndCommentIsNull(Long taskId); - List findAllByTask_TaskIdAndCommentIsNullAndAttachmentIdIn(Long task_taskId, List attachmentId); - Optional findByComment_CommentId(Long commentId); - boolean existsByComment_CommentId(Long commentId); - List findAllByTask_TaskIdAndCommentIsNotNull(Long taskId); + List findAllByTask_TaskId(Long taskId); + List findAllByTask_TaskIdAndAttachmentIdIn(Long task_taskId, List attachmentId); } \ No newline at end of file diff --git a/src/main/java/clap/server/application/port/outbound/task/CommandCommentPort.java b/src/main/java/clap/server/application/port/outbound/task/CommandCommentPort.java index b5087c45..71a60c8c 100644 --- a/src/main/java/clap/server/application/port/outbound/task/CommandCommentPort.java +++ b/src/main/java/clap/server/application/port/outbound/task/CommandCommentPort.java @@ -7,6 +7,4 @@ public interface CommandCommentPort { Comment saveComment(Comment comment); void deleteCommentWithTaskHistory(Long commentId); - - void deleteComment(Comment comment); } diff --git a/src/main/java/clap/server/application/port/outbound/task/LoadAttachmentPort.java b/src/main/java/clap/server/application/port/outbound/task/LoadAttachmentPort.java index 127c4fad..ccab40f6 100644 --- a/src/main/java/clap/server/application/port/outbound/task/LoadAttachmentPort.java +++ b/src/main/java/clap/server/application/port/outbound/task/LoadAttachmentPort.java @@ -3,13 +3,9 @@ import clap.server.domain.model.task.Attachment; import java.util.List; -import java.util.Optional; public interface LoadAttachmentPort { - List findAllByTaskIdAndCommentIsNull(Long taskId); - List findAllByTaskIdAndCommentIsNullAndAttachmentId(Long taskId, List attachmentIds); - Optional findByCommentId(Long commentId); - List findAllByTaskIdAndCommentIsNotNull(Long taskId); - boolean exitsByCommentId(Long commentId); + List findAllByTaskId(Long taskId); + List findAllByTaskIdAndAttachmentId(Long taskId, List attachmentIds); } diff --git a/src/main/java/clap/server/application/service/history/CommandCommentService.java b/src/main/java/clap/server/application/service/history/CommandCommentService.java index f2d7f303..2eff6a12 100644 --- a/src/main/java/clap/server/application/service/history/CommandCommentService.java +++ b/src/main/java/clap/server/application/service/history/CommandCommentService.java @@ -32,10 +32,7 @@ public class CommandCommentService implements EditCommentUsecase, DeleteCommentU private final MemberService memberService; private final CommentService commentService; - private final CommandCommentPort commandCommentPort; - private final LoadAttachmentPort loadAttachmentPort; - private final CommandAttachmentPort commandAttachmentPort; @Transactional @Override @@ -54,23 +51,8 @@ public void editComment(Long memberId, Long commentId, EditCommentRequest reques @Transactional @Override public void deleteComment(Long memberId, Long commentId) { - Member member = memberService.findActiveMember(memberId); - Comment comment = commentService.findById(commentId); - - if (comment.getMember().getMemberId().equals(member.getMemberId())) { - if (loadAttachmentPort.exitsByCommentId(commentId)) { - deleteAttachments(commentId); - } - commandCommentPort.deleteCommentWithTaskHistory(commentId); - }else{ - throw new ApplicationException(CommentErrorCode.NOT_A_COMMENT_WRITER); - } - } - - private void deleteAttachments(Long commentId) { - Attachment attachment = loadAttachmentPort.findByCommentId(commentId) - .orElseThrow(() -> new ApplicationException(CommentErrorCode.COMMENT_ATTACHMENT_NOT_FOUND)); - attachment.softDelete(); - commandAttachmentPort.save(attachment); + memberService.findActiveMember(memberId); + commentService.findById(commentId); + commandCommentPort.deleteCommentWithTaskHistory(commentId); } } diff --git a/src/main/java/clap/server/application/service/history/FindTaskHistoriesService.java b/src/main/java/clap/server/application/service/history/FindTaskHistoriesService.java index 05e1eee6..7ff7a37d 100644 --- a/src/main/java/clap/server/application/service/history/FindTaskHistoriesService.java +++ b/src/main/java/clap/server/application/service/history/FindTaskHistoriesService.java @@ -33,7 +33,6 @@ public FindTaskHistoryResponse findTaskHistories(Long memberId, Long taskId) { memberService.findActiveMember(memberId); Task task = loadTaskPort.findById(taskId) .orElseThrow(()-> new DomainException(TaskErrorCode.TASK_NOT_FOUND)); - //List attachments = loadAttachmentPort.findAllByTaskIdAndCommentIsNotNull(task.getTaskId()); List taskHistories = loadTaskHistoryPort.findAllTaskHistoriesByTaskId(task.getTaskId()); return TaskHistoryResponseMapper.toFindTaskHistoryResponse(taskHistories); } diff --git a/src/main/java/clap/server/application/service/task/FindTaskDetailsService.java b/src/main/java/clap/server/application/service/task/FindTaskDetailsService.java index ebcee406..67097d86 100644 --- a/src/main/java/clap/server/application/service/task/FindTaskDetailsService.java +++ b/src/main/java/clap/server/application/service/task/FindTaskDetailsService.java @@ -31,7 +31,7 @@ public FindTaskDetailsResponse findRequestedTaskDetails(final Long requesterId, memberService.findActiveMember(requesterId); Task task = loadTaskPort.findById(taskId) .orElseThrow(()-> new ApplicationException(TaskErrorCode.TASK_NOT_FOUND)); - List attachments = loadAttachmentPort.findAllByTaskIdAndCommentIsNull(taskId); + List attachments = loadAttachmentPort.findAllByTaskId(taskId); return TaskResponseMapper.toFindTaskDetailResponse(task, attachments); } @@ -40,7 +40,7 @@ public FindTaskDetailsForManagerResponse findTaskDetailsForManager(final Long re memberService.findActiveMember(requesterId); Task task = loadTaskPort.findById(taskId) .orElseThrow(() -> new ApplicationException(TaskErrorCode.TASK_NOT_FOUND)); - List attachments = loadAttachmentPort.findAllByTaskIdAndCommentIsNull(taskId); + List attachments = loadAttachmentPort.findAllByTaskId(taskId); return TaskResponseMapper.toFindTaskDetailForManagerResponse(task, attachments); } } diff --git a/src/main/java/clap/server/application/service/task/UpdateTaskService.java b/src/main/java/clap/server/application/service/task/UpdateTaskService.java index 403f8545..e5bffd76 100644 --- a/src/main/java/clap/server/application/service/task/UpdateTaskService.java +++ b/src/main/java/clap/server/application/service/task/UpdateTaskService.java @@ -138,7 +138,7 @@ private void updateAttachments(List attachmentIdsToDelete, List validateAndGetAttachments(List attachmentIdsToDelete, Task task) { - List attachmentsOfTask = loadAttachmentPort.findAllByTaskIdAndCommentIsNullAndAttachmentId(task.getTaskId(), attachmentIdsToDelete); + List attachmentsOfTask = loadAttachmentPort.findAllByTaskIdAndAttachmentId(task.getTaskId(), attachmentIdsToDelete); if (attachmentsOfTask.size() != attachmentIdsToDelete.size()) { throw new ApplicationException(TaskErrorCode.TASK_ATTACHMENT_NOT_FOUND); }