From a5b3af081062b418a1f17230da1689ed1aa7ccd9 Mon Sep 17 00:00:00 2001 From: aeyongdodam Date: Sat, 5 Oct 2024 22:52:35 +0900 Subject: [PATCH] =?UTF-8?q?#264=20feat:=20=EC=B1=84=ED=8C=85=20=EB=B0=8F?= =?UTF-8?q?=20=ED=8E=B8=EC=A7=80=20=EA=B2=B0=EC=A0=9C=20api=20=EC=B6=94?= =?UTF-8?q?=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 +++++++++ .../sharemind/consult/application/ConsultService.java | 2 ++ .../consult/application/ConsultServiceImpl.java | 5 +++++ .../sharemind/consult/repository/ConsultRepository.java | 3 +++ 6 files changed, 28 insertions(+) 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 ecb68540..ce52a7f7 100644 --- a/src/main/java/com/example/sharemind/admin/application/AdminService.java +++ b/src/main/java/com/example/sharemind/admin/application/AdminService.java @@ -16,6 +16,8 @@ public interface AdminService { List getUnpaidConsults(); + List getPaidConsults(); + SmsGetResponse updateConsultIsPaid(Long consultId); List getPendingCounselors(); 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 38eacb58..2fbf1de6 100644 --- a/src/main/java/com/example/sharemind/admin/application/AdminServiceImpl.java +++ b/src/main/java/com/example/sharemind/admin/application/AdminServiceImpl.java @@ -75,6 +75,13 @@ public List getUnpaidConsults() { .toList(); } + @Override + public List getPaidConsults() { + return consultService.getPaidConsults().stream() + .map(ConsultGetUnpaidResponse::of) + .toList(); + } + @Transactional public SmsGetResponse updateConsultIsPaid(Long consultId) { Consult consult = consultService.getConsultByConsultId(consultId); 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 57decd61..9babfd70 100644 --- a/src/main/java/com/example/sharemind/admin/presentation/AdminController.java +++ b/src/main/java/com/example/sharemind/admin/presentation/AdminController.java @@ -43,6 +43,15 @@ public ResponseEntity> getUnpaidConsults() { return ResponseEntity.ok(adminService.getUnpaidConsults()); } + @Operation(summary = "미결제 상담(편지/채팅) 리스트 조회", description = "결제 여부(isPaid)가 true인 consult 리스트 조회") + @ApiResponses({ + @ApiResponse(responseCode = "200", description = "조회 성공") + }) + @GetMapping("/paid-consults") + public ResponseEntity> getPaidConsults() { + return ResponseEntity.ok(adminService.getPaidConsults()); + } + @Operation(summary = "상담(편지/채팅) 결제 여부 수정", description = "결제 여부(isPaid)가 false인 consult를 true로 수정") @ApiResponses({ @ApiResponse(responseCode = "200", description = "수정 성공, resultCode로 sms api 발송 여부가 전달됩니다."), diff --git a/src/main/java/com/example/sharemind/consult/application/ConsultService.java b/src/main/java/com/example/sharemind/consult/application/ConsultService.java index 35a3c3e8..bd70847d 100644 --- a/src/main/java/com/example/sharemind/consult/application/ConsultService.java +++ b/src/main/java/com/example/sharemind/consult/application/ConsultService.java @@ -17,6 +17,8 @@ public interface ConsultService { List getUnpaidConsults(); + List getPaidConsults(); + List getConsultsByCustomerIdAndConsultTypeAndIsPaid(Long customerId, ConsultType consultType); List getConsultsByCounselorIdAndConsultTypeAndIsPaid(Long counselorId, ConsultType consultType); diff --git a/src/main/java/com/example/sharemind/consult/application/ConsultServiceImpl.java b/src/main/java/com/example/sharemind/consult/application/ConsultServiceImpl.java index 71f78df0..6312e97f 100644 --- a/src/main/java/com/example/sharemind/consult/application/ConsultServiceImpl.java +++ b/src/main/java/com/example/sharemind/consult/application/ConsultServiceImpl.java @@ -83,6 +83,11 @@ public List getUnpaidConsults() { return consultRepository.findAllByIsPaidIsFalseAndIsActivatedIsTrue(); } + @Override + public List getPaidConsults() { + return consultRepository.findAllByIsPaidIsTrueAndIsActivatedIsTrue(); + } + @Override public List getConsultsByCustomerIdAndConsultTypeAndIsPaid(Long customerId, ConsultType consultType) { return consultRepository.findByCustomerIdAndConsultTypeAndIsPaid(customerId, consultType); diff --git a/src/main/java/com/example/sharemind/consult/repository/ConsultRepository.java b/src/main/java/com/example/sharemind/consult/repository/ConsultRepository.java index 8f1091ea..a98ab092 100644 --- a/src/main/java/com/example/sharemind/consult/repository/ConsultRepository.java +++ b/src/main/java/com/example/sharemind/consult/repository/ConsultRepository.java @@ -19,6 +19,9 @@ public interface ConsultRepository extends JpaRepository { @Query("SELECT c FROM Consult c JOIN FETCH c.payment p WHERE p.isPaid = false AND c.isActivated = true") List findAllByIsPaidIsFalseAndIsActivatedIsTrue(); + @Query("SELECT c FROM Consult c JOIN FETCH c.payment p WHERE p.isPaid = true AND c.isActivated = true") + List findAllByIsPaidIsTrueAndIsActivatedIsTrue(); + @Query("SELECT chat.chatId FROM Consult c JOIN c.chat chat " + "WHERE c.customer.customerId = :customerId AND c.isActivated = true AND c.consultStatus != 'FINISH'") List findChatIdsByCustomerId(Long customerId); //todo: 쿼리 최적화 필요