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))); }