From 7816088c06c34abfa67b92f0d55eada26b1c1c3b Mon Sep 17 00:00:00 2001 From: Sukyeong Sung Date: Tue, 11 Mar 2025 12:28:21 +0900 Subject: [PATCH 1/6] =?UTF-8?q?Feat:=20noti=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/noti/noti/controller/ApiV1NotiController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/cmf/commitField/domain/noti/noti/controller/ApiV1NotiController.java b/src/main/java/cmf/commitField/domain/noti/noti/controller/ApiV1NotiController.java index 5b5372b..a876fa3 100644 --- a/src/main/java/cmf/commitField/domain/noti/noti/controller/ApiV1NotiController.java +++ b/src/main/java/cmf/commitField/domain/noti/noti/controller/ApiV1NotiController.java @@ -30,7 +30,7 @@ public class ApiV1NotiController { private final NotiService notiService; private final UserRepository userRepository; - private final NotiWebSocketHandler notiWebSocketHandler; +// private final NotiWebSocketHandler notiWebSocketHandler; private final ApplicationEventPublisher eventPublisher; @GetMapping("") From 157182ca8d95132dd2cde04b5d1b1ed42f420d00 Mon Sep 17 00:00:00 2001 From: Sukyeong Sung Date: Tue, 11 Mar 2025 15:06:28 +0900 Subject: [PATCH 2/6] =?UTF-8?q?Feat:=20update=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/application-dev.yml | 2 +- src/main/resources/application.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 4693231..4db63d8 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -7,7 +7,7 @@ spring: jpa: open-in-view: false hibernate: - ddl-auto: create + ddl-auto: update autoconfigure: # 로컬에서 실행할 때는 Redis와 Session 설정을 제외 exclude: - org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index fea3d67..b01ed8d 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -18,7 +18,7 @@ spring: jpa: open-in-view: false hibernate: - ddl-auto: create + ddl-auto: update properties: hibernate: default_batch_fetch_size: 100 From 807e55210f57fb457a2c51addb2bcb7bb3e5354b Mon Sep 17 00:00:00 2001 From: Sukyeong Sung Date: Tue, 11 Mar 2025 15:06:59 +0900 Subject: [PATCH 3/6] =?UTF-8?q?Feat:=20web=20socket=20username=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chatMessage/service/ChatMessageServiceImpl.java | 12 ++++-------- .../global/websocket/ChatWebSocketHandler.java | 4 ++-- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/src/main/java/cmf/commitField/domain/chat/chatMessage/service/ChatMessageServiceImpl.java b/src/main/java/cmf/commitField/domain/chat/chatMessage/service/ChatMessageServiceImpl.java index 3c20c82..5d087e1 100644 --- a/src/main/java/cmf/commitField/domain/chat/chatMessage/service/ChatMessageServiceImpl.java +++ b/src/main/java/cmf/commitField/domain/chat/chatMessage/service/ChatMessageServiceImpl.java @@ -43,7 +43,7 @@ public ChatMsgResponse sendMessage(ChatMsgRequest message, Long userId, Long roo ChatRoom chatRoom = chatRoomRepository.findChatRoomById(roomId) .orElseThrow(() -> new CustomException(ErrorCode.NOT_FOUND_ROOM)); - // 채팅 메시지 생성 + ChatMsg chatMsg = ChatMsg.builder() .message(message.getMessage()) .createdAt(LocalDateTime.now()) @@ -52,21 +52,17 @@ public ChatMsgResponse sendMessage(ChatMsgRequest message, Long userId, Long roo .build(); // Response message - // 응답 값으로 변환 - ChatMsgResponse response = ChatMsgResponse.builder() - .roomId(roomId) - .from(findUser.getNickname()) + .from(findUser.getUsername()) // nickname 대신 username 사용 .message(message.getMessage()) .sendAt(chatMsg.getCreatedAt()) .build(); + chatMessageRepository.save(chatMsg); return response; - } - @Transactional(readOnly = true) @Override public List getRoomChatMsgList(Long roomId, Long userId, Long lastId) { @@ -83,7 +79,7 @@ public List getRoomChatMsgList(Long roomId, Long userId, Long lastId for (ChatMsg chatMsg : chatMsgsList) { ChatMsgDto build = ChatMsgDto.builder() .chatMsgId(chatMsg.getId()) - .nickname(chatMsg.getUser().getNickname()) + .nickname(chatMsg.getUser().getUsername()) // nickname 대신 username 사용 .sendAt(chatMsg.getCreatedAt()) .message(chatMsg.getMessage()) .userId(chatMsg.getUser().getId()) diff --git a/src/main/java/cmf/commitField/global/websocket/ChatWebSocketHandler.java b/src/main/java/cmf/commitField/global/websocket/ChatWebSocketHandler.java index fd57de6..117c79e 100644 --- a/src/main/java/cmf/commitField/global/websocket/ChatWebSocketHandler.java +++ b/src/main/java/cmf/commitField/global/websocket/ChatWebSocketHandler.java @@ -200,8 +200,8 @@ private void handleChatMessage(WebSocketSession session, JsonNode jsonNode) { wsMessage.put("type", "CHAT"); wsMessage.put("roomId", roomId); wsMessage.put("userId", userId); - wsMessage.put("from", response.getFrom()); - wsMessage.put("nickname", response.getFrom()); // 클라이언트 호환성을 위해 두 필드 모두 설정 + wsMessage.put("from", user.getUsername()); // nickname 대신 username 사용 + wsMessage.put("nickname", user.getUsername()); // nickname 대신 username 사용 wsMessage.put("message", message); wsMessage.put("sendAt", response.getSendAt().toString()); From f9b31f00d84afbe988cf54b9f3e132bc3aba4d40 Mon Sep 17 00:00:00 2001 From: Sukyeong Sung Date: Tue, 11 Mar 2025 15:52:10 +0900 Subject: [PATCH 4/6] =?UTF-8?q?Feat:=20chat=20response=20=EC=83=9D?= =?UTF-8?q?=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chatRoom/controller/response/ChatRoomResponse.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/cmf/commitField/domain/chat/chatRoom/controller/response/ChatRoomResponse.java b/src/main/java/cmf/commitField/domain/chat/chatRoom/controller/response/ChatRoomResponse.java index fa68d03..0b6fb78 100644 --- a/src/main/java/cmf/commitField/domain/chat/chatRoom/controller/response/ChatRoomResponse.java +++ b/src/main/java/cmf/commitField/domain/chat/chatRoom/controller/response/ChatRoomResponse.java @@ -1,4 +1,4 @@ -//package cmf.commitField.domain.chat.chatRoom.controller.response; -// -//public class ChatRoomResponse { -//} +package cmf.commitField.domain.chat.chatRoom.controller.response; + +public class ChatRoomResponse { +} From 81c2f8e345021dd89d0647d840a2717a7429595b Mon Sep 17 00:00:00 2001 From: Sukyeong Sung Date: Tue, 11 Mar 2025 15:55:34 +0900 Subject: [PATCH 5/6] =?UTF-8?q?Feat:=20chat=20=EC=9D=91=EB=8B=B5=EA=B0=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/chat/chatMessage/service/ChatMessageServiceImpl.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/cmf/commitField/domain/chat/chatMessage/service/ChatMessageServiceImpl.java b/src/main/java/cmf/commitField/domain/chat/chatMessage/service/ChatMessageServiceImpl.java index 5d087e1..f16c075 100644 --- a/src/main/java/cmf/commitField/domain/chat/chatMessage/service/ChatMessageServiceImpl.java +++ b/src/main/java/cmf/commitField/domain/chat/chatMessage/service/ChatMessageServiceImpl.java @@ -44,6 +44,7 @@ public ChatMsgResponse sendMessage(ChatMsgRequest message, Long userId, Long roo ChatRoom chatRoom = chatRoomRepository.findChatRoomById(roomId) .orElseThrow(() -> new CustomException(ErrorCode.NOT_FOUND_ROOM)); + //채팅 메세지 생성 ChatMsg chatMsg = ChatMsg.builder() .message(message.getMessage()) .createdAt(LocalDateTime.now()) @@ -52,6 +53,7 @@ public ChatMsgResponse sendMessage(ChatMsgRequest message, Long userId, Long roo .build(); // Response message + //응답 값으로 변환 ChatMsgResponse response = ChatMsgResponse.builder() .roomId(roomId) .from(findUser.getUsername()) // nickname 대신 username 사용 From 621c91acc50de7b2991a7caa925461c6c73fc90c Mon Sep 17 00:00:00 2001 From: Sukyeong Sung Date: Tue, 11 Mar 2025 17:21:49 +0900 Subject: [PATCH 6/6] =?UTF-8?q?Feat:=20=EC=B1=84=ED=8C=85=20=EC=95=84?= =?UTF-8?q?=EB=B0=94=ED=83=80=20img=20=EA=B8=B0=EB=8A=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/response/ChatMsgResponse.java | 2 ++ .../domain/chat/chatMessage/dto/ChatMsgDto.java | 1 + .../service/ChatMessageServiceImpl.java | 14 ++++++++------ .../domain/user/dto/UserChatInfoDto.java | 1 + .../domain/user/service/UserService.java | 1 + .../global/websocket/ChatWebSocketHandler.java | 1 + 6 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/main/java/cmf/commitField/domain/chat/chatMessage/controller/response/ChatMsgResponse.java b/src/main/java/cmf/commitField/domain/chat/chatMessage/controller/response/ChatMsgResponse.java index 5a76568..1961448 100644 --- a/src/main/java/cmf/commitField/domain/chat/chatMessage/controller/response/ChatMsgResponse.java +++ b/src/main/java/cmf/commitField/domain/chat/chatMessage/controller/response/ChatMsgResponse.java @@ -12,8 +12,10 @@ public class ChatMsgResponse { //채팅방 ID private Long roomId; + private Long id; //사용자(user) private String from; private String message; private LocalDateTime sendAt; + private String avatarUrl; // 아바타 URL 필드 추가 } diff --git a/src/main/java/cmf/commitField/domain/chat/chatMessage/dto/ChatMsgDto.java b/src/main/java/cmf/commitField/domain/chat/chatMessage/dto/ChatMsgDto.java index 4a44efb..8b834bf 100644 --- a/src/main/java/cmf/commitField/domain/chat/chatMessage/dto/ChatMsgDto.java +++ b/src/main/java/cmf/commitField/domain/chat/chatMessage/dto/ChatMsgDto.java @@ -15,4 +15,5 @@ public class ChatMsgDto { private String nickname; private String message; private LocalDateTime sendAt; + private String avatarUrl; // avatarUrl 필드 추가 } diff --git a/src/main/java/cmf/commitField/domain/chat/chatMessage/service/ChatMessageServiceImpl.java b/src/main/java/cmf/commitField/domain/chat/chatMessage/service/ChatMessageServiceImpl.java index f16c075..320eb1c 100644 --- a/src/main/java/cmf/commitField/domain/chat/chatMessage/service/ChatMessageServiceImpl.java +++ b/src/main/java/cmf/commitField/domain/chat/chatMessage/service/ChatMessageServiceImpl.java @@ -44,7 +44,6 @@ public ChatMsgResponse sendMessage(ChatMsgRequest message, Long userId, Long roo ChatRoom chatRoom = chatRoomRepository.findChatRoomById(roomId) .orElseThrow(() -> new CustomException(ErrorCode.NOT_FOUND_ROOM)); - //채팅 메세지 생성 ChatMsg chatMsg = ChatMsg.builder() .message(message.getMessage()) .createdAt(LocalDateTime.now()) @@ -52,17 +51,19 @@ public ChatMsgResponse sendMessage(ChatMsgRequest message, Long userId, Long roo .chatRoom(chatRoom) .build(); + chatMessageRepository.save(chatMsg); + // Response message - //응답 값으로 변환 - ChatMsgResponse response = ChatMsgResponse.builder() + // 응답값 변환 + return ChatMsgResponse.builder() + .id(chatMsg.getId()) // chatMsgId 추가 .roomId(roomId) - .from(findUser.getUsername()) // nickname 대신 username 사용 + .from(findUser.getUsername()) .message(message.getMessage()) .sendAt(chatMsg.getCreatedAt()) + .avatarUrl(findUser.getAvatarUrl()) // 아바타 URL 추가 .build(); - chatMessageRepository.save(chatMsg); - return response; } @Transactional(readOnly = true) @@ -85,6 +86,7 @@ public List getRoomChatMsgList(Long roomId, Long userId, Long lastId .sendAt(chatMsg.getCreatedAt()) .message(chatMsg.getMessage()) .userId(chatMsg.getUser().getId()) + .avatarUrl(chatMsg.getUser().getAvatarUrl()) // avatarUrl 추가 .build(); if (build.getSendAt().isAfter(joinDt)) { chatMsgDtos.add(build); diff --git a/src/main/java/cmf/commitField/domain/user/dto/UserChatInfoDto.java b/src/main/java/cmf/commitField/domain/user/dto/UserChatInfoDto.java index a6ec8e3..145b60d 100644 --- a/src/main/java/cmf/commitField/domain/user/dto/UserChatInfoDto.java +++ b/src/main/java/cmf/commitField/domain/user/dto/UserChatInfoDto.java @@ -10,4 +10,5 @@ public class UserChatInfoDto { private String username; private String nickname; private String email; + private String avatarUrl; } diff --git a/src/main/java/cmf/commitField/domain/user/service/UserService.java b/src/main/java/cmf/commitField/domain/user/service/UserService.java index b35fad7..73ebd16 100644 --- a/src/main/java/cmf/commitField/domain/user/service/UserService.java +++ b/src/main/java/cmf/commitField/domain/user/service/UserService.java @@ -49,6 +49,7 @@ public UserChatInfoDto showUserChatInfo(String username) { .email(user.getEmail()) .nickname(user.getNickname()) .username(user.getUsername()) + .avatarUrl(user.getAvatarUrl()) .build(); } diff --git a/src/main/java/cmf/commitField/global/websocket/ChatWebSocketHandler.java b/src/main/java/cmf/commitField/global/websocket/ChatWebSocketHandler.java index 117c79e..baf48fb 100644 --- a/src/main/java/cmf/commitField/global/websocket/ChatWebSocketHandler.java +++ b/src/main/java/cmf/commitField/global/websocket/ChatWebSocketHandler.java @@ -202,6 +202,7 @@ private void handleChatMessage(WebSocketSession session, JsonNode jsonNode) { wsMessage.put("userId", userId); wsMessage.put("from", user.getUsername()); // nickname 대신 username 사용 wsMessage.put("nickname", user.getUsername()); // nickname 대신 username 사용 + wsMessage.put("avatarUrl", user.getAvatarUrl()); // 아바타 URL 추가 wsMessage.put("message", message); wsMessage.put("sendAt", response.getSendAt().toString());