diff --git a/src/main/java/com/haru/api/domain/lastOpened/service/UserDocumentLastOpenedService.java b/src/main/java/com/haru/api/domain/lastOpened/service/UserDocumentLastOpenedService.java index 109ca3c3..0a8bee8c 100644 --- a/src/main/java/com/haru/api/domain/lastOpened/service/UserDocumentLastOpenedService.java +++ b/src/main/java/com/haru/api/domain/lastOpened/service/UserDocumentLastOpenedService.java @@ -18,4 +18,6 @@ public interface UserDocumentLastOpenedService { void updateRecordsForWorkspaceUsers(Documentable document, TitleHolder titleHolder); void updateRecordsTitleAndThumbnailForWorkspaceUsers(List usersInWorkspace, Documentable documentable, TitleHolder titleHolder); + + void updateRecordsThumbnailForWorkspaceUsers(List usersInWorkspace, Documentable documentable); } diff --git a/src/main/java/com/haru/api/domain/lastOpened/service/UserDocumentLastOpenedServiceImpl.java b/src/main/java/com/haru/api/domain/lastOpened/service/UserDocumentLastOpenedServiceImpl.java index a2ea7bfa..dee6ad1b 100644 --- a/src/main/java/com/haru/api/domain/lastOpened/service/UserDocumentLastOpenedServiceImpl.java +++ b/src/main/java/com/haru/api/domain/lastOpened/service/UserDocumentLastOpenedServiceImpl.java @@ -127,4 +127,17 @@ public void updateRecordsTitleAndThumbnailForWorkspaceUsers(List usersInWo } } + @Override + @Transactional + public void updateRecordsThumbnailForWorkspaceUsers(List usersInWorkspace, Documentable documentable) { + // 해당 문서 id, 문서 타입에 해당하는 last opened 튜플 검색 + List recordsToUpdate = userDocumentLastOpenedRepository.findByDocumentIdAndDocumentType(documentable.getId(), documentable.getDocumentType()); + + if (!recordsToUpdate.isEmpty()) { + for (UserDocumentLastOpened record : recordsToUpdate) { + record.updateThumbnailKeyName(documentable.getThumbnailKeyName()); + } + } + } + } diff --git a/src/main/java/com/haru/api/domain/meeting/service/MeetingCommandServiceImpl.java b/src/main/java/com/haru/api/domain/meeting/service/MeetingCommandServiceImpl.java index afb1528c..3c5827e6 100644 --- a/src/main/java/com/haru/api/domain/meeting/service/MeetingCommandServiceImpl.java +++ b/src/main/java/com/haru/api/domain/meeting/service/MeetingCommandServiceImpl.java @@ -195,6 +195,10 @@ public void adjustProceeding(User user, Meeting meeting, MeetingRequestDTO.meeti String newThumbnailKey = markdownFileUploader.createOrUpdateThumbnail(pdfKey, "meeting" + meeting.getId(), meeting.getThumbnailKeyName()); log.info("회의록 썸네일 생성/업데이트 완료. Key: {}", newThumbnailKey); + // Meeting AI 회의록 수정 시 워크스페이스에 속해있는 모든 유저에 대해 썸네일 이미지 키 수정 + foundMeeting.initProceedingPdfKeyName(newThumbnailKey); + List usersInWorkspace = userWorkspaceRepository.findUsersByWorkspaceId(foundMeeting.getWorkspace().getId()); + userDocumentLastOpenedService.updateRecordsThumbnailForWorkspaceUsers(usersInWorkspace, foundMeeting); } catch (Exception e) { log.error("meetingId: {}의 PDF 또는 썸네일 생성/업로드 중 에러 발생", meeting.getId(), e); throw new RuntimeException("파일 갱신 중 오류가 발생했습니다.", e);