From a661127462c25b53bd66492ff9055fc033374e2d Mon Sep 17 00:00:00 2001 From: paragon0107 Date: Thu, 14 Nov 2024 00:49:47 +0900 Subject: [PATCH 1/9] =?UTF-8?q?[CHORE]=20=EB=B8=94=EB=9E=AD=ED=81=AC=20?= =?UTF-8?q?=EC=8B=9C=20=EC=A1=B0=EA=B1=B4=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/tiki/server/common/util/ContentDecoder.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/tiki/server/common/util/ContentDecoder.java b/src/main/java/com/tiki/server/common/util/ContentDecoder.java index ef8135f0..721a4962 100644 --- a/src/main/java/com/tiki/server/common/util/ContentDecoder.java +++ b/src/main/java/com/tiki/server/common/util/ContentDecoder.java @@ -7,10 +7,10 @@ public class ContentDecoder { public static List decodeNoteTemplate(final String encodedData) { String[] parts = encodedData.split("\\|"); - String decodedActivity = new String(Base64.getDecoder().decode(parts[0])); - String decodedPrepare = new String(Base64.getDecoder().decode(parts[1])); - String decodedDisappointing = new String(Base64.getDecoder().decode(parts[2])); - String decodedComplement = new String(Base64.getDecoder().decode(parts[3])); + String decodedActivity = parts[0].isBlank() ? "" : new String(Base64.getDecoder().decode(parts[0])); + String decodedPrepare = parts[1].isBlank() ? "" : new String(Base64.getDecoder().decode(parts[1])); + String decodedDisappointing = parts[2].isBlank() ? "" : new String(Base64.getDecoder().decode(parts[2])); + String decodedComplement = parts[3].isBlank() ? "" : new String(Base64.getDecoder().decode(parts[3])); return List.of(decodedActivity, decodedPrepare, decodedDisappointing, decodedComplement); } From 7a643e9b5b181f58ca74839f9efa90134f4f2890 Mon Sep 17 00:00:00 2001 From: paragon0107 Date: Thu, 14 Nov 2024 00:49:55 +0900 Subject: [PATCH 2/9] =?UTF-8?q?[CHORE]=20=EB=B8=94=EB=9E=AD=ED=81=AC=20?= =?UTF-8?q?=EC=8B=9C=20=EC=A1=B0=EA=B1=B4=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/tiki/server/common/util/ContentEncoder.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/tiki/server/common/util/ContentEncoder.java b/src/main/java/com/tiki/server/common/util/ContentEncoder.java index 19e375e5..26aac4f5 100644 --- a/src/main/java/com/tiki/server/common/util/ContentEncoder.java +++ b/src/main/java/com/tiki/server/common/util/ContentEncoder.java @@ -5,10 +5,10 @@ public class ContentEncoder { public static String encodeNoteTemplate(final String activity, final String prepare, final String disappointing, final String complement) { - String encodedActivity = Base64.getEncoder().encodeToString(activity.getBytes()); - String encodedPrepare = Base64.getEncoder().encodeToString(prepare.getBytes()); - String encodedDisappointing = Base64.getEncoder().encodeToString(disappointing.getBytes()); - String encodedComplement = Base64.getEncoder().encodeToString(complement.getBytes()); + String encodedActivity = activity.isBlank() ? " " : Base64.getEncoder().encodeToString(activity.getBytes()); + String encodedPrepare = prepare.isBlank() ? " " : Base64.getEncoder().encodeToString(prepare.getBytes()); + String encodedDisappointing = disappointing.isBlank() ? " " : Base64.getEncoder().encodeToString(disappointing.getBytes()); + String encodedComplement = complement.isBlank() ? " " : Base64.getEncoder().encodeToString(complement.getBytes()); return String.join("|", encodedActivity, encodedPrepare, encodedDisappointing, encodedComplement); } From 2bbd4f48ab5d06cfc2d38c5821d97e231904b506 Mon Sep 17 00:00:00 2001 From: paragon0107 Date: Thu, 14 Nov 2024 00:50:17 +0900 Subject: [PATCH 3/9] =?UTF-8?q?[CHORE]=20=EA=B8=B0=EC=A4=80=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/tiki/server/note/adapter/NoteFinder.java | 8 ++++---- .../tiki/server/note/controller/NoteController.java | 8 ++++---- .../tiki/server/note/repository/NoteRepository.java | 8 ++++---- .../java/com/tiki/server/note/service/NoteService.java | 10 +++++----- 4 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/tiki/server/note/adapter/NoteFinder.java b/src/main/java/com/tiki/server/note/adapter/NoteFinder.java index 26e10072..97e2b44a 100644 --- a/src/main/java/com/tiki/server/note/adapter/NoteFinder.java +++ b/src/main/java/com/tiki/server/note/adapter/NoteFinder.java @@ -18,12 +18,12 @@ public class NoteFinder { private final NoteRepository noteRepository; - public List findByModifiedAtBeforeOrderByModifiedAtDesc(final LocalDateTime lastUpdatedAt, final PageRequest pageRequest) { - return noteRepository.findByModifiedAtBeforeOrderByModifiedAtDesc(lastUpdatedAt, pageRequest); + public List findByCreatedAtBeforeOrderByModifiedAtDesc(final LocalDateTime createdAt, final PageRequest pageRequest) { + return noteRepository.findByCreatedAtBeforeOrderByModifiedAtDesc(createdAt, pageRequest); } - public List findByModifiedAtAfterOrderByModifiedAtAsc(final LocalDateTime lastUpdatedAt, final PageRequest pageRequest) { - return noteRepository.findByModifiedAtAfterOrderByModifiedAtAsc(lastUpdatedAt, pageRequest); + public List findByCreatedAtAfterOrderByModifiedAtAsc(final LocalDateTime createdAt, final PageRequest pageRequest) { + return noteRepository.findByCreatedAtAfterOrderByModifiedAtAsc(createdAt, pageRequest); } public Note findById(final long noteId) { diff --git a/src/main/java/com/tiki/server/note/controller/NoteController.java b/src/main/java/com/tiki/server/note/controller/NoteController.java index 93f30413..38d75a69 100644 --- a/src/main/java/com/tiki/server/note/controller/NoteController.java +++ b/src/main/java/com/tiki/server/note/controller/NoteController.java @@ -84,14 +84,14 @@ public ResponseEntity updateNoteTemplate( public ResponseEntity> getNote( final Principal principal, @PathVariable long teamId, - @RequestParam(required = false) LocalDateTime lastUpdatedAt, + @RequestParam(required = false) LocalDateTime createdAt, @RequestParam(defaultValue = "DESC") SortOrder sortOrder ) { long memberId = Long.parseLong(principal.getName()); - if (lastUpdatedAt == null) { - lastUpdatedAt = (sortOrder == SortOrder.DESC) ? LocalDateTime.now() : LocalDateTime.of(1970, 1, 1, 0, 0); + if (createdAt == null) { + createdAt = (sortOrder == SortOrder.DESC) ? LocalDateTime.now() : LocalDateTime.of(1970, 1, 1, 0, 0); } - NoteListGetServiceResponse response = noteService.getNote(teamId, memberId, lastUpdatedAt, sortOrder); + NoteListGetServiceResponse response = noteService.getNote(teamId, memberId, createdAt, sortOrder); return ResponseEntity.ok().body(success(GET_NOTE.getMessage(), response)); } diff --git a/src/main/java/com/tiki/server/note/repository/NoteRepository.java b/src/main/java/com/tiki/server/note/repository/NoteRepository.java index fa4bba4b..46a7804e 100644 --- a/src/main/java/com/tiki/server/note/repository/NoteRepository.java +++ b/src/main/java/com/tiki/server/note/repository/NoteRepository.java @@ -11,9 +11,9 @@ public interface NoteRepository extends JpaRepository { - @Query("SELECT n FROM Note n WHERE n.updatedAt < :lastModifiedAt ORDER BY n.updatedAt DESC") - List findByModifiedAtBeforeOrderByModifiedAtDesc(@Param("lastModifiedAt") LocalDateTime lastModifiedAt, Pageable pageable); + @Query("SELECT n FROM Note n WHERE n.createdAt < :createdAt ORDER BY n.createdAt DESC") + List findByCreatedAtBeforeOrderByModifiedAtDesc(@Param("createdAt") LocalDateTime createdAt, Pageable pageable); - @Query("SELECT n FROM Note n WHERE n.updatedAt > :lastModifiedAt ORDER BY n.updatedAt ASC") - List findByModifiedAtAfterOrderByModifiedAtAsc(@Param("lastModifiedAt") LocalDateTime lastModifiedAt, Pageable pageable); + @Query("SELECT n FROM Note n WHERE n.createdAt > :createdAt ORDER BY n.createdAt ASC") + List findByCreatedAtAfterOrderByModifiedAtAsc(@Param("createdAt") LocalDateTime createdAt, Pageable pageable); } diff --git a/src/main/java/com/tiki/server/note/service/NoteService.java b/src/main/java/com/tiki/server/note/service/NoteService.java index dff8b694..4a7e69cf 100644 --- a/src/main/java/com/tiki/server/note/service/NoteService.java +++ b/src/main/java/com/tiki/server/note/service/NoteService.java @@ -130,12 +130,12 @@ public void deleteNotes(final List noteIds, final long teamId, final long public NoteListGetServiceResponse getNote( final long teamId, final long memberId, - final LocalDateTime lastUpdatedAt, + final LocalDateTime createdAt, final SortOrder sortOrder ) { memberTeamManagerFinder.findByMemberIdAndTeamId(memberId, teamId); PageRequest pageable = PageRequest.of(INIT_NUM, PAGE_SIZE); - List noteList = getNotes(lastUpdatedAt, sortOrder, pageable); + List noteList = getNotes(createdAt, sortOrder, pageable); List noteGetResponseList = noteList.stream() .map(NoteGetResponse::of) .collect(Collectors.toList()); @@ -180,11 +180,11 @@ private void updateNoteTimeBlockManager(final List timeBlockIds, final lon noteTimeBlockManagerDeleter.deleteByNoteIdAndTimeBlockId(noteId, idsToRemove); } - private List getNotes(final LocalDateTime lastUpdatedAt, final SortOrder sortOrder, final PageRequest pageable) { + private List getNotes(final LocalDateTime createdAt, final SortOrder sortOrder, final PageRequest pageable) { if (sortOrder == SortOrder.DESC) { - return noteFinder.findByModifiedAtBeforeOrderByModifiedAtDesc(lastUpdatedAt, pageable); + return noteFinder.findByCreatedAtBeforeOrderByModifiedAtDesc(createdAt, pageable); } - return noteFinder.findByModifiedAtAfterOrderByModifiedAtAsc(lastUpdatedAt, pageable); + return noteFinder.findByCreatedAtAfterOrderByModifiedAtAsc(createdAt, pageable); } private List getTimeBlocksMappedByNote(final long noteId) { From 165fec8aab1fc4e41a5ea8b6e848501b36910b23 Mon Sep 17 00:00:00 2001 From: paragon0107 Date: Thu, 14 Nov 2024 01:16:23 +0900 Subject: [PATCH 4/9] =?UTF-8?q?[CHORE]=20Note=20Author=20=EC=86=8D?= =?UTF-8?q?=EC=84=B1=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/tiki/server/note/entity/Note.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/main/java/com/tiki/server/note/entity/Note.java b/src/main/java/com/tiki/server/note/entity/Note.java index fdaea510..18999ad8 100644 --- a/src/main/java/com/tiki/server/note/entity/Note.java +++ b/src/main/java/com/tiki/server/note/entity/Note.java @@ -30,8 +30,6 @@ public class Note extends BaseTime { private String title; - private String author; - private boolean complete; private LocalDate startDate; @@ -49,7 +47,6 @@ public class Note extends BaseTime { public static Note of( final String title, - final String author, final boolean complete, final LocalDate startDate, final LocalDate endDate, @@ -60,7 +57,6 @@ public static Note of( ) { return Note.builder() .title(title) - .author(author) .complete(complete) .startDate(startDate) .endDate(endDate) From 88e83c603663ee22e7c988cdd63087611af0cac5 Mon Sep 17 00:00:00 2001 From: paragon0107 Date: Thu, 14 Nov 2024 01:17:03 +0900 Subject: [PATCH 5/9] =?UTF-8?q?[CHORE]=20NoteService=20=EC=9E=91=EC=84=B1?= =?UTF-8?q?=EC=9E=90=20"=EC=95=8C=20=EC=88=98=20=EC=97=86=EC=9D=8C"=20?= =?UTF-8?q?=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tiki/server/note/service/NoteService.java | 45 +++++++++++++------ 1 file changed, 31 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/tiki/server/note/service/NoteService.java b/src/main/java/com/tiki/server/note/service/NoteService.java index 4a7e69cf..8fbca57a 100644 --- a/src/main/java/com/tiki/server/note/service/NoteService.java +++ b/src/main/java/com/tiki/server/note/service/NoteService.java @@ -4,7 +4,9 @@ import com.tiki.server.common.util.ContentEncoder; import com.tiki.server.document.adapter.DocumentFinder; import com.tiki.server.document.entity.Document; +import com.tiki.server.member.adapter.MemberFinder; import com.tiki.server.memberteammanager.adapter.MemberTeamManagerFinder; +import com.tiki.server.memberteammanager.entity.MemberTeamManager; import com.tiki.server.note.adapter.NoteDeleter; import com.tiki.server.note.adapter.NoteFinder; import com.tiki.server.note.adapter.NoteSaver; @@ -29,6 +31,7 @@ import java.time.LocalDateTime; import java.util.List; +import java.util.Optional; import java.util.stream.Collectors; import static com.tiki.server.common.Constants.INIT_NUM; @@ -50,12 +53,13 @@ public class NoteService { private final NoteDocumentManagerDeleter noteDocumentManagerDeleter; private final TimeBlockFinder timeBlockFinder; private final DocumentFinder documentFinder; + private final MemberFinder memberFinder; @Transactional public NoteCreateServiceResponse createNoteFree(final NoteFreeCreateServiceRequest request) { - String author = memberTeamManagerFinder.findByMemberIdAndTeamId(request.memberId(), request.teamId()).getName(); + memberTeamManagerFinder.findByMemberIdAndTeamIdOrElseThrow(request.memberId(), request.teamId()); String encryptedContents = ContentEncoder.encodeNoteFree(request.contents()); - Note note = createNote(NoteBase.of(request), author, encryptedContents, NoteType.FREE); + Note note = createNote(NoteBase.of(request), encryptedContents, NoteType.FREE); createNoteTimeBlockManagers(request.timeBlockIds(), note.getId()); createNoteDocumentManagers(request.documentIds(), note.getId()); return NoteCreateServiceResponse.from(note.getId()); @@ -63,14 +67,14 @@ public NoteCreateServiceResponse createNoteFree(final NoteFreeCreateServiceReque @Transactional public NoteCreateServiceResponse createNoteTemplate(final NoteTemplateCreateServiceRequest request) { - String author = memberTeamManagerFinder.findByMemberIdAndTeamId(request.memberId(), request.teamId()).getName(); + memberTeamManagerFinder.findByMemberIdAndTeamIdOrElseThrow(request.memberId(), request.teamId()); String encryptedContents = ContentEncoder.encodeNoteTemplate( request.answerWhatActivity(), request.answerHowToPrepare(), request.answerWhatIsDisappointedThing(), request.answerHowToFix() ); - Note note = createNote(NoteBase.of(request), author, encryptedContents, NoteType.TEMPLATE); + Note note = createNote(NoteBase.of(request), encryptedContents, NoteType.TEMPLATE); createNoteTimeBlockManagers(request.timeBlockIds(), note.getId()); createNoteDocumentManagers(request.documentIds(), note.getId()); return NoteCreateServiceResponse.from(note.getId()); @@ -79,7 +83,7 @@ public NoteCreateServiceResponse createNoteTemplate(final NoteTemplateCreateServ @Transactional public void updateNoteFree(final NoteFreeUpdateServiceRequest request) { Note note = noteFinder.findById(request.noteId()); - memberTeamManagerFinder.findByMemberIdAndTeamId(request.memberId(), request.teamId()); + memberTeamManagerFinder.findByMemberIdAndTeamIdOrElseThrow(request.memberId(), request.teamId()); String encryptedContents = ContentEncoder.encodeNoteFree(request.contents()); note.updateValue( request.memberId(), @@ -98,7 +102,7 @@ public void updateNoteFree(final NoteFreeUpdateServiceRequest request) { @Transactional public void updateNoteTemplate(final NoteTemplateUpdateServiceRequest request) { Note note = noteFinder.findById(request.noteId()); - memberTeamManagerFinder.findByMemberIdAndTeamId(request.memberId(), request.teamId()); + memberTeamManagerFinder.findByMemberIdAndTeamIdOrElseThrow(request.memberId(), request.teamId()); String encryptedContents = ContentEncoder.encodeNoteTemplate( request.answerWhatActivity(), request.answerHowToPrepare(), @@ -121,7 +125,7 @@ public void updateNoteTemplate(final NoteTemplateUpdateServiceRequest request) { @Transactional public void deleteNotes(final List noteIds, final long teamId, final long memberId) { - memberTeamManagerFinder.findByMemberIdAndTeamId(memberId, teamId); + memberTeamManagerFinder.findByMemberIdAndTeamIdOrElseThrow(memberId, teamId); noteDocumentManagerDeleter.deleteByNoteIds(noteIds); noteTimeBlockManagerDeleter.noteTimeBlockManagerDeleteByIds(noteIds); noteDeleter.deleteNoteByIds(noteIds); @@ -133,23 +137,37 @@ public NoteListGetServiceResponse getNote( final LocalDateTime createdAt, final SortOrder sortOrder ) { - memberTeamManagerFinder.findByMemberIdAndTeamId(memberId, teamId); + memberTeamManagerFinder.findByMemberIdAndTeamIdOrElseThrow(memberId, teamId); PageRequest pageable = PageRequest.of(INIT_NUM, PAGE_SIZE); List noteList = getNotes(createdAt, sortOrder, pageable); List noteGetResponseList = noteList.stream() - .map(NoteGetResponse::of) + .map(note -> { + Optional memberTeamManager = memberTeamManagerFinder.findByMemberIdAndTeamId(note.getMemberId(), teamId); + return NoteGetResponse.of(note, memberTeamManager.isEmpty() ? "알 수 없음" : memberTeamManager.get().getName()); + }) .collect(Collectors.toList()); return new NoteListGetServiceResponse(noteGetResponseList); } public NoteDetailGetServiceResponse getNoteDetail(final long teamId, final long memberId, final long noteId) { - memberTeamManagerFinder.findByMemberIdAndTeamId(memberId, teamId); + memberTeamManagerFinder.findByMemberIdAndTeamIdOrElseThrow(memberId, teamId); Note note = noteFinder.findById(noteId); + Optional memberTeamManager = memberTeamManagerFinder.findByMemberIdAndTeamId(note.getMemberId(), teamId); List documentList = getDocumentListMappedByNote(noteId); List timeBlockList = getTimeBlocksMappedByNote(noteId); return note.getNoteType() == NoteType.FREE ? - NoteFreeDetailGetServiceResponse.of(note, documentList, timeBlockList) : - NoteTemplateDetailGetServiceResponse.of(note, documentList, timeBlockList); + NoteFreeDetailGetServiceResponse.of( + note, + memberTeamManager.isEmpty() ? "알 수 없음" : memberTeamManager.get().getName(), + documentList, + timeBlockList + ) : + NoteTemplateDetailGetServiceResponse.of( + note, + memberTeamManager.isEmpty() ? "알 수 없음" : memberTeamManager.get().getName(), + documentList, + timeBlockList + ); } private void updateNoteDocumentManager(final List documentIds, final long noteId) { @@ -205,11 +223,10 @@ private List getDocumentListMappedByNote(final long noteId) { .toList(); } - private Note createNote(final NoteBase request, final String author, final String encryptedContents, final NoteType noteType) { + private Note createNote(final NoteBase request, final String encryptedContents, final NoteType noteType) { return noteSaver.createNote( Note.of( request.title(), - author, request.complete(), request.startDate(), request.endDate(), From deb0725dbb12e8e3c51cecff3835896172422d0b Mon Sep 17 00:00:00 2001 From: paragon0107 Date: Thu, 14 Nov 2024 01:20:05 +0900 Subject: [PATCH 6/9] =?UTF-8?q?[CHORE]=20=EB=A9=A4=EB=B2=84=EA=B0=80=20?= =?UTF-8?q?=ED=8C=80=EC=97=90=20=EC=86=8D=ED=95=98=EB=8A=94=EC=A7=80=20?= =?UTF-8?q?=ED=99=95=EC=9D=B8=ED=95=98=EB=8A=94=20=EB=A9=94=EC=84=9C?= =?UTF-8?q?=EB=93=9C=20=EB=84=A4=EC=9D=B4=EB=B0=8D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../server/document/service/DocumentService.java | 6 +++--- .../tiki/server/folder/service/FolderService.java | 2 +- .../adapter/MemberTeamManagerFinder.java | 15 ++++++++++----- .../com/tiki/server/team/service/TeamService.java | 2 +- .../timeblock/service/TimeBlockService.java | 8 ++++---- 5 files changed, 19 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/tiki/server/document/service/DocumentService.java b/src/main/java/com/tiki/server/document/service/DocumentService.java index 18017734..c74a155a 100644 --- a/src/main/java/com/tiki/server/document/service/DocumentService.java +++ b/src/main/java/com/tiki/server/document/service/DocumentService.java @@ -32,7 +32,7 @@ public class DocumentService { private final MemberTeamManagerFinder memberTeamManagerFinder; public DocumentsGetResponse getAllDocuments(long memberId, long teamId, String type) { - MemberTeamManager memberTeamManager = memberTeamManagerFinder.findByMemberIdAndTeamId(memberId, teamId); + MemberTeamManager memberTeamManager = memberTeamManagerFinder.findByMemberIdAndTeamIdOrElseThrow(memberId, teamId); Position accessiblePosition = Position.getAccessiblePosition(type); memberTeamManager.checkMemberAccessible(accessiblePosition); return getAllDocumentsByType(teamId, accessiblePosition); @@ -40,7 +40,7 @@ public DocumentsGetResponse getAllDocuments(long memberId, long teamId, String t @Transactional public void deleteDocument(long memberId, long teamId, long documentId) { - MemberTeamManager memberTeamManager = memberTeamManagerFinder.findByMemberIdAndTeamId(memberId, teamId); + MemberTeamManager memberTeamManager = memberTeamManagerFinder.findByMemberIdAndTeamIdOrElseThrow(memberId, teamId); Document document = documentFinder.findByIdWithTimeBlock(documentId); memberTeamManager.checkMemberAccessible(document.getTimeBlock().getAccessiblePosition()); documentDeleter.delete(document); @@ -48,7 +48,7 @@ public void deleteDocument(long memberId, long teamId, long documentId) { @Transactional public DocumentsCreateResponse createDocuments(long memberId, long teamId, DocumentsCreateRequest request) { - memberTeamManagerFinder.findByMemberIdAndTeamId(memberId, teamId); + memberTeamManagerFinder.findByMemberIdAndTeamIdOrElseThrow(memberId, teamId); checkFolderIsExist(request.folderId()); List documentIds = request.documents().stream() .map(document -> saveDocument(teamId, request.folderId(), document).getId()) diff --git a/src/main/java/com/tiki/server/folder/service/FolderService.java b/src/main/java/com/tiki/server/folder/service/FolderService.java index 6b084a6d..68458be2 100644 --- a/src/main/java/com/tiki/server/folder/service/FolderService.java +++ b/src/main/java/com/tiki/server/folder/service/FolderService.java @@ -24,7 +24,7 @@ public class FolderService { @Transactional public FolderCreateResponse create(long memberId, long teamId, FolderCreateRequest request) { // 같은 레벨 파일명 중복 방지 로직 추가 필요 - memberTeamManagerFinder.findByMemberIdAndTeamId(memberId, teamId); + memberTeamManagerFinder.findByMemberIdAndTeamIdOrElseThrow(memberId, teamId); Folder parentFolder = getFolder(request.parentId()); Folder folder = folderSaver.save(new Folder(request.name(), parentFolder, teamId)); return FolderCreateResponse.from(folder.getId()); diff --git a/src/main/java/com/tiki/server/memberteammanager/adapter/MemberTeamManagerFinder.java b/src/main/java/com/tiki/server/memberteammanager/adapter/MemberTeamManagerFinder.java index 833457c1..84ff2bb4 100644 --- a/src/main/java/com/tiki/server/memberteammanager/adapter/MemberTeamManagerFinder.java +++ b/src/main/java/com/tiki/server/memberteammanager/adapter/MemberTeamManagerFinder.java @@ -10,23 +10,28 @@ import lombok.RequiredArgsConstructor; import java.util.List; +import java.util.Optional; @RepositoryAdapter @RequiredArgsConstructor public class MemberTeamManagerFinder { - private final MemberTeamManagerRepository teamManagerRepository; + private final MemberTeamManagerRepository memberTeamManagerRepository; - public MemberTeamManager findByMemberIdAndTeamId(long memberId, long teamId) { - return teamManagerRepository.findByMemberIdAndTeamId(memberId, teamId) + public MemberTeamManager findByMemberIdAndTeamIdOrElseThrow(long memberId, long teamId) { + return memberTeamManagerRepository.findByMemberIdAndTeamId(memberId, teamId) .orElseThrow(() -> new MemberTeamManagerException(INVALID_MEMBER_TEAM_MANAGER)); } + public Optional findByMemberIdAndTeamId(final long memberId, final long teamId) { + return memberTeamManagerRepository.findByMemberIdAndTeamId(memberId, teamId); + } + public List findBelongTeamByMemberId(long memberId) { - return teamManagerRepository.findAllBelongTeamByMemberId(memberId).stream().toList(); + return memberTeamManagerRepository.findAllBelongTeamByMemberId(memberId).stream().toList(); } public List findAllByTeamId(long teamId) { - return teamManagerRepository.findAllByTeamId(teamId); + return memberTeamManagerRepository.findAllByTeamId(teamId); } } diff --git a/src/main/java/com/tiki/server/team/service/TeamService.java b/src/main/java/com/tiki/server/team/service/TeamService.java index 0cebe1e4..89b75c59 100644 --- a/src/main/java/com/tiki/server/team/service/TeamService.java +++ b/src/main/java/com/tiki/server/team/service/TeamService.java @@ -91,7 +91,7 @@ private MemberTeamManager createMemberTeamManager(Member member, Team team, Posi } private void checkIsAdmin(long memberId, long teamId) { - MemberTeamManager memberTeamManager = memberTeamManagerFinder.findByMemberIdAndTeamId(memberId, teamId); + MemberTeamManager memberTeamManager = memberTeamManagerFinder.findByMemberIdAndTeamIdOrElseThrow(memberId, teamId); if (!memberTeamManager.getPosition().equals(ADMIN)) { throw new TeamException(INVALID_AUTHORIZATION_DELETE); } diff --git a/src/main/java/com/tiki/server/timeblock/service/TimeBlockService.java b/src/main/java/com/tiki/server/timeblock/service/TimeBlockService.java index c0b29131..8e74a5b7 100644 --- a/src/main/java/com/tiki/server/timeblock/service/TimeBlockService.java +++ b/src/main/java/com/tiki/server/timeblock/service/TimeBlockService.java @@ -48,7 +48,7 @@ public TimeBlockCreateResponse createTimeBlock( TimeBlockCreateRequest request ) { Team team = teamFinder.findById(teamId); - MemberTeamManager memberTeamManager = memberTeamManagerFinder.findByMemberIdAndTeamId(memberId, teamId); + MemberTeamManager memberTeamManager = memberTeamManagerFinder.findByMemberIdAndTeamIdOrElseThrow(memberId, teamId); Position accessiblePosition = Position.getAccessiblePosition(type); memberTeamManager.checkMemberAccessible(accessiblePosition); TimeBlock timeBlock = saveTimeBlock(team, accessiblePosition, request); @@ -58,7 +58,7 @@ public TimeBlockCreateResponse createTimeBlock( public TimelineGetResponse getTimeline(long memberId, long teamId, String type, String date) { Team team = teamFinder.findById(teamId); - MemberTeamManager memberTeamManager = memberTeamManagerFinder.findByMemberIdAndTeamId(memberId, teamId); + MemberTeamManager memberTeamManager = memberTeamManagerFinder.findByMemberIdAndTeamIdOrElseThrow(memberId, teamId); Position accessiblePosition = Position.getAccessiblePosition(type); memberTeamManager.checkMemberAccessible(accessiblePosition); List timeBlocks = timeBlockFinder.findByTeamAndAccessiblePositionAndDate( @@ -67,7 +67,7 @@ public TimelineGetResponse getTimeline(long memberId, long teamId, String type, } public TimeBlockDetailGetResponse getTimeBlockDetail(long memberId, long teamId, long timeBlockId) { - MemberTeamManager memberTeamManager = memberTeamManagerFinder.findByMemberIdAndTeamId(memberId, teamId); + MemberTeamManager memberTeamManager = memberTeamManagerFinder.findByMemberIdAndTeamIdOrElseThrow(memberId, teamId); TimeBlock timeBlock = timeBlockFinder.findByIdOrElseThrow(timeBlockId); memberTeamManager.checkMemberAccessible(timeBlock.getAccessiblePosition()); List documents = documentFinder.findAllByTimeBlockId(timeBlockId); @@ -76,7 +76,7 @@ public TimeBlockDetailGetResponse getTimeBlockDetail(long memberId, long teamId, @Transactional public void deleteTimeBlock(long memberId, long teamId, long timeBlockId) { - MemberTeamManager memberTeamManager = memberTeamManagerFinder.findByMemberIdAndTeamId(memberId, teamId); + MemberTeamManager memberTeamManager = memberTeamManagerFinder.findByMemberIdAndTeamIdOrElseThrow(memberId, teamId); TimeBlock timeBlock = timeBlockFinder.findByIdOrElseThrow(timeBlockId); memberTeamManager.checkMemberAccessible(timeBlock.getAccessiblePosition()); documentDeleter.deleteAllByTimeBlockId(timeBlock.getId()); From 4614f1a7f26dd21701ce2608eae33dd43b98abca Mon Sep 17 00:00:00 2001 From: paragon0107 Date: Thu, 14 Nov 2024 01:20:27 +0900 Subject: [PATCH 7/9] =?UTF-8?q?[CHORE]=20author=20=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/response/NoteFreeDetailGetServiceResponse.java | 3 ++- .../server/note/service/dto/response/NoteGetResponse.java | 4 ++-- .../dto/response/NoteTemplateDetailGetServiceResponse.java | 3 ++- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/tiki/server/note/service/dto/response/NoteFreeDetailGetServiceResponse.java b/src/main/java/com/tiki/server/note/service/dto/response/NoteFreeDetailGetServiceResponse.java index d26e0ac3..463d4136 100644 --- a/src/main/java/com/tiki/server/note/service/dto/response/NoteFreeDetailGetServiceResponse.java +++ b/src/main/java/com/tiki/server/note/service/dto/response/NoteFreeDetailGetServiceResponse.java @@ -27,6 +27,7 @@ public record NoteFreeDetailGetServiceResponse( public static NoteFreeDetailGetServiceResponse of( final Note note, + final String author, final List documentList, final List timeBlockList ) { @@ -34,7 +35,7 @@ public static NoteFreeDetailGetServiceResponse of( note.getId(), NoteType.FREE, note.getTitle(), - note.getAuthor(), + author, note.getStartDate(), note.getEndDate(), note.isComplete(), diff --git a/src/main/java/com/tiki/server/note/service/dto/response/NoteGetResponse.java b/src/main/java/com/tiki/server/note/service/dto/response/NoteGetResponse.java index 1b64ecdc..405ed869 100644 --- a/src/main/java/com/tiki/server/note/service/dto/response/NoteGetResponse.java +++ b/src/main/java/com/tiki/server/note/service/dto/response/NoteGetResponse.java @@ -15,13 +15,13 @@ public record NoteGetResponse( LocalDateTime lastUpdatedAt ) { - public static NoteGetResponse of(final Note note) { + public static NoteGetResponse of(final Note note, final String author) { return new NoteGetResponse( note.getId(), note.getTitle(), note.getStartDate(), note.getEndDate(), - note.getAuthor(), + author, note.isComplete(), note.getUpdatedAt() ); diff --git a/src/main/java/com/tiki/server/note/service/dto/response/NoteTemplateDetailGetServiceResponse.java b/src/main/java/com/tiki/server/note/service/dto/response/NoteTemplateDetailGetServiceResponse.java index 4e86e7c2..64077565 100644 --- a/src/main/java/com/tiki/server/note/service/dto/response/NoteTemplateDetailGetServiceResponse.java +++ b/src/main/java/com/tiki/server/note/service/dto/response/NoteTemplateDetailGetServiceResponse.java @@ -30,6 +30,7 @@ public record NoteTemplateDetailGetServiceResponse( public static NoteTemplateDetailGetServiceResponse of( final Note note, + final String author, final List documentList, final List timeBlockList ) { @@ -38,7 +39,7 @@ public static NoteTemplateDetailGetServiceResponse of( note.getId(), NoteType.TEMPLATE, note.getTitle(), - note.getAuthor(), + author, note.getStartDate(), note.getEndDate(), note.isComplete(), From cd6cc071c5aea6d8f5b22980f2c328c8115b3911 Mon Sep 17 00:00:00 2001 From: paragon0107 Date: Fri, 15 Nov 2024 11:52:16 +0900 Subject: [PATCH 8/9] =?UTF-8?q?[CHORE]=20Note=EC=9D=98=20=EB=A9=A4?= =?UTF-8?q?=EB=B2=84=20=EC=95=84=EC=9D=B4=EB=94=94=20=EB=9E=98=ED=8D=BC=20?= =?UTF-8?q?=ED=81=B4=EB=9E=98=EC=8A=A4=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 --- src/main/java/com/tiki/server/note/entity/Note.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/tiki/server/note/entity/Note.java b/src/main/java/com/tiki/server/note/entity/Note.java index 18999ad8..1ef479e9 100644 --- a/src/main/java/com/tiki/server/note/entity/Note.java +++ b/src/main/java/com/tiki/server/note/entity/Note.java @@ -36,7 +36,7 @@ public class Note extends BaseTime { private LocalDate endDate; - private long memberId; + private Long memberId; private long teamId; From 02f127a4a699dabaf2c3dc37294d0c7fe321ae03 Mon Sep 17 00:00:00 2001 From: paragon0107 Date: Fri, 15 Nov 2024 11:52:50 +0900 Subject: [PATCH 9/9] =?UTF-8?q?[CHORE]=20Note=EC=9D=98=20=EC=9E=91?= =?UTF-8?q?=EC=84=B1=EC=9E=90=20=EB=A7=A4=ED=95=91=20=EB=A9=94=EC=84=9C?= =?UTF-8?q?=EB=93=9C=20=EB=A1=9C=EC=A7=81=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tiki/server/note/service/NoteService.java | 35 ++++++++----------- 1 file changed, 14 insertions(+), 21 deletions(-) diff --git a/src/main/java/com/tiki/server/note/service/NoteService.java b/src/main/java/com/tiki/server/note/service/NoteService.java index 8fbca57a..3f5e3e89 100644 --- a/src/main/java/com/tiki/server/note/service/NoteService.java +++ b/src/main/java/com/tiki/server/note/service/NoteService.java @@ -140,34 +140,27 @@ public NoteListGetServiceResponse getNote( memberTeamManagerFinder.findByMemberIdAndTeamIdOrElseThrow(memberId, teamId); PageRequest pageable = PageRequest.of(INIT_NUM, PAGE_SIZE); List noteList = getNotes(createdAt, sortOrder, pageable); - List noteGetResponseList = noteList.stream() - .map(note -> { - Optional memberTeamManager = memberTeamManagerFinder.findByMemberIdAndTeamId(note.getMemberId(), teamId); - return NoteGetResponse.of(note, memberTeamManager.isEmpty() ? "알 수 없음" : memberTeamManager.get().getName()); - }) - .collect(Collectors.toList()); - return new NoteListGetServiceResponse(noteGetResponseList); + List noteGetResponses = noteList.stream() + .map(note -> NoteGetResponse.of(note, getMemberName(note.getMemberId(), teamId))) + .toList(); + return new NoteListGetServiceResponse(noteGetResponses); } public NoteDetailGetServiceResponse getNoteDetail(final long teamId, final long memberId, final long noteId) { memberTeamManagerFinder.findByMemberIdAndTeamIdOrElseThrow(memberId, teamId); Note note = noteFinder.findById(noteId); - Optional memberTeamManager = memberTeamManagerFinder.findByMemberIdAndTeamId(note.getMemberId(), teamId); List documentList = getDocumentListMappedByNote(noteId); List timeBlockList = getTimeBlocksMappedByNote(noteId); - return note.getNoteType() == NoteType.FREE ? - NoteFreeDetailGetServiceResponse.of( - note, - memberTeamManager.isEmpty() ? "알 수 없음" : memberTeamManager.get().getName(), - documentList, - timeBlockList - ) : - NoteTemplateDetailGetServiceResponse.of( - note, - memberTeamManager.isEmpty() ? "알 수 없음" : memberTeamManager.get().getName(), - documentList, - timeBlockList - ); + String memberName = getMemberName(note.getMemberId(), teamId); + return note.getNoteType() == NoteType.FREE + ? NoteFreeDetailGetServiceResponse.of(note, memberName, documentList, timeBlockList) + : NoteTemplateDetailGetServiceResponse.of(note, memberName, documentList, timeBlockList); + } + + private String getMemberName(final Long noteMemberId, final long teamId) { + return Optional.ofNullable(noteMemberId) + .map(id -> memberTeamManagerFinder.findByMemberIdAndTeamIdOrElseThrow(id, teamId).getName()) + .orElse("알 수 없음"); } private void updateNoteDocumentManager(final List documentIds, final long noteId) {