From 3389d1f2ef132a140e9029a4f0d6b4ef4d767c2d Mon Sep 17 00:00:00 2001 From: xxoznge <20201049@sungshin.ac.kr> Date: Mon, 12 Feb 2024 14:03:15 +0900 Subject: [PATCH 1/3] =?UTF-8?q?:truck:=20rename:=20=EB=B3=B4=EA=B3=A0?= =?UTF-8?q?=EC=84=9C=20request,=20response=20=ED=8F=B4=EB=8D=94=20?= =?UTF-8?q?=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/report/controller/ReportController.java | 10 +++++----- .../report/dto/{ => request}/ReportCreateRequest.java | 2 +- .../report/dto/{ => request}/ReportUpdateRequest.java | 2 +- .../dto/{ => response}/ReportAttachmentResponse.java | 3 +-- .../dto/{ => response}/ReportCreateResponse.java | 2 +- .../report/dto/{ => response}/ReportGetResponse.java | 4 +--- .../report/dto/{ => response}/ReportImageResponse.java | 2 +- .../dto/{ => response}/ReportUpdateResponse.java | 2 +- .../domain/report/service/ReportQueryService.java | 4 +--- .../sponusbe/domain/report/service/ReportService.java | 8 ++++---- 10 files changed, 17 insertions(+), 22 deletions(-) rename src/main/java/com/sponus/sponusbe/domain/report/dto/{ => request}/ReportCreateRequest.java (91%) rename src/main/java/com/sponus/sponusbe/domain/report/dto/{ => request}/ReportUpdateRequest.java (57%) rename src/main/java/com/sponus/sponusbe/domain/report/dto/{ => response}/ReportAttachmentResponse.java (79%) rename src/main/java/com/sponus/sponusbe/domain/report/dto/{ => response}/ReportCreateResponse.java (88%) rename src/main/java/com/sponus/sponusbe/domain/report/dto/{ => response}/ReportGetResponse.java (81%) rename src/main/java/com/sponus/sponusbe/domain/report/dto/{ => response}/ReportImageResponse.java (86%) rename src/main/java/com/sponus/sponusbe/domain/report/dto/{ => response}/ReportUpdateResponse.java (88%) diff --git a/src/main/java/com/sponus/sponusbe/domain/report/controller/ReportController.java b/src/main/java/com/sponus/sponusbe/domain/report/controller/ReportController.java index 8c60030e..dba03586 100644 --- a/src/main/java/com/sponus/sponusbe/domain/report/controller/ReportController.java +++ b/src/main/java/com/sponus/sponusbe/domain/report/controller/ReportController.java @@ -13,11 +13,11 @@ import com.sponus.sponusbe.auth.annotation.AuthOrganization; import com.sponus.sponusbe.domain.organization.entity.Organization; -import com.sponus.sponusbe.domain.report.dto.ReportCreateRequest; -import com.sponus.sponusbe.domain.report.dto.ReportCreateResponse; -import com.sponus.sponusbe.domain.report.dto.ReportGetResponse; -import com.sponus.sponusbe.domain.report.dto.ReportUpdateRequest; -import com.sponus.sponusbe.domain.report.dto.ReportUpdateResponse; +import com.sponus.sponusbe.domain.report.dto.request.ReportCreateRequest; +import com.sponus.sponusbe.domain.report.dto.response.ReportCreateResponse; +import com.sponus.sponusbe.domain.report.dto.response.ReportGetResponse; +import com.sponus.sponusbe.domain.report.dto.request.ReportUpdateRequest; +import com.sponus.sponusbe.domain.report.dto.response.ReportUpdateResponse; import com.sponus.sponusbe.domain.report.service.ReportQueryService; import com.sponus.sponusbe.domain.report.service.ReportService; import com.sponus.sponusbe.global.common.ApiResponse; diff --git a/src/main/java/com/sponus/sponusbe/domain/report/dto/ReportCreateRequest.java b/src/main/java/com/sponus/sponusbe/domain/report/dto/request/ReportCreateRequest.java similarity index 91% rename from src/main/java/com/sponus/sponusbe/domain/report/dto/ReportCreateRequest.java rename to src/main/java/com/sponus/sponusbe/domain/report/dto/request/ReportCreateRequest.java index 85e2f5d7..639f4e87 100644 --- a/src/main/java/com/sponus/sponusbe/domain/report/dto/ReportCreateRequest.java +++ b/src/main/java/com/sponus/sponusbe/domain/report/dto/request/ReportCreateRequest.java @@ -1,4 +1,4 @@ -package com.sponus.sponusbe.domain.report.dto; +package com.sponus.sponusbe.domain.report.dto.request; import java.util.ArrayList; diff --git a/src/main/java/com/sponus/sponusbe/domain/report/dto/ReportUpdateRequest.java b/src/main/java/com/sponus/sponusbe/domain/report/dto/request/ReportUpdateRequest.java similarity index 57% rename from src/main/java/com/sponus/sponusbe/domain/report/dto/ReportUpdateRequest.java rename to src/main/java/com/sponus/sponusbe/domain/report/dto/request/ReportUpdateRequest.java index 6640162b..9ce5cc82 100644 --- a/src/main/java/com/sponus/sponusbe/domain/report/dto/ReportUpdateRequest.java +++ b/src/main/java/com/sponus/sponusbe/domain/report/dto/request/ReportUpdateRequest.java @@ -1,4 +1,4 @@ -package com.sponus.sponusbe.domain.report.dto; +package com.sponus.sponusbe.domain.report.dto.request; public record ReportUpdateRequest( String title, diff --git a/src/main/java/com/sponus/sponusbe/domain/report/dto/ReportAttachmentResponse.java b/src/main/java/com/sponus/sponusbe/domain/report/dto/response/ReportAttachmentResponse.java similarity index 79% rename from src/main/java/com/sponus/sponusbe/domain/report/dto/ReportAttachmentResponse.java rename to src/main/java/com/sponus/sponusbe/domain/report/dto/response/ReportAttachmentResponse.java index 457fe9c9..bf5678dd 100644 --- a/src/main/java/com/sponus/sponusbe/domain/report/dto/ReportAttachmentResponse.java +++ b/src/main/java/com/sponus/sponusbe/domain/report/dto/response/ReportAttachmentResponse.java @@ -1,7 +1,6 @@ -package com.sponus.sponusbe.domain.report.dto; +package com.sponus.sponusbe.domain.report.dto.response; import com.sponus.sponusbe.domain.report.entity.ReportAttachment; -import com.sponus.sponusbe.domain.report.entity.ReportImage; import lombok.Builder; diff --git a/src/main/java/com/sponus/sponusbe/domain/report/dto/ReportCreateResponse.java b/src/main/java/com/sponus/sponusbe/domain/report/dto/response/ReportCreateResponse.java similarity index 88% rename from src/main/java/com/sponus/sponusbe/domain/report/dto/ReportCreateResponse.java rename to src/main/java/com/sponus/sponusbe/domain/report/dto/response/ReportCreateResponse.java index 830236e4..d2a73b0c 100644 --- a/src/main/java/com/sponus/sponusbe/domain/report/dto/ReportCreateResponse.java +++ b/src/main/java/com/sponus/sponusbe/domain/report/dto/response/ReportCreateResponse.java @@ -1,4 +1,4 @@ -package com.sponus.sponusbe.domain.report.dto; +package com.sponus.sponusbe.domain.report.dto.response; import com.sponus.sponusbe.domain.report.entity.Report; diff --git a/src/main/java/com/sponus/sponusbe/domain/report/dto/ReportGetResponse.java b/src/main/java/com/sponus/sponusbe/domain/report/dto/response/ReportGetResponse.java similarity index 81% rename from src/main/java/com/sponus/sponusbe/domain/report/dto/ReportGetResponse.java rename to src/main/java/com/sponus/sponusbe/domain/report/dto/response/ReportGetResponse.java index 9d13cd0f..9b3ff65c 100644 --- a/src/main/java/com/sponus/sponusbe/domain/report/dto/ReportGetResponse.java +++ b/src/main/java/com/sponus/sponusbe/domain/report/dto/response/ReportGetResponse.java @@ -1,9 +1,7 @@ -package com.sponus.sponusbe.domain.report.dto; +package com.sponus.sponusbe.domain.report.dto.response; import java.util.List; -import com.sponus.sponusbe.domain.announcement.dto.response.AnnouncementImageResponse; -import com.sponus.sponusbe.domain.report.entity.QReportAttachment; import com.sponus.sponusbe.domain.report.entity.Report; import lombok.Builder; diff --git a/src/main/java/com/sponus/sponusbe/domain/report/dto/ReportImageResponse.java b/src/main/java/com/sponus/sponusbe/domain/report/dto/response/ReportImageResponse.java similarity index 86% rename from src/main/java/com/sponus/sponusbe/domain/report/dto/ReportImageResponse.java rename to src/main/java/com/sponus/sponusbe/domain/report/dto/response/ReportImageResponse.java index 0c3065cf..d08538c0 100644 --- a/src/main/java/com/sponus/sponusbe/domain/report/dto/ReportImageResponse.java +++ b/src/main/java/com/sponus/sponusbe/domain/report/dto/response/ReportImageResponse.java @@ -1,4 +1,4 @@ -package com.sponus.sponusbe.domain.report.dto; +package com.sponus.sponusbe.domain.report.dto.response; import com.sponus.sponusbe.domain.report.entity.ReportImage; diff --git a/src/main/java/com/sponus/sponusbe/domain/report/dto/ReportUpdateResponse.java b/src/main/java/com/sponus/sponusbe/domain/report/dto/response/ReportUpdateResponse.java similarity index 88% rename from src/main/java/com/sponus/sponusbe/domain/report/dto/ReportUpdateResponse.java rename to src/main/java/com/sponus/sponusbe/domain/report/dto/response/ReportUpdateResponse.java index 431453a8..c0fe80ac 100644 --- a/src/main/java/com/sponus/sponusbe/domain/report/dto/ReportUpdateResponse.java +++ b/src/main/java/com/sponus/sponusbe/domain/report/dto/response/ReportUpdateResponse.java @@ -1,4 +1,4 @@ -package com.sponus.sponusbe.domain.report.dto; +package com.sponus.sponusbe.domain.report.dto.response; import com.sponus.sponusbe.domain.report.entity.Report; diff --git a/src/main/java/com/sponus/sponusbe/domain/report/service/ReportQueryService.java b/src/main/java/com/sponus/sponusbe/domain/report/service/ReportQueryService.java index 0b191214..2f1abf0b 100644 --- a/src/main/java/com/sponus/sponusbe/domain/report/service/ReportQueryService.java +++ b/src/main/java/com/sponus/sponusbe/domain/report/service/ReportQueryService.java @@ -3,9 +3,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import com.sponus.sponusbe.domain.organization.entity.Organization; -import com.sponus.sponusbe.domain.report.dto.ReportCreateResponse; -import com.sponus.sponusbe.domain.report.dto.ReportGetResponse; +import com.sponus.sponusbe.domain.report.dto.response.ReportGetResponse; import com.sponus.sponusbe.domain.report.entity.Report; import com.sponus.sponusbe.domain.report.exception.ReportErrorCode; import com.sponus.sponusbe.domain.report.exception.ReportException; diff --git a/src/main/java/com/sponus/sponusbe/domain/report/service/ReportService.java b/src/main/java/com/sponus/sponusbe/domain/report/service/ReportService.java index efbb9f78..04597bf4 100644 --- a/src/main/java/com/sponus/sponusbe/domain/report/service/ReportService.java +++ b/src/main/java/com/sponus/sponusbe/domain/report/service/ReportService.java @@ -6,10 +6,10 @@ import org.springframework.web.multipart.MultipartFile; import com.sponus.sponusbe.domain.organization.entity.Organization; -import com.sponus.sponusbe.domain.report.dto.ReportCreateRequest; -import com.sponus.sponusbe.domain.report.dto.ReportCreateResponse; -import com.sponus.sponusbe.domain.report.dto.ReportUpdateRequest; -import com.sponus.sponusbe.domain.report.dto.ReportUpdateResponse; +import com.sponus.sponusbe.domain.report.dto.request.ReportCreateRequest; +import com.sponus.sponusbe.domain.report.dto.response.ReportCreateResponse; +import com.sponus.sponusbe.domain.report.dto.request.ReportUpdateRequest; +import com.sponus.sponusbe.domain.report.dto.response.ReportUpdateResponse; import com.sponus.sponusbe.domain.report.entity.Report; import com.sponus.sponusbe.domain.report.entity.ReportAttachment; import com.sponus.sponusbe.domain.report.entity.ReportImage; From 373cb841f52eeee2d4e68a67fd230e3cfc23e2d9 Mon Sep 17 00:00:00 2001 From: xxoznge <20201049@sungshin.ac.kr> Date: Mon, 12 Feb 2024 17:16:38 +0900 Subject: [PATCH 2/3] =?UTF-8?q?:sparkles:=20feat:=20=EB=B3=B4=EA=B3=A0?= =?UTF-8?q?=EC=84=9C=20=EA=B8=B0=EB=8A=A5=20=EC=95=8C=EB=9E=8C=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/FirebaseTestController.java | 2 +- .../response/NotificationSummaryResponse.java | 6 +++++ .../notification/entity/Notification.java | 7 +++++- .../notification/service/FirebaseService.java | 4 +++- .../propose/service/ProposeService.java | 2 +- .../report/controller/ReportController.java | 3 ++- .../dto/request/ReportCreateRequest.java | 4 +++- .../sponusbe/domain/report/entity/Report.java | 8 +++++++ .../domain/report/service/ReportService.java | 24 ++++++++++++++++++- 9 files changed, 53 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/sponus/sponusbe/domain/notification/controller/FirebaseTestController.java b/src/main/java/com/sponus/sponusbe/domain/notification/controller/FirebaseTestController.java index 7fc13b25..2f49b91e 100644 --- a/src/main/java/com/sponus/sponusbe/domain/notification/controller/FirebaseTestController.java +++ b/src/main/java/com/sponus/sponusbe/domain/notification/controller/FirebaseTestController.java @@ -26,7 +26,7 @@ public class FirebaseTestController { @PostMapping("/fcm") public String testNotification(@RequestBody NotificationTestRequest request, @AuthOrganization Organization organization) throws IOException { - firebaseService.sendMessageTo(organization, request.title(), request.body(), null, null); + firebaseService.sendMessageTo(organization, request.title(), request.body(), null, null, null); return "Notification test is successful !"; } } diff --git a/src/main/java/com/sponus/sponusbe/domain/notification/dto/response/NotificationSummaryResponse.java b/src/main/java/com/sponus/sponusbe/domain/notification/dto/response/NotificationSummaryResponse.java index 440f0416..32ea3f8e 100644 --- a/src/main/java/com/sponus/sponusbe/domain/notification/dto/response/NotificationSummaryResponse.java +++ b/src/main/java/com/sponus/sponusbe/domain/notification/dto/response/NotificationSummaryResponse.java @@ -1,8 +1,11 @@ package com.sponus.sponusbe.domain.notification.dto.response; +import static com.sponus.sponusbe.domain.report.entity.QReport.*; + import com.sponus.sponusbe.domain.announcement.entity.Announcement; import com.sponus.sponusbe.domain.notification.entity.Notification; import com.sponus.sponusbe.domain.propose.entity.Propose; +import com.sponus.sponusbe.domain.report.entity.Report; import lombok.Builder; @@ -14,11 +17,13 @@ public record NotificationSummaryResponse( Long organizationId, Long announcementId, Long proposeId, + Long reportId, boolean isRead ) { public static NotificationSummaryResponse from(Notification notification) { Announcement announcement = notification.getAnnouncement(); Propose propose = notification.getPropose(); + Report report = notification.getReport(); return NotificationSummaryResponse.builder() .id(notification.getId()) @@ -27,6 +32,7 @@ public static NotificationSummaryResponse from(Notification notification) { .organizationId(notification.getOrganization().getId()) .announcementId(announcement != null ? announcement.getId() : null) .proposeId(propose != null ? propose.getId() : null) + .reportId(report != null ? report.getId() : null) .isRead(notification.isRead()) .build(); } diff --git a/src/main/java/com/sponus/sponusbe/domain/notification/entity/Notification.java b/src/main/java/com/sponus/sponusbe/domain/notification/entity/Notification.java index 56bf406a..352b8c3d 100644 --- a/src/main/java/com/sponus/sponusbe/domain/notification/entity/Notification.java +++ b/src/main/java/com/sponus/sponusbe/domain/notification/entity/Notification.java @@ -7,6 +7,7 @@ import com.sponus.sponusbe.domain.announcement.entity.Announcement; import com.sponus.sponusbe.domain.organization.entity.Organization; import com.sponus.sponusbe.domain.propose.entity.Propose; +import com.sponus.sponusbe.domain.report.entity.Report; import jakarta.persistence.Column; import jakarta.persistence.ConstraintMode; @@ -62,7 +63,9 @@ public class Notification { @JoinColumn(name = "propose_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT)) private Propose propose; - // TODO 보고서 추가 + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "report_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT)) + private Report report; public void setOrganization(Organization organization) { this.organization = organization; @@ -76,6 +79,8 @@ public void setPropose(Propose propose) { this.propose = propose; } + public void setReport(Report report) {this.report = report;} + public void setRead(boolean read) { isRead = read; } diff --git a/src/main/java/com/sponus/sponusbe/domain/notification/service/FirebaseService.java b/src/main/java/com/sponus/sponusbe/domain/notification/service/FirebaseService.java index 1ed7b388..1e2496bb 100644 --- a/src/main/java/com/sponus/sponusbe/domain/notification/service/FirebaseService.java +++ b/src/main/java/com/sponus/sponusbe/domain/notification/service/FirebaseService.java @@ -18,6 +18,7 @@ import com.sponus.sponusbe.domain.notification.repository.NotificationRepository; import com.sponus.sponusbe.domain.organization.entity.Organization; import com.sponus.sponusbe.domain.propose.entity.Propose; +import com.sponus.sponusbe.domain.report.entity.Report; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -48,7 +49,7 @@ public class FirebaseService { private final RedisUtil redisUtil; public void sendMessageTo(Organization targetOrganization, String title, String body, Announcement announcement, - Propose propose) throws IOException { + Propose propose, Report report) throws IOException { String token = getFcmToken(targetOrganization.getEmail()); @@ -60,6 +61,7 @@ public void sendMessageTo(Organization targetOrganization, String title, String notification.setOrganization(targetOrganization); notification.setAnnouncement(announcement); notification.setPropose(propose); + notification.setReport(report); String message = makeFcmMessage(token, notificationRepository.save(notification)); diff --git a/src/main/java/com/sponus/sponusbe/domain/propose/service/ProposeService.java b/src/main/java/com/sponus/sponusbe/domain/propose/service/ProposeService.java index 38abe38d..75481e25 100644 --- a/src/main/java/com/sponus/sponusbe/domain/propose/service/ProposeService.java +++ b/src/main/java/com/sponus/sponusbe/domain/propose/service/ProposeService.java @@ -65,7 +65,7 @@ public ProposeCreateResponse createPropose( }); firebaseService.sendMessageTo(announcement.getWriter(), "제안서 도착", - authOrganization.getName() + " 담당자님이 제안서를 보냈습니다.", announcement, propose); + authOrganization.getName() + " 담당자님이 제안서를 보냈습니다.", announcement, propose, null); return new ProposeCreateResponse( proposeRepository.save(propose).getId() diff --git a/src/main/java/com/sponus/sponusbe/domain/report/controller/ReportController.java b/src/main/java/com/sponus/sponusbe/domain/report/controller/ReportController.java index dba03586..92acbb68 100644 --- a/src/main/java/com/sponus/sponusbe/domain/report/controller/ReportController.java +++ b/src/main/java/com/sponus/sponusbe/domain/report/controller/ReportController.java @@ -1,5 +1,6 @@ package com.sponus.sponusbe.domain.report.controller; +import java.io.IOException; import java.util.List; import org.springframework.web.bind.annotation.GetMapping; @@ -38,7 +39,7 @@ public ApiResponse createReport( @AuthOrganization Organization authOrganization, @RequestPart("request") @Valid ReportCreateRequest request, @RequestPart(value = "images") List images, - @RequestPart(value = "attachments") List attachments) { + @RequestPart(value = "attachments") List attachments) throws IOException { return ApiResponse.onSuccess( reportService.createReport( authOrganization, diff --git a/src/main/java/com/sponus/sponusbe/domain/report/dto/request/ReportCreateRequest.java b/src/main/java/com/sponus/sponusbe/domain/report/dto/request/ReportCreateRequest.java index 639f4e87..49c748d7 100644 --- a/src/main/java/com/sponus/sponusbe/domain/report/dto/request/ReportCreateRequest.java +++ b/src/main/java/com/sponus/sponusbe/domain/report/dto/request/ReportCreateRequest.java @@ -11,7 +11,8 @@ public record ReportCreateRequest( @NotNull(message = "[ERROR] 보고서 제목 입력은 필수 입니다.") String title, @NotNull(message = "[ERROR] 보고서 내용 입력은 필수 입니다.") - String content + String content, + Long proposeId ) { public Report toEntity(Organization writer) { @@ -19,6 +20,7 @@ public Report toEntity(Organization writer) { .writer(writer) .title(title) .content(content) + .propose(null) .reportAttachments(new ArrayList<>()) .build(); } diff --git a/src/main/java/com/sponus/sponusbe/domain/report/entity/Report.java b/src/main/java/com/sponus/sponusbe/domain/report/entity/Report.java index ccadf2aa..4deb05f6 100644 --- a/src/main/java/com/sponus/sponusbe/domain/report/entity/Report.java +++ b/src/main/java/com/sponus/sponusbe/domain/report/entity/Report.java @@ -7,6 +7,7 @@ import org.hibernate.annotations.DynamicUpdate; import com.sponus.sponusbe.domain.organization.entity.Organization; +import com.sponus.sponusbe.domain.propose.entity.Propose; import jakarta.persistence.CascadeType; import jakarta.persistence.Column; @@ -20,6 +21,7 @@ import jakarta.persistence.JoinColumn; import jakarta.persistence.ManyToOne; import jakarta.persistence.OneToMany; +import jakarta.persistence.OneToOne; import jakarta.persistence.Table; import lombok.AccessLevel; import lombok.AllArgsConstructor; @@ -52,6 +54,10 @@ public class Report { @JoinColumn(name = "organization_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT)) private Organization writer; + @OneToOne + @JoinColumn(name = "propose_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT)) + private Propose propose; + @Builder.Default @OneToMany(mappedBy = "report", cascade = CascadeType.ALL, orphanRemoval = true) private List reportImages = new ArrayList<>(); @@ -60,6 +66,8 @@ public class Report { @OneToMany(mappedBy = "report", cascade = CascadeType.ALL) private List reportAttachments = new ArrayList<>(); + public void setPropose(Propose propose) {this.propose = propose;} + public void update(String title, String content) { this.title = title == null ? this.title : title; this.content = content == null ? this.content : content; diff --git a/src/main/java/com/sponus/sponusbe/domain/report/service/ReportService.java b/src/main/java/com/sponus/sponusbe/domain/report/service/ReportService.java index 04597bf4..ae924915 100644 --- a/src/main/java/com/sponus/sponusbe/domain/report/service/ReportService.java +++ b/src/main/java/com/sponus/sponusbe/domain/report/service/ReportService.java @@ -1,11 +1,21 @@ package com.sponus.sponusbe.domain.report.service; +import static com.sponus.sponusbe.domain.propose.entity.QPropose.*; + +import java.io.IOException; import java.util.List; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; +import com.sponus.sponusbe.domain.announcement.entity.Announcement; +import com.sponus.sponusbe.domain.announcement.exception.AnnouncementErrorCode; +import com.sponus.sponusbe.domain.announcement.exception.AnnouncementException; +import com.sponus.sponusbe.domain.notification.service.FirebaseService; import com.sponus.sponusbe.domain.organization.entity.Organization; +import com.sponus.sponusbe.domain.propose.entity.Propose; +import com.sponus.sponusbe.domain.propose.exception.ProposeErrorCode; +import com.sponus.sponusbe.domain.propose.repository.ProposeRepository; import com.sponus.sponusbe.domain.report.dto.request.ReportCreateRequest; import com.sponus.sponusbe.domain.report.dto.response.ReportCreateResponse; import com.sponus.sponusbe.domain.report.dto.request.ReportUpdateRequest; @@ -25,18 +35,30 @@ @RequiredArgsConstructor @Service public class ReportService { + private final ReportRepository reportRepository; + private final ProposeRepository proposeRepository; private final S3Service s3Service; + private final FirebaseService firebaseService; public ReportCreateResponse createReport( Organization authOrganization, ReportCreateRequest request, List images, List attachments - ) { + ) throws IOException { final Report report = request.toEntity(authOrganization); setReportImages(images, report); setReportAttachments(attachments, report); + + final Propose propose = proposeRepository.findById(request.proposeId()) + .orElseThrow(() -> new ReportException(ProposeErrorCode.PROPOSE_NOT_FOUND)); + + report.setPropose(propose); + + firebaseService.sendMessageTo(report.getWriter(), "보고서 도착", + authOrganization.getName() + " 담당자님이 보고서를 보냈습니다.", report.getPropose().getAnnouncement(), propose, report); + return ReportCreateResponse.from(reportRepository.save(report)); } From bcfeb06aa275c7081fc51239b76cecac54f2a21d Mon Sep 17 00:00:00 2001 From: xxoznge <20201049@sungshin.ac.kr> Date: Mon, 12 Feb 2024 17:25:09 +0900 Subject: [PATCH 3/3] =?UTF-8?q?:recycle:=20refactor:=20ReportService=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sponus/sponusbe/domain/report/service/ReportService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/sponus/sponusbe/domain/report/service/ReportService.java b/src/main/java/com/sponus/sponusbe/domain/report/service/ReportService.java index ae924915..e0b4cedc 100644 --- a/src/main/java/com/sponus/sponusbe/domain/report/service/ReportService.java +++ b/src/main/java/com/sponus/sponusbe/domain/report/service/ReportService.java @@ -56,7 +56,7 @@ public ReportCreateResponse createReport( report.setPropose(propose); - firebaseService.sendMessageTo(report.getWriter(), "보고서 도착", + firebaseService.sendMessageTo(propose.getAnnouncement().getWriter(), "보고서 도착", authOrganization.getName() + " 담당자님이 보고서를 보냈습니다.", report.getPropose().getAnnouncement(), propose, report); return ReportCreateResponse.from(reportRepository.save(report));