From e1bc12ac587091bf27b9a530a2587c2e38213d41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A0=95=20=EC=8A=B9=20=EC=97=B0?= <53565255+seungyeonnnnnni@users.noreply.github.com> Date: Sun, 17 Dec 2023 15:47:57 +0900 Subject: [PATCH] =?UTF-8?q?feat=20:=20=EC=8B=A0=EA=B3=A0=ED=95=98=EA=B8=B0?= =?UTF-8?q?=20(=EA=B2=8C=EC=8B=9C=EB=AC=BC/=EB=AF=B8=EC=85=98=EC=9D=B8?= =?UTF-8?q?=EC=A6=9D)=20=20=EB=82=B4=EC=9A=A9=20=EB=B3=80=EA=B2=BD=20?= =?UTF-8?q?=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 --- .../application/mapper/ReportMapper.java | 3 +- .../service/ReportCreateUseCase.java | 56 ++++++++++++++++++- .../domain/report/domain/entity/Report.java | 1 + 3 files changed, 58 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/moing/backend/domain/report/application/mapper/ReportMapper.java b/src/main/java/com/moing/backend/domain/report/application/mapper/ReportMapper.java index 2190cec0..2d2d4472 100644 --- a/src/main/java/com/moing/backend/domain/report/application/mapper/ReportMapper.java +++ b/src/main/java/com/moing/backend/domain/report/application/mapper/ReportMapper.java @@ -7,11 +7,12 @@ @Mapper public class ReportMapper { - public static Report mapToReport(Long memberId, Long targetId, String reportType) { + public static Report mapToReport(Long memberId, Long targetId, String reportType,String targetMemberNickName) { return Report.builder() .reportMemberId(memberId) .reportType(ReportType.valueOf(reportType)) .targetId(targetId) + .targetMemberNickName(targetMemberNickName) .build(); } diff --git a/src/main/java/com/moing/backend/domain/report/application/service/ReportCreateUseCase.java b/src/main/java/com/moing/backend/domain/report/application/service/ReportCreateUseCase.java index 73a2d2fa..a674cfce 100644 --- a/src/main/java/com/moing/backend/domain/report/application/service/ReportCreateUseCase.java +++ b/src/main/java/com/moing/backend/domain/report/application/service/ReportCreateUseCase.java @@ -1,8 +1,18 @@ package com.moing.backend.domain.report.application.service; +import com.moing.backend.domain.board.application.dto.request.UpdateBoardRequest; +import com.moing.backend.domain.board.domain.entity.Board; +import com.moing.backend.domain.board.domain.service.BoardGetService; import com.moing.backend.domain.member.domain.service.MemberGetService; +import com.moing.backend.domain.mission.domain.entity.Mission; +import com.moing.backend.domain.mission.domain.entity.constant.MissionWay; +import com.moing.backend.domain.missionArchive.application.dto.req.MissionArchiveReq; +import com.moing.backend.domain.missionArchive.domain.entity.MissionArchive; +import com.moing.backend.domain.missionArchive.domain.service.MissionArchiveQueryService; +import com.moing.backend.domain.missionState.domain.entity.MissionState; import com.moing.backend.domain.report.application.mapper.ReportMapper; import com.moing.backend.domain.report.domain.entity.Report; +import com.moing.backend.domain.report.domain.entity.constant.ReportType; import com.moing.backend.domain.report.domain.service.ReportSaveService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -16,9 +26,53 @@ public class ReportCreateUseCase { private final ReportSaveService reportSaveService; private final MemberGetService memberGetService; + private final BoardGetService boardGetService; + private final MissionArchiveQueryService missionArchiveQueryService; + + private final String REPORT_BOARD_TITLE ="신고 접수된 게시물입니다."; + private final String REPORT_BOARD_MESSAGE ="신고 접수로 삭제된 게시물입니다."; + private final String REPORT_MISSION_MESSAGE ="신고 접수로 삭제된 인증입니다."; + private final String REPORT_MISSION_PHOTO ="https://modagbul.s3.ap-northeast-2.amazonaws.com/reportImage.png"; + + public Long createReport(String socialId, Long targetId, String reportType) { Long memberId = memberGetService.getMemberBySocialId(socialId).getMemberId(); - Report save = reportSaveService.save(ReportMapper.mapToReport(memberId, targetId, reportType)); + String targetMemberNickName = null ; + + if (reportType.equals(ReportType.BOARD.name())) { + Board board = boardGetService.getBoard(targetId); + + targetMemberNickName = board.getWriterNickName(); + + board.updateBoard(UpdateBoardRequest.builder() + .title(REPORT_BOARD_TITLE) + .content(REPORT_BOARD_MESSAGE) + .isNotice(board.isNotice()) + .build()); + } else { + + MissionArchive missionArchive = missionArchiveQueryService.findByMissionArchiveId(targetId); + Mission mission = missionArchive.getMission(); + + targetMemberNickName = missionArchive.getMember().getNickName(); + + if (mission.getWay().equals(MissionWay.PHOTO)) { + missionArchive.updateArchive(MissionArchiveReq.builder() + .archive(REPORT_MISSION_PHOTO) + .status(missionArchive.getStatus().name()) + .build()); + } else { + missionArchive.updateArchive(MissionArchiveReq.builder() + .archive(REPORT_MISSION_MESSAGE) + .status(missionArchive.getStatus().name()) + .build()); + + } + + } + + Report save = reportSaveService.save(ReportMapper.mapToReport(memberId, targetId, reportType,targetMemberNickName)); + return save.getTargetId(); } } diff --git a/src/main/java/com/moing/backend/domain/report/domain/entity/Report.java b/src/main/java/com/moing/backend/domain/report/domain/entity/Report.java index 505d0a2c..36146585 100644 --- a/src/main/java/com/moing/backend/domain/report/domain/entity/Report.java +++ b/src/main/java/com/moing/backend/domain/report/domain/entity/Report.java @@ -27,4 +27,5 @@ public class Report extends BaseTimeEntity { private Long reportMemberId; private Long targetId; + private String targetMemberNickName; }