From 4f750a3b0c8e21daa625617dcf80590e1398e067 Mon Sep 17 00:00:00 2001 From: DawnIsProblem Date: Fri, 2 May 2025 15:32:02 +0900 Subject: [PATCH 1/3] =?UTF-8?q?fix:=20recipientNickname=20=ED=95=AD?= =?UTF-8?q?=EB=AA=A9=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../team9/icontact/domain/chat/dto/response/ChatMessageDto.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/goorm/team9/icontact/domain/chat/dto/response/ChatMessageDto.java b/src/main/java/com/goorm/team9/icontact/domain/chat/dto/response/ChatMessageDto.java index a0f11aa..545b4dc 100644 --- a/src/main/java/com/goorm/team9/icontact/domain/chat/dto/response/ChatMessageDto.java +++ b/src/main/java/com/goorm/team9/icontact/domain/chat/dto/response/ChatMessageDto.java @@ -21,6 +21,7 @@ public class ChatMessageDto { private Long senderId; private String senderNickname; private String content; + private String recipientNickname; private ChatMessageType type; private LocalDateTime timeStamp; From 88edc804de3e495e8d2a148ec8f19ee75f53c8a6 Mon Sep 17 00:00:00 2001 From: DawnIsProblem Date: Fri, 2 May 2025 15:32:30 +0900 Subject: [PATCH 2/3] =?UTF-8?q?fix:=20recipientNickname=20=ED=99=9C?= =?UTF-8?q?=EC=9A=A9,=20=EC=B1=84=ED=8C=85=EB=B0=A9=EC=97=90=20=EB=93=A4?= =?UTF-8?q?=EC=96=B4=EC=99=80=EC=9E=88=EB=8A=94=20=EC=82=AC=EC=9A=A9?= =?UTF-8?q?=EC=9E=90=20=EC=9C=A0=EB=AC=B4=20=ED=8C=90=EB=B3=84=20=EC=BD=94?= =?UTF-8?q?=EB=93=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../icontact/domain/chat/service/ChatMessageService.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main/java/com/goorm/team9/icontact/domain/chat/service/ChatMessageService.java b/src/main/java/com/goorm/team9/icontact/domain/chat/service/ChatMessageService.java index 2a3f4ba..606ec19 100644 --- a/src/main/java/com/goorm/team9/icontact/domain/chat/service/ChatMessageService.java +++ b/src/main/java/com/goorm/team9/icontact/domain/chat/service/ChatMessageService.java @@ -63,11 +63,16 @@ public void sendMessage(ChatMessageDto chatMessageDto) { } } + String recipientNickname = chatMessageDto.getRecipientNickname(); + + boolean isRecipientInRoom = webSocketSessionService.isUserInRoom(chatRoom.getRoomId(), recipientNickname); + ChatMessage chatMessage = ChatMessage.builder() .chatRoom(chatRoom) .sender(sender) .content(chatMessageDto.getContent()) .type(chatMessageDto.getType()) + .isRead(isRecipientInRoom) .build(); chatMessageRepository.save(chatMessage); From d742896be2f59c4ea65cea4fc2ec9bd4b4bc2480 Mon Sep 17 00:00:00 2001 From: DawnIsProblem Date: Fri, 2 May 2025 15:32:56 +0900 Subject: [PATCH 3/3] =?UTF-8?q?fix:=20=EC=B1=84=ED=8C=85=EB=B0=A9=EC=97=90?= =?UTF-8?q?=20=EC=82=AC=EC=9A=A9=EC=9E=90=EA=B0=80=20=EC=9E=88=EB=8A=94?= =?UTF-8?q?=EC=A7=80=20=ED=8C=90=EB=B3=84=ED=95=98=EA=B8=B0=20=EC=9C=84?= =?UTF-8?q?=ED=95=9C=20isUserInRoom=20=EB=A9=94=EC=84=9C=EB=93=9C=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/chat/service/WebSocketSessionService.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main/java/com/goorm/team9/icontact/domain/chat/service/WebSocketSessionService.java b/src/main/java/com/goorm/team9/icontact/domain/chat/service/WebSocketSessionService.java index d366967..f10fe29 100644 --- a/src/main/java/com/goorm/team9/icontact/domain/chat/service/WebSocketSessionService.java +++ b/src/main/java/com/goorm/team9/icontact/domain/chat/service/WebSocketSessionService.java @@ -66,6 +66,11 @@ public boolean isUserOnline(String nickname) { .anyMatch(userMap -> userMap.containsKey(nickname)); } + public boolean isUserInRoom(Long roomId, String nickname) { + return chatRoomSessions.getOrDefault(roomId, Map.of()) + .containsKey(nickname); + } + public void sendPrivateMessage(String nickname, String destination, Object payload) { chatRoomSessions.values().forEach(userMap -> { WebSocketSession session = userMap.get(nickname);