From e653d218b061dae9025f2872acf47713b2098e3b Mon Sep 17 00:00:00 2001 From: gol2580 Date: Wed, 26 Feb 2025 19:57:58 +0900 Subject: [PATCH] =?UTF-8?q?feat/#58=20=EC=B1=84=ED=8C=85=EB=B0=A9=20?= =?UTF-8?q?=EB=AA=A9=EB=A1=9D=20=EC=A1=B0=ED=9A=8C=20api=EC=97=90=20?= =?UTF-8?q?=ED=82=A4=EC=9B=8C=EB=93=9C=20=EA=B2=80=EC=83=89=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 --- .../com/example/SucceSS/repository/ChatRoomRepository.java | 6 ++++++ .../SucceSS/service/ChatService/ChatRoomService.java | 7 ++++--- .../com/example/SucceSS/web/controller/ChatController.java | 5 +++-- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/example/SucceSS/repository/ChatRoomRepository.java b/src/main/java/com/example/SucceSS/repository/ChatRoomRepository.java index 79e1f1b..1eac4c4 100644 --- a/src/main/java/com/example/SucceSS/repository/ChatRoomRepository.java +++ b/src/main/java/com/example/SucceSS/repository/ChatRoomRepository.java @@ -18,5 +18,11 @@ public interface ChatRoomRepository extends JpaRepository { "WHERE c.memberId = :memberId") Page getPagesByMemberId(@Param("memberId") Long memberId, Pageable pageable); + @Query("SELECT new com.example.SucceSS.web.dto.ChatRoomResponseDto(c.chatRoomId, c.memberId, c.title, c.updatedAt) " + + "FROM ChatRoom c " + + "WHERE c.memberId = :memberId " + + "AND c.title LIKE CONCAT('%', :keyword, '%')") + Page getPagesByMemberIdAndSort(@Param("memberId") Long memberId, Pageable pageable,@Param("keyword") String keyword); + Optional findByChatRoomId(Long chatRoomId); } diff --git a/src/main/java/com/example/SucceSS/service/ChatService/ChatRoomService.java b/src/main/java/com/example/SucceSS/service/ChatService/ChatRoomService.java index 8c8a112..ccd54b5 100644 --- a/src/main/java/com/example/SucceSS/service/ChatService/ChatRoomService.java +++ b/src/main/java/com/example/SucceSS/service/ChatService/ChatRoomService.java @@ -57,9 +57,10 @@ public Page getChatPages(Long chatRoomId, Pageable pageable) { } @Transactional(readOnly = true) - public Page getChatRoomPages(Member member, Pageable pageable) { - return chatRoomRepository.getPagesByMemberId(member.getId() - , getChatRoomPageableWithSort(pageable)); + public Page getChatRoomPages(Member member, Pageable pageable, String keyword) { + Pageable sortedPageable = getChatRoomPageableWithSort(pageable); + return keyword == null ? chatRoomRepository.getPagesByMemberId(member.getId(),sortedPageable ) + : chatRoomRepository.getPagesByMemberIdAndSort(member.getId(),sortedPageable, keyword); } private Pageable getChatRoomPageableWithSort(Pageable pageable) { diff --git a/src/main/java/com/example/SucceSS/web/controller/ChatController.java b/src/main/java/com/example/SucceSS/web/controller/ChatController.java index d970a26..b06ef56 100644 --- a/src/main/java/com/example/SucceSS/web/controller/ChatController.java +++ b/src/main/java/com/example/SucceSS/web/controller/ChatController.java @@ -53,9 +53,10 @@ public ResponseEntity>> getChatPages(@PathVari @GetMapping(value = "/rooms") @Operation(summary = "채팅방 목록 불러오기") - public ResponseEntity>> getChatRoomPages(Pageable pageable) { + public ResponseEntity>> getChatRoomPages(Pageable pageable + , @RequestParam(required = false, name = "keyword") String keyword) { return ResponseEntity.ok( - ApiResponse.onSuccess(chatRoomService.getChatRoomPages(getCurrentUser.getCurrentUser(), pageable))); + ApiResponse.onSuccess(chatRoomService.getChatRoomPages(getCurrentUser.getCurrentUser(), pageable, keyword))); }