From 99b4e464cc0247f5e2bffed11577bf7e5ed29e4f Mon Sep 17 00:00:00 2001 From: kyeong-hyeok Date: Tue, 4 Jun 2024 21:42:22 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=EA=B3=B5=EA=B3=A0=20=EC=82=AD=EC=A0=9C?= =?UTF-8?q?=20-=20=EB=B0=98=EB=A0=A4=EB=90=9C=20=EC=8B=A0=EC=B2=AD?= =?UTF-8?q?=EC=9D=B4=20=EC=A1=B4=EC=9E=AC=ED=95=98=EB=8A=94=20=EA=B3=B5?= =?UTF-8?q?=EA=B3=A0=EB=8F=84=20=EC=82=AD=EC=A0=9C=ED=95=98=EB=8F=84?= =?UTF-8?q?=EB=A1=9D=20=EA=B5=AC=ED=98=84=20(#234)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../application/repository/ApplicationRepository.java | 2 +- .../connectdog/domain/post/repository/PostRepository.java | 2 +- .../connectdog/domain/post/service/PostService.java | 8 ++++++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/pawwithu/connectdog/domain/application/repository/ApplicationRepository.java b/src/main/java/com/pawwithu/connectdog/domain/application/repository/ApplicationRepository.java index 2c97f6ea..f8142e24 100644 --- a/src/main/java/com/pawwithu/connectdog/domain/application/repository/ApplicationRepository.java +++ b/src/main/java/com/pawwithu/connectdog/domain/application/repository/ApplicationRepository.java @@ -18,7 +18,7 @@ public interface ApplicationRepository extends JpaRepository Long countAllByPostId(Long id); List findByVolunteer(Volunteer volunteer); Optional findByPostIdAndStatusNot(Long postId, ApplicationStatus status); - + void deleteAllByPostId(Long postId); List findByIntermediary(Intermediary intermediary); } diff --git a/src/main/java/com/pawwithu/connectdog/domain/post/repository/PostRepository.java b/src/main/java/com/pawwithu/connectdog/domain/post/repository/PostRepository.java index b45d4c93..c76a25a9 100644 --- a/src/main/java/com/pawwithu/connectdog/domain/post/repository/PostRepository.java +++ b/src/main/java/com/pawwithu/connectdog/domain/post/repository/PostRepository.java @@ -12,6 +12,6 @@ public interface PostRepository extends JpaRepository { Optional findByIdAndIntermediaryId(Long id, Long intermediaryId); Optional findByIdAndStatus(Long id, PostStatus postStatus); - + Optional findByIdAndIntermediaryIdAndStatus(Long id, Long intermediaryId, PostStatus status); List findByIntermediary(Intermediary intermediary); } diff --git a/src/main/java/com/pawwithu/connectdog/domain/post/service/PostService.java b/src/main/java/com/pawwithu/connectdog/domain/post/service/PostService.java index 2eae4d40..d83d2bbb 100644 --- a/src/main/java/com/pawwithu/connectdog/domain/post/service/PostService.java +++ b/src/main/java/com/pawwithu/connectdog/domain/post/service/PostService.java @@ -1,6 +1,7 @@ package com.pawwithu.connectdog.domain.post.service; import com.pawwithu.connectdog.common.s3.FileService; +import com.pawwithu.connectdog.domain.application.repository.ApplicationRepository; import com.pawwithu.connectdog.domain.bookmark.repository.BookmarkRepository; import com.pawwithu.connectdog.domain.dog.entity.Dog; import com.pawwithu.connectdog.domain.dog.repository.DogRepository; @@ -12,6 +13,7 @@ import com.pawwithu.connectdog.domain.post.dto.response.*; import com.pawwithu.connectdog.domain.post.entity.Post; import com.pawwithu.connectdog.domain.post.entity.PostImage; +import com.pawwithu.connectdog.domain.post.entity.PostStatus; import com.pawwithu.connectdog.domain.post.repository.CustomPostRepository; import com.pawwithu.connectdog.domain.post.repository.PostImageRepository; import com.pawwithu.connectdog.domain.post.repository.PostRepository; @@ -46,6 +48,7 @@ public class PostService { private final PostImageRepository postImageRepository; private final CustomPostRepository customPostRepository; private final BookmarkRepository bookmarkRepository; + private final ApplicationRepository applicationRepository; @CacheEvict(value = "homePosts", key = "'volunteer'", cacheManager = "redisCacheManager") // 공고 등록 시 홈 화면 공고 조회 캐시 삭제 public void createPost(String email, PostCreateRequest request, List fileList) { @@ -153,8 +156,9 @@ public void deletePost(String email, Long postId) { // 이동봉사 중개 Intermediary intermediary = intermediaryRepository.findByEmail(email).orElseThrow(() -> new BadRequestException(INTERMEDIARY_NOT_FOUND)); // 공고 - Post post = postRepository.findByIdAndIntermediaryId(postId, intermediary.getId()).orElseThrow(() -> new BadRequestException(POST_NOT_FOUND)); - // 공고 이미지, 공고, 강아지 삭제 + Post post = postRepository.findByIdAndIntermediaryIdAndStatus(postId, intermediary.getId(), PostStatus.RECRUITING).orElseThrow(() -> new BadRequestException(POST_NOT_FOUND)); + // 신청, 공고 이미지, 공고, 강아지 삭제 + applicationRepository.deleteAllByPostId(postId); postImageRepository.deleteAllByPostId(postId); postRepository.deleteById(post.getId()); dogRepository.deleteById(post.getDog().getId());