From fb861a4e025d4f3885f8a3c7a48ac98b3343c337 Mon Sep 17 00:00:00 2001 From: Jinho622 Date: Fri, 22 Aug 2025 02:19:38 +0900 Subject: [PATCH] =?UTF-8?q?feat/#345:=20AI=20=ED=9A=8C=EC=9D=98=EB=A1=9D?= =?UTF-8?q?=20=EC=88=98=EC=A0=95=20=EC=8B=9C=20=EC=B5=9C=EA=B7=BC=20?= =?UTF-8?q?=EB=AC=B8=EC=84=9C=20=EC=A1=B0=ED=9A=8C=EC=97=90=20=EC=97=85?= =?UTF-8?q?=EB=8D=B0=EC=9D=B4=ED=8A=B8=20=EB=90=9C=20=EC=8D=B8=EB=84=A4?= =?UTF-8?q?=EC=9D=BC=20=EB=B0=98=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/UserDocumentLastOpenedService.java | 2 ++ .../service/UserDocumentLastOpenedServiceImpl.java | 13 +++++++++++++ .../meeting/service/MeetingCommandServiceImpl.java | 4 ++++ 3 files changed, 19 insertions(+) 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);