캐릭터 챗봇 #338
| @@ -54,12 +54,13 @@ class ChatRoomController( | ||||
|      */ | ||||
|     @GetMapping("/list") | ||||
|     fun listMyChatRooms( | ||||
|         @AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member? | ||||
|         @AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?, | ||||
|         @RequestParam(defaultValue = "0") page: Int | ||||
|     ) = run { | ||||
|         if (member == null || member.auth == null) { | ||||
|             ApiResponse.ok(emptyList()) | ||||
|         } else { | ||||
|             val response = chatRoomService.listMyChatRooms(member) | ||||
|             val response = chatRoomService.listMyChatRooms(member, page) | ||||
|             ApiResponse.ok(response) | ||||
|         } | ||||
|     } | ||||
|   | ||||
| @@ -4,6 +4,7 @@ import kr.co.vividnext.sodalive.chat.character.ChatCharacter | ||||
| import kr.co.vividnext.sodalive.chat.room.ChatRoom | ||||
| import kr.co.vividnext.sodalive.chat.room.dto.ChatRoomListQueryDto | ||||
| import kr.co.vividnext.sodalive.member.Member | ||||
| import org.springframework.data.domain.Pageable | ||||
| import org.springframework.data.jpa.repository.JpaRepository | ||||
| import org.springframework.data.jpa.repository.Query | ||||
| import org.springframework.data.repository.query.Param | ||||
| @@ -55,6 +56,7 @@ interface ChatRoomRepository : JpaRepository<ChatRoom, Long> { | ||||
|         """ | ||||
|     ) | ||||
|     fun findMemberRoomsOrderByLastMessageDesc( | ||||
|         @Param("member") member: Member | ||||
|         @Param("member") member: Member, | ||||
|         pageable: Pageable | ||||
|     ): List<ChatRoomListQueryDto> | ||||
| } | ||||
|   | ||||
| @@ -21,6 +21,7 @@ import kr.co.vividnext.sodalive.common.SodaException | ||||
| import kr.co.vividnext.sodalive.member.Member | ||||
| import org.slf4j.LoggerFactory | ||||
| import org.springframework.beans.factory.annotation.Value | ||||
| import org.springframework.data.domain.PageRequest | ||||
| import org.springframework.http.HttpEntity | ||||
| import org.springframework.http.HttpHeaders | ||||
| import org.springframework.http.HttpMethod | ||||
| @@ -183,8 +184,13 @@ class ChatRoomService( | ||||
|     } | ||||
|  | ||||
|     @Transactional(readOnly = true) | ||||
|     fun listMyChatRooms(member: Member): List<ChatRoomListItemDto> { | ||||
|         val rooms: List<ChatRoomListQueryDto> = chatRoomRepository.findMemberRoomsOrderByLastMessageDesc(member) | ||||
|     fun listMyChatRooms(member: Member, page: Int): List<ChatRoomListItemDto> { | ||||
|         // 기본 페이지당 20개 고정 | ||||
|         val pageable = PageRequest.of(if (page < 0) 0 else page, 20) | ||||
|         val rooms: List<ChatRoomListQueryDto> = chatRoomRepository.findMemberRoomsOrderByLastMessageDesc( | ||||
|             member, | ||||
|             pageable | ||||
|         ) | ||||
|         return rooms.map { q -> | ||||
|             val room = ChatRoom( | ||||
|                 sessionId = "", | ||||
|   | ||||
		Reference in New Issue
	
	Block a user