From edfdd04bf0314f8145adfd185785d52ff7cd8506 Mon Sep 17 00:00:00 2001 From: sycuuui <102959791+sycuuui@users.noreply.github.com> Date: Tue, 30 Jan 2024 15:30:42 +0900 Subject: [PATCH] =?UTF-8?q?#5=20feat:=20apply=EC=97=90=EC=84=9C=20post?= =?UTF-8?q?=EC=99=80=20=EC=97=B0=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../apply/controller/ApplyController.java | 17 +++++++++++------ .../server/domain/apply/dto/AddApplyReq.java | 4 +++- .../server/domain/apply/entity/Apply.java | 8 +++++++- .../apply/repository/ApplyRepository.java | 2 -- .../domain/apply/service/ApplyService.java | 7 +++---- 5 files changed, 24 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/gongjakso/server/domain/apply/controller/ApplyController.java b/src/main/java/com/gongjakso/server/domain/apply/controller/ApplyController.java index 01aa4516..9aec60df 100644 --- a/src/main/java/com/gongjakso/server/domain/apply/controller/ApplyController.java +++ b/src/main/java/com/gongjakso/server/domain/apply/controller/ApplyController.java @@ -5,10 +5,14 @@ import com.gongjakso.server.domain.apply.entity.Apply; import com.gongjakso.server.domain.apply.service.ApplyService; import com.gongjakso.server.domain.member.entity.Member; +import com.gongjakso.server.domain.post.entity.Post; +import com.gongjakso.server.domain.post.service.PostService; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; +import org.springframework.security.core.annotation.AuthenticationPrincipal; +import org.springframework.stereotype.Service; import org.springframework.web.bind.annotation.*; @RequiredArgsConstructor @@ -18,12 +22,13 @@ public class ApplyController { private final ApplyService applyService; //지원 요청 api -// @PostMapping("/1") -// public ResponseEntity addApply(@AuthenticationPrincipal Member member, @RequestBody AddApplyReq req){ -// Apply savedApply = applyService.save(member,req); -// return ResponseEntity.status(HttpStatus.CREATED).body(savedApply); -// } - //특정 지원자 지원서 가져오는 api + @PostMapping("/{post_id}") + public ResponseEntity addApply(@AuthenticationPrincipal Member member, @PathVariable Post post_id, @RequestBody AddApplyReq req){ + Post post = PostService.findById(post_id); + Apply savedApply = applyService.save(member,post,req); + return ResponseEntity.status(HttpStatus.CREATED).body(savedApply); + } +// 특정 지원자 지원서 가져오는 api // @GetMapping("/apply/{post_id}/application") // public ResponseEntity findMemberApplication(@RequestHeader Long member_id){ // ApplyMemberRes applyMemberRes = applyService.findMemberApplication(member_id); diff --git a/src/main/java/com/gongjakso/server/domain/apply/dto/AddApplyReq.java b/src/main/java/com/gongjakso/server/domain/apply/dto/AddApplyReq.java index 3eb68ee0..0c8fc059 100644 --- a/src/main/java/com/gongjakso/server/domain/apply/dto/AddApplyReq.java +++ b/src/main/java/com/gongjakso/server/domain/apply/dto/AddApplyReq.java @@ -3,6 +3,7 @@ import com.gongjakso.server.domain.apply.entity.Apply; import com.gongjakso.server.domain.apply.enumerate.PostType; import com.gongjakso.server.domain.member.entity.Member; +import com.gongjakso.server.domain.post.entity.Post; public record AddApplyReq( String application, @@ -11,9 +12,10 @@ public record AddApplyReq( Boolean is_pass, Boolean is_open ) { - public Apply toEntity(Member member){ + public Apply toEntity(Member member, Post post_id){ return Apply.builder() .member(member) + .post(post_id) .application(application) .recruit_part(recruit_part) .type(type) diff --git a/src/main/java/com/gongjakso/server/domain/apply/entity/Apply.java b/src/main/java/com/gongjakso/server/domain/apply/entity/Apply.java index a17dfa07..a80b1439 100644 --- a/src/main/java/com/gongjakso/server/domain/apply/entity/Apply.java +++ b/src/main/java/com/gongjakso/server/domain/apply/entity/Apply.java @@ -2,6 +2,7 @@ import com.gongjakso.server.domain.apply.enumerate.PostType; import com.gongjakso.server.domain.member.entity.Member; +import com.gongjakso.server.domain.post.entity.Post; import com.gongjakso.server.global.common.BaseTimeEntity; import jakarta.persistence.*; import lombok.AccessLevel; @@ -23,6 +24,10 @@ public class Apply extends BaseTimeEntity { @JoinColumn(name = "member_id") private Member member; + @ManyToOne(targetEntity = Post.class, fetch = FetchType.LAZY) + @JoinColumn(name = "post_id") + private Post post; + @Column(name = "application",nullable = false,columnDefinition = "varchar(500)") private String application; @@ -39,9 +44,10 @@ public class Apply extends BaseTimeEntity { private Boolean is_open; @Builder - public Apply(Long listID, Member member, String application,String recruit_part,PostType type, Boolean is_pass,Boolean is_open){ + public Apply(Long listID, Member member,Post post, String application,String recruit_part,PostType type, Boolean is_pass,Boolean is_open){ this.listID=listID; this.member=member; + this.post=post; this.application=application; this.recruit_part=recruit_part; this.type=type; diff --git a/src/main/java/com/gongjakso/server/domain/apply/repository/ApplyRepository.java b/src/main/java/com/gongjakso/server/domain/apply/repository/ApplyRepository.java index 3257aeaf..780ca97b 100644 --- a/src/main/java/com/gongjakso/server/domain/apply/repository/ApplyRepository.java +++ b/src/main/java/com/gongjakso/server/domain/apply/repository/ApplyRepository.java @@ -6,7 +6,5 @@ import java.util.Optional; public interface ApplyRepository extends JpaRepository { -// Optional findByMemberId(Long memberId); - // Apply findApplyByMemberMemberId(); } \ No newline at end of file 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 8b6d356b..0d01b158 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 @@ -4,19 +4,18 @@ import com.gongjakso.server.domain.apply.entity.Apply; import com.gongjakso.server.domain.apply.repository.ApplyRepository; import com.gongjakso.server.domain.member.entity.Member; +import com.gongjakso.server.domain.post.entity.Post; import lombok.RequiredArgsConstructor; import org.springframework.transaction.annotation.Transactional; import org.springframework.stereotype.Service; -import java.util.Optional; - @Service @Transactional @RequiredArgsConstructor public class ApplyService { private final ApplyRepository applyRepository; - public Apply save(Member member,AddApplyReq req){ - Apply apply = req.toEntity(member); + public Apply save(Member member, Post post_id,AddApplyReq req){ + Apply apply = req.toEntity(member,post_id); return applyRepository.save(apply); } public Apply findMemberApplication(Long memberId){