From 3849c2406d1d271d8f849d0d894effe8ef07dc7c Mon Sep 17 00:00:00 2001 From: Admin Date: Wed, 24 Sep 2025 21:34:18 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=EC=B1=97=EB=A9=94=EC=8B=9C=EC=A7=80=20?= =?UTF-8?q?=EB=94=94=ED=8B=B0=EC=98=A4=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/chat/controller/ChatController.java | 2 +- .../server/api/chat/service/ChatService.java | 16 ++++++++++++---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/campick/server/api/chat/controller/ChatController.java b/src/main/java/com/campick/server/api/chat/controller/ChatController.java index c465aab..7dcffab 100644 --- a/src/main/java/com/campick/server/api/chat/controller/ChatController.java +++ b/src/main/java/com/campick/server/api/chat/controller/ChatController.java @@ -35,7 +35,7 @@ public ResponseEntity> startChat(@RequestBody ChatRoomReqDto c } @GetMapping("/{chatRoomId}") - public ResponseEntity>> getChatRoom(@PathVariable Long chatRoomId, + public ResponseEntity>> getChatRoom(@PathVariable Long chatRoomId, @RequestParam(defaultValue = "0") Integer page, @RequestParam(defaultValue = "20") Integer size) { Pageable pageable = PageRequest.of(page, size); diff --git a/src/main/java/com/campick/server/api/chat/service/ChatService.java b/src/main/java/com/campick/server/api/chat/service/ChatService.java index 9dbbbdb..c586763 100644 --- a/src/main/java/com/campick/server/api/chat/service/ChatService.java +++ b/src/main/java/com/campick/server/api/chat/service/ChatService.java @@ -113,13 +113,21 @@ public Long startChatRoom(ChatRoomReqDto chatRoomReqDto, Long memberId) { return chatRoom.getId(); } - public ChatRoomPageResDto getChatRoom(Long chatRoomId, Pageable pageable) { + public ChatRoomPageResDto getChatRoom(Long chatRoomId, Pageable pageable) { ChatRoom chatRoom = chatRoomRepository.findDetailById(chatRoomId).orElseThrow( () -> new NotFoundException(ErrorStatus.CHAT_NOT_FOUND.getMessage()) ); Page chatMessages = chatMessageRepository.findByChatRoomIdOrderByCreatedAtDesc(chatRoomId, pageable); + Page chatMessageResDtos = chatMessages.map( + cm -> ChatMessageResDto.builder() + .message(cm.getMessage()) + .senderId(cm.getMember().getId()) + .sendAt(TimeUtil.getTimeAgo(cm.getCreatedAt())) + .isRead(cm.getIsRead()) + .build() + ); - return convertToChatRoomResDto(chatRoom, chatMessages); + return convertToChatRoomResDto(chatRoom, chatMessageResDtos); } public void readChatRoom(Long chatRoomId, Long memberId) { @@ -258,14 +266,14 @@ public void broadcastSoldEvent(WebSocketSession session, JsonNode data) { } } - private ChatRoomPageResDto convertToChatRoomResDto(ChatRoom chatRoom, Page chatMessages) { + private ChatRoomPageResDto convertToChatRoomResDto(ChatRoom chatRoom, Page chatMessages) { String thumbnailImage = chatRoom.getProduct().getImages().stream() .filter(ProductImage::getIsThumbnail) .map(ProductImage::getImageUrl) .findFirst() .orElse(null); - ChatRoomPageResDto chatRoomPageResDto = new ChatRoomPageResDto<>(chatMessages); + ChatRoomPageResDto chatRoomPageResDto = new ChatRoomPageResDto<>(chatMessages); chatRoomPageResDto.setSellerId(chatRoom.getSeller().getId()); chatRoomPageResDto.setSellerNickname(chatRoom.getSeller().getNickname());