From bbc93437f347210cec9e4bfe254c64edcad82b91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9E=84=EB=8F=99=EC=9E=AC?= Date: Thu, 21 Aug 2025 21:26:04 +0900 Subject: [PATCH 1/2] =?UTF-8?q?feat/#327:=20Proceeding=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=EC=8B=9C=20=ED=8C=8C=EC=9D=BC=20=EC=9E=AC=EC=97=85?= =?UTF-8?q?=EB=A1=9C=EB=93=9C=20=EB=A1=9C=EC=A7=81=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/MeetingCommandServiceImpl.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) 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 68b0c15f..094be855 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 @@ -176,8 +176,22 @@ public void adjustProceeding(User user, Meeting meeting, MeetingRequestDTO.meeti if (!meeting.getCreator().getId().equals(user.getId()) && !foundUserWorkspace.getAuth().equals(Auth.ADMIN)) { throw new MemberHandler(ErrorStatus.MEMBER_NO_AUTHORITY); } + String editedProceeding = newProceeding.getProceeding(); + meeting.updateProceeding(editedProceeding); + try { + // 생성된 PDF를 S3에 업로드 + String pdfKey = markdownFileUploader.createOrUpdatePdf(editedProceeding, "meeting/pdf", meeting.getProceedingPdfKeyName(), meeting.getTitle()); + String wordKey = markdownFileUploader.createOrUpdateWord(editedProceeding, "meeting/word", meeting.getProceedingWordKeyName(), meeting.getTitle()); + + // 썸네일 생성 및 업데이트 + String newThumbnailKey = markdownFileUploader.createOrUpdateThumbnail(pdfKey, "meeting" + meeting.getId(), meeting.getThumbnailKeyName()); + log.info("회의록 썸네일 생성/업데이트 완료. Key: {}", newThumbnailKey); + + } catch (Exception e) { + log.error("meetingId: {}의 PDF 또는 썸네일 생성/업로드 중 에러 발생", meeting.getId(), e); + } + - meeting.updateProceeding(newProceeding.getProceeding()); meetingRepository.save(meeting); } From 46f3a458d4fdf8fbf2b3be62281676b204b30ef6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9E=84=EB=8F=99=EC=9E=AC?= Date: Thu, 21 Aug 2025 21:48:25 +0900 Subject: [PATCH 2/2] =?UTF-8?q?feat/#327:=20Proceeding=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=20=EC=98=88=EC=99=B8=EC=B2=98=EB=A6=AC=20=EB=A1=9C?= =?UTF-8?q?=EC=A7=81=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../meeting/service/MeetingCommandServiceImpl.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) 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 094be855..82229b57 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 @@ -169,15 +169,17 @@ public void deleteMeeting(User user, Meeting meeting) { @Override @Transactional public void adjustProceeding(User user, Meeting meeting, MeetingRequestDTO.meetingProceedingRequest newProceeding){ + Meeting foundMeeting = meetingRepository.findById(meeting.getId()) + .orElseThrow(() -> new MeetingHandler(ErrorStatus.MEETING_NOT_FOUND)); - UserWorkspace foundUserWorkspace = userWorkspaceRepository.findByUserIdAndWorkspaceId(user.getId(), meeting.getWorkspace().getId()) + UserWorkspace foundUserWorkspace = userWorkspaceRepository.findByUserIdAndWorkspaceId(user.getId(), foundMeeting.getWorkspace().getId()) .orElseThrow(() -> new UserWorkspaceHandler(ErrorStatus.USER_WORKSPACE_NOT_FOUND)); - if (!meeting.getCreator().getId().equals(user.getId()) && !foundUserWorkspace.getAuth().equals(Auth.ADMIN)) { + if (!foundMeeting.getCreator().getId().equals(user.getId()) && !foundUserWorkspace.getAuth().equals(Auth.ADMIN)) { throw new MemberHandler(ErrorStatus.MEMBER_NO_AUTHORITY); } String editedProceeding = newProceeding.getProceeding(); - meeting.updateProceeding(editedProceeding); + foundMeeting.updateProceeding(editedProceeding); try { // 생성된 PDF를 S3에 업로드 String pdfKey = markdownFileUploader.createOrUpdatePdf(editedProceeding, "meeting/pdf", meeting.getProceedingPdfKeyName(), meeting.getTitle()); @@ -189,11 +191,9 @@ public void adjustProceeding(User user, Meeting meeting, MeetingRequestDTO.meeti } catch (Exception e) { log.error("meetingId: {}의 PDF 또는 썸네일 생성/업로드 중 에러 발생", meeting.getId(), e); + throw new RuntimeException("파일 갱신 중 오류가 발생했습니다.", e); } - - meetingRepository.save(meeting); - } @Override