From 1caf13adccf4ae70b9a5d3fc82f5d06722b32fae Mon Sep 17 00:00:00 2001 From: sycuuui <102959791+sycuuui@users.noreply.github.com> Date: Fri, 2 Feb 2024 17:48:23 +0900 Subject: [PATCH] =?UTF-8?q?#26=20feat:=20=EC=A7=80=EC=9B=90=20=EC=8B=9C=20?= =?UTF-8?q?=EC=A7=80=EC=9B=90=ED=8C=8C=ED=8A=B8=20size=20=EA=B0=90?= =?UTF-8?q?=EC=86=8C=20=EC=BD=94=EB=93=9C=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../server/domain/apply/dto/ApplicationRes.java | 6 +++--- .../server/domain/apply/service/ApplyService.java | 9 ++++++++- .../gongjakso/server/domain/post/entity/Category.java | 6 ++---- .../domain/post/repository/CategoryRepository.java | 2 ++ .../com/gongjakso/server/global/exception/ErrorCode.java | 3 ++- 5 files changed, 17 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/gongjakso/server/domain/apply/dto/ApplicationRes.java b/src/main/java/com/gongjakso/server/domain/apply/dto/ApplicationRes.java index 4cdf3683..6a6a7c14 100644 --- a/src/main/java/com/gongjakso/server/domain/apply/dto/ApplicationRes.java +++ b/src/main/java/com/gongjakso/server/domain/apply/dto/ApplicationRes.java @@ -10,9 +10,9 @@ public record ApplicationRes( Boolean is_decision, String application, String recruit_part, - List list + List category ) { - public static ApplicationRes of(Apply apply,List list){ - return new ApplicationRes(apply.getIs_decision(),apply.getApplication(), apply.getRecruit_part(),list); + public static ApplicationRes of(Apply apply,List category){ + return new ApplicationRes(apply.getIs_decision(),apply.getApplication(), apply.getRecruit_part(),category); } } diff --git a/src/main/java/com/gongjakso/server/domain/apply/service/ApplyService.java b/src/main/java/com/gongjakso/server/domain/apply/service/ApplyService.java index 40d3203f..257a15f7 100644 --- a/src/main/java/com/gongjakso/server/domain/apply/service/ApplyService.java +++ b/src/main/java/com/gongjakso/server/domain/apply/service/ApplyService.java @@ -6,6 +6,7 @@ import com.gongjakso.server.domain.member.entity.Member; import com.gongjakso.server.domain.post.entity.Category; import com.gongjakso.server.domain.post.entity.Post; +import com.gongjakso.server.domain.post.enumerate.CategoryType; import com.gongjakso.server.domain.post.repository.CategoryRepository; import com.gongjakso.server.domain.post.repository.PostRepository; import com.gongjakso.server.global.common.ApplicationResponse; @@ -40,7 +41,13 @@ public Apply save(Member member, Long post_id, ApplyReq req){ throw new ApplicationException(ErrorCode.NOT_APPLY_EXCEPTION); }else { Apply apply = req.toEntity(member, post); - return applyRepository.save(apply); + Category category = categoryRepository.findCategoryByPostAndCategoryType(post, CategoryType.valueOf(req.recruit_part())); + if(category.getSize()-1<=0){ + throw new ApplicationException(ErrorCode.OVER_APPLY_EXCEPTION); + }else { + category.setSize(category.getSize()-1); + return applyRepository.save(apply); + } } }else { throw new ApplicationException(ErrorCode.ALREADY_APPLY_EXCEPTION); diff --git a/src/main/java/com/gongjakso/server/domain/post/entity/Category.java b/src/main/java/com/gongjakso/server/domain/post/entity/Category.java index ada2ac51..141cbfc2 100644 --- a/src/main/java/com/gongjakso/server/domain/post/entity/Category.java +++ b/src/main/java/com/gongjakso/server/domain/post/entity/Category.java @@ -3,12 +3,10 @@ import com.gongjakso.server.domain.post.enumerate.CategoryType; import com.gongjakso.server.global.common.BaseTimeEntity; import jakarta.persistence.*; -import lombok.AccessLevel; -import lombok.Builder; -import lombok.Getter; -import lombok.NoArgsConstructor; +import lombok.*; @Getter +@Setter @Entity @Table(name = "category") @NoArgsConstructor(access = AccessLevel.PROTECTED) diff --git a/src/main/java/com/gongjakso/server/domain/post/repository/CategoryRepository.java b/src/main/java/com/gongjakso/server/domain/post/repository/CategoryRepository.java index e4d3f2c9..0f88f4f0 100644 --- a/src/main/java/com/gongjakso/server/domain/post/repository/CategoryRepository.java +++ b/src/main/java/com/gongjakso/server/domain/post/repository/CategoryRepository.java @@ -2,10 +2,12 @@ import com.gongjakso.server.domain.post.entity.Category; import com.gongjakso.server.domain.post.entity.Post; +import com.gongjakso.server.domain.post.enumerate.CategoryType; import org.springframework.data.jpa.repository.JpaRepository; import java.util.List; public interface CategoryRepository extends JpaRepository { List findCategoryByPost(Post post); + Category findCategoryByPostAndCategoryType(Post post, CategoryType categoryType); } diff --git a/src/main/java/com/gongjakso/server/global/exception/ErrorCode.java b/src/main/java/com/gongjakso/server/global/exception/ErrorCode.java index 055d75cb..638239e6 100644 --- a/src/main/java/com/gongjakso/server/global/exception/ErrorCode.java +++ b/src/main/java/com/gongjakso/server/global/exception/ErrorCode.java @@ -34,7 +34,8 @@ public enum ErrorCode { ALREADY_APPLY_EXCEPTION(HttpStatus.BAD_REQUEST,4003,"이미 지원했습니다."), ALREADY_DECISION_EXCEPION(HttpStatus.BAD_REQUEST,4004,"이미 지원 결정했습니다."), NOT_RECRUITING_EXCEPION(HttpStatus.BAD_REQUEST,4005,"이 공고는 모집 중이 아닙니다."), - NOT_FOUND_CATEGORY_EXCEPTION(HttpStatus.NOT_FOUND,4006,"카테고리가 없습니다"); + NOT_FOUND_CATEGORY_EXCEPTION(HttpStatus.NOT_FOUND,4006,"카테고리가 없습니다"), + OVER_APPLY_EXCEPTION(HttpStatus.NOT_FOUND,4007,"지원 파트 정원이 찼습니다."); private final HttpStatus httpStatus; private final Integer code;