diff --git a/src/main/java/com/moing/backend/domain/mission/domain/repository/MissionCustomRepositoryImpl.java b/src/main/java/com/moing/backend/domain/mission/domain/repository/MissionCustomRepositoryImpl.java index 1baa1d3a..ac2a84d5 100644 --- a/src/main/java/com/moing/backend/domain/mission/domain/repository/MissionCustomRepositoryImpl.java +++ b/src/main/java/com/moing/backend/domain/mission/domain/repository/MissionCustomRepositoryImpl.java @@ -8,9 +8,12 @@ import com.moing.backend.domain.mission.domain.entity.QMission; import com.moing.backend.domain.mission.domain.entity.constant.MissionStatus; import com.moing.backend.domain.mission.domain.entity.constant.MissionType; +import com.querydsl.core.types.OrderSpecifier; import com.querydsl.core.types.Projections; import com.querydsl.core.types.dsl.BooleanExpression; +import com.querydsl.core.types.dsl.CaseBuilder; import com.querydsl.core.types.dsl.NumberPath; +import com.querydsl.core.types.dsl.SimpleExpression; import com.querydsl.jpa.JPAExpressions; import com.querydsl.jpa.JPQLQuery; import com.querydsl.jpa.impl.JPAQueryFactory; @@ -211,10 +214,12 @@ public Optional> findSingleMissionByMemberId(Long m mission.status.eq(MissionStatus.ONGOING).or(mission.status.eq(MissionStatus.WAIT)), mission.type.eq(MissionType.ONCE) ) - .orderBy(mission.dueTo.asc()) + .orderBy(missionArchive.status.asc(),mission.dueTo.asc(),missionArchive.createdDate.desc()) .fetch()); } + + public boolean findRepeatMissionsByTeamId(Long teamId) { return queryFactory .select(mission) diff --git a/src/main/java/com/moing/backend/domain/missionArchive/domain/repository/MissionArchiveCustomRepositoryImpl.java b/src/main/java/com/moing/backend/domain/missionArchive/domain/repository/MissionArchiveCustomRepositoryImpl.java index b222e0f2..5ef4b1f3 100644 --- a/src/main/java/com/moing/backend/domain/missionArchive/domain/repository/MissionArchiveCustomRepositoryImpl.java +++ b/src/main/java/com/moing/backend/domain/missionArchive/domain/repository/MissionArchiveCustomRepositoryImpl.java @@ -371,7 +371,7 @@ public Boolean findMyArchivesToday(Long memberId, Long missionId) { .where( missionArchive.member.memberId.eq(memberId), missionArchive.mission.id.eq(missionId), - missionArchive.lastModifiedDate.between(startOfToday, endOfToday), // createdDate와 오늘의 시작과 끝을 비교, + missionArchive.createdDate.between(startOfToday, endOfToday), // createdDate와 오늘의 시작과 끝을 비교, missionArchive.mission.type.eq(MissionType.REPEAT).and(dateInRange) .or(missionArchive.mission.type.eq(MissionType.ONCE)) 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 d96b35ee..5c6fa313 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 @@ -12,6 +12,8 @@ import com.moing.backend.domain.missionArchive.domain.entity.MissionArchive; import com.moing.backend.domain.missionArchive.domain.entity.MissionArchiveStatus; import com.moing.backend.domain.missionArchive.domain.service.MissionArchiveQueryService; +import com.moing.backend.domain.missionComment.domain.entity.MissionComment; +import com.moing.backend.domain.missionComment.domain.service.MissionCommentGetService; 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; @@ -31,6 +33,7 @@ public class ReportCreateUseCase { private final BoardGetService boardGetService; private final MissionArchiveQueryService missionArchiveQueryService; private final BoardCommentGetService boardCommentGetService; + private final MissionCommentGetService missionCommentGetService; private final String REPORT_BOARD_TITLE ="신고 접수된 게시물입니다."; private final String REPORT_BOARD_MESSAGE ="신고 접수로 삭제된 게시물입니다."; @@ -53,12 +56,17 @@ public Long createReport(String socialId, Long targetId, String reportType) { .isNotice(board.isNotice()) .build()); } - else if (reportType.equals(ReportType.COMMENT.name())) { + else if (reportType.equals(ReportType.BCOMMENT.name())) { BoardComment boardComment = boardCommentGetService.getComment(targetId); targetMemberNickName = boardComment.getTeamMember().getMember().getNickName(); boardComment.updateContent(REPORT_BOARD_MESSAGE); - } else { + } else if(reportType.equals(ReportType.MCOMMENT.name())){ + MissionComment missionComment=missionCommentGetService.getComment(targetId); + targetMemberNickName=missionComment.getTeamMember().getMember().getNickName(); + missionComment.updateContent(REPORT_BOARD_MESSAGE); + } + else { MissionArchive missionArchive = missionArchiveQueryService.findByMissionArchiveId(targetId); Mission mission = missionArchive.getMission(); diff --git a/src/main/java/com/moing/backend/domain/report/domain/entity/constant/ReportType.java b/src/main/java/com/moing/backend/domain/report/domain/entity/constant/ReportType.java index 3d95530d..2dfe63d3 100644 --- a/src/main/java/com/moing/backend/domain/report/domain/entity/constant/ReportType.java +++ b/src/main/java/com/moing/backend/domain/report/domain/entity/constant/ReportType.java @@ -1,5 +1,5 @@ package com.moing.backend.domain.report.domain.entity.constant; public enum ReportType { - MISSION,BOARD,COMMENT + MISSION, BOARD, BCOMMENT, MCOMMENT } diff --git a/src/test/java/com/moing/backend/domain/report/presentation/ReportControllerTest.java b/src/test/java/com/moing/backend/domain/report/presentation/ReportControllerTest.java index 6d791bae..93e1953d 100644 --- a/src/test/java/com/moing/backend/domain/report/presentation/ReportControllerTest.java +++ b/src/test/java/com/moing/backend/domain/report/presentation/ReportControllerTest.java @@ -2,10 +2,7 @@ import com.moing.backend.config.CommonControllerTest; import com.moing.backend.domain.report.application.service.ReportCreateUseCase; -import com.moing.backend.domain.teamScore.application.dto.TeamScoreRes; -import com.moing.backend.domain.teamScore.presentation.TeamScoreController; import org.junit.jupiter.api.Test; -import org.mockito.Mock; import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.http.MediaType; @@ -14,8 +11,6 @@ import org.springframework.test.web.servlet.result.MockMvcResultMatchers; import static com.moing.backend.domain.report.presentation.constant.ReportResponseMessage.CREATE_REPORT_SUCCESS; -import static com.moing.backend.domain.teamScore.presentation.constant.TeamScoreResponseMessage.GET_TEAMSCORE_SUCCESS; -import static org.junit.jupiter.api.Assertions.*; import static org.mockito.ArgumentMatchers.any; import static org.mockito.BDDMockito.given; import static org.springframework.restdocs.headers.HeaderDocumentation.headerWithName; @@ -59,7 +54,7 @@ public class ReportControllerTest extends CommonControllerTest { ), pathParameters( - parameterWithName("reportType").description("MISSION/BOARD/COMMENT"), + parameterWithName("reportType").description("MISSION/BOARD/BCOMMENT/MCOMMENT"), parameterWithName("targetId").description("신고할 board,missionArchive,comment 아이디") ),