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; }