diff --git a/src/main/java/io/oeid/mogakgo/domain/project/application/ProjectService.java b/src/main/java/io/oeid/mogakgo/domain/project/application/ProjectService.java index 4233ba2d..7c4e0e3e 100644 --- a/src/main/java/io/oeid/mogakgo/domain/project/application/ProjectService.java +++ b/src/main/java/io/oeid/mogakgo/domain/project/application/ProjectService.java @@ -28,7 +28,6 @@ import io.oeid.mogakgo.domain.user.domain.User; import io.oeid.mogakgo.domain.user.exception.UserException; import io.oeid.mogakgo.domain.user.infrastructure.UserJpaRepository; -import java.util.ArrayList; import java.util.Collections; import java.util.List; import lombok.RequiredArgsConstructor; @@ -77,11 +76,6 @@ public Long create(Long userId, ProjectCreateReq request) { return project.getId(); } - private boolean isExistsNotEndProjectCard(User tokenUser) { - return !projectJpaRepository.findNotEndProjectOneByCreatorId(tokenUser.getId(), - PageRequest.of(0, 1)).isEmpty(); - } - @Transactional public void delete(Long userId, Long projectId) { // 유저 존재 여부 체크 @@ -94,6 +88,7 @@ public void delete(Long userId, Long projectId) { project.delete(user); } + @Transactional public void cancel(Long userId, Long projectId) { // 유저 존재 여부 체크 User user = getUser(userId); @@ -106,6 +101,9 @@ public void cancel(Long userId, Long projectId) { // 프로젝트 취소 project.cancel(user, projectHasReq); + + // 프로젝트가 받은 모든 요청 거절 + projectJoinRequestJpaRepository.rejectAllByProjectId(projectId); } public CursorPaginationResult getJoinRequest( @@ -160,6 +158,11 @@ public ProjectDensityRankRes getDensityRankProjects() { return new ProjectDensityRankRes(regionRankList); } + private boolean isExistsNotEndProjectCard(User tokenUser) { + return !projectJpaRepository.findNotEndProjectOneByCreatorId(tokenUser.getId(), + PageRequest.of(0, 1)).isEmpty(); + } + private void fillWithDefaultRegionsIfNecessary(List regionRankList) { if (regionRankList.size() < DENSITY_RANK_LIMIT) { // 기본 지역 순위에서 이미 리스트에 있는 지역을 제외하고 남은 지역을 추가 diff --git a/src/main/java/io/oeid/mogakgo/domain/project_join_req/infrastructure/ProjectJoinRequestJpaRepository.java b/src/main/java/io/oeid/mogakgo/domain/project_join_req/infrastructure/ProjectJoinRequestJpaRepository.java index 3fed8eef..3b35d79c 100644 --- a/src/main/java/io/oeid/mogakgo/domain/project_join_req/infrastructure/ProjectJoinRequestJpaRepository.java +++ b/src/main/java/io/oeid/mogakgo/domain/project_join_req/infrastructure/ProjectJoinRequestJpaRepository.java @@ -4,6 +4,7 @@ import java.util.Optional; import org.springframework.data.jpa.repository.EntityGraph; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Query; public interface ProjectJoinRequestJpaRepository extends JpaRepository, @@ -23,4 +24,8 @@ public interface ProjectJoinRequestJpaRepository extends JpaRepository findAlreadyExistsAnotherJoinReq(Long userId); + @Modifying + @Query("update ProjectJoinRequest pjr set pjr.requestStatus = 'REJECTED' where pjr.project.id = :projectId and pjr.requestStatus = 'PENDING'") + int rejectAllByProjectId(Long projectId); + }