From 9e862cd4781cdd52a4e738070ffe5aaebfc3d513 Mon Sep 17 00:00:00 2001 From: aeyongdodam Date: Sat, 5 Oct 2024 22:58:16 +0900 Subject: [PATCH] =?UTF-8?q?#264=20feat:=20=EC=9D=BC=EB=8C=80=EB=8B=A4=20?= =?UTF-8?q?=EC=83=81=EB=8B=B4=20api=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sharemind/admin/application/AdminService.java | 2 ++ .../sharemind/admin/application/AdminServiceImpl.java | 7 +++++++ .../sharemind/admin/presentation/AdminController.java | 9 +++++++++ .../example/sharemind/post/application/PostService.java | 2 ++ .../sharemind/post/application/PostServiceImpl.java | 7 ++++++- .../sharemind/post/repository/PostRepository.java | 2 ++ 6 files changed, 28 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/example/sharemind/admin/application/AdminService.java b/src/main/java/com/example/sharemind/admin/application/AdminService.java index ce52a7f7..65693182 100644 --- a/src/main/java/com/example/sharemind/admin/application/AdminService.java +++ b/src/main/java/com/example/sharemind/admin/application/AdminService.java @@ -33,6 +33,8 @@ public interface AdminService { List getUnpaidPrivatePosts(); + List getPaidPrivatePosts(); + void updatePostIsPaid(Long postId); List getCustomersByNicknameOrEmail(String keyword); diff --git a/src/main/java/com/example/sharemind/admin/application/AdminServiceImpl.java b/src/main/java/com/example/sharemind/admin/application/AdminServiceImpl.java index 2fbf1de6..d9f741c8 100644 --- a/src/main/java/com/example/sharemind/admin/application/AdminServiceImpl.java +++ b/src/main/java/com/example/sharemind/admin/application/AdminServiceImpl.java @@ -184,6 +184,13 @@ public List getUnpaidPrivatePosts() { .toList(); } + @Override + public List getPaidPrivatePosts() { + return postService.getPaidPrivatePosts().stream() + .map(PostGetUnpaidPrivateResponse::of) + .toList(); + } + @Transactional @Override public void updatePostIsPaid(Long postId) { diff --git a/src/main/java/com/example/sharemind/admin/presentation/AdminController.java b/src/main/java/com/example/sharemind/admin/presentation/AdminController.java index 9babfd70..ffa98601 100644 --- a/src/main/java/com/example/sharemind/admin/presentation/AdminController.java +++ b/src/main/java/com/example/sharemind/admin/presentation/AdminController.java @@ -181,6 +181,15 @@ public ResponseEntity> getUnpaidPrivatePosts( return ResponseEntity.ok(adminService.getUnpaidPrivatePosts()); } + @Operation(summary = "결제 일대다 상담 리스트 조회", description = "결제 여부(isPaid)가 true인 일대다 상담 리스트 조회") + @ApiResponses({ + @ApiResponse(responseCode = "200", description = "조회 성공") + }) + @GetMapping("/paid-posts") + public ResponseEntity> getPaidPrivatePosts() { + return ResponseEntity.ok(adminService.getPaidPrivatePosts()); + } + @Operation(summary = "일대다 비공개 상담 결제 여부 수정", description = "결제 여부(isPaid)가 false인 일대다 상담을 true로 수정") @ApiResponses({ @ApiResponse(responseCode = "200", description = "수정 성공"), diff --git a/src/main/java/com/example/sharemind/post/application/PostService.java b/src/main/java/com/example/sharemind/post/application/PostService.java index 2d4a8bc4..492cef33 100644 --- a/src/main/java/com/example/sharemind/post/application/PostService.java +++ b/src/main/java/com/example/sharemind/post/application/PostService.java @@ -17,6 +17,8 @@ public interface PostService { List getUnpaidPrivatePosts(); + List getPaidPrivatePosts(); + Post getPostByPostId(Long postId); Post getPostByPayAppId(String payAppId); diff --git a/src/main/java/com/example/sharemind/post/application/PostServiceImpl.java b/src/main/java/com/example/sharemind/post/application/PostServiceImpl.java index 32838fb1..c6368609 100644 --- a/src/main/java/com/example/sharemind/post/application/PostServiceImpl.java +++ b/src/main/java/com/example/sharemind/post/application/PostServiceImpl.java @@ -68,6 +68,11 @@ public List getUnpaidPrivatePosts() { return postRepository.findAllByIsPaidIsFalseAndIsActivatedIsTrue(); } + @Override + public List getPaidPrivatePosts() { + return postRepository.findAllByIsPaidIsTrueAndIsActivatedIsTrue(); + } + @Override public Post getPostByPostId(Long postId) { return postRepository.findByPostIdAndIsActivatedIsTrue(postId).orElseThrow( @@ -250,7 +255,7 @@ public Boolean getIsPostOwner(Long postId, Long customerId) { @Transactional public void checkPostStatus() { postRepository.findAllWaitingPublicPostsAfter24Hours() - .forEach(BaseEntity::updateIsActivatedFalse); + .forEach(BaseEntity::updateIsActivatedFalse); postRepository.findAllCommentedProceedingPublicPostsAfter72Hours() .forEach(post -> post.updatePostStatus(PostStatus.TIME_OUT)); diff --git a/src/main/java/com/example/sharemind/post/repository/PostRepository.java b/src/main/java/com/example/sharemind/post/repository/PostRepository.java index 878ff16b..72e219a0 100644 --- a/src/main/java/com/example/sharemind/post/repository/PostRepository.java +++ b/src/main/java/com/example/sharemind/post/repository/PostRepository.java @@ -18,6 +18,8 @@ public interface PostRepository extends JpaRepository, PostCustomRep List findAllByIsPaidIsFalseAndIsActivatedIsTrue(); + List findAllByIsPaidIsTrueAndIsActivatedIsTrue(); + @Query(value = "SELECT * FROM post " + "WHERE is_public = true AND post_status = 'WAITING' AND is_activated = true " + "AND created_at <= CURRENT_TIMESTAMP - INTERVAL 1 DAY ", nativeQuery = true)