Skip to content

Commit d96bba9

Browse files
skyeong42seoyeonson
authored andcommitted
Refact: join 관련 기능 보완
1 parent 876f3f5 commit d96bba9

File tree

7 files changed

+42
-15
lines changed

7 files changed

+42
-15
lines changed

src/main/java/cmf/commitField/domain/chat/chatMessage/controller/response/ChatMsgResponse.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
@AllArgsConstructor
1111
@Builder
1212
public class ChatMsgResponse {
13-
private Long chatMsgId;
13+
//채팅방 ID
1414
private Long roomId;
1515
//사용자(user)
1616
private String from;

src/main/java/cmf/commitField/domain/chat/chatMessage/service/ChatMessageServiceImpl.java

+6-5
Original file line numberDiff line numberDiff line change
@@ -51,21 +51,22 @@ public ChatMsgResponse sendMessage(ChatMsgRequest message, Long userId, Long roo
5151
.chatRoom(chatRoom)
5252
.build();
5353

54-
// 메시지 저장
55-
ChatMsg savedMsg = chatMessageRepository.save(chatMsg);
54+
// Response message
55+
// 응답 값으로 변환
5656

57-
// Response - 메시지 ID 추가
5857
ChatMsgResponse response = ChatMsgResponse.builder()
59-
.chatMsgId(savedMsg.getId()) // 저장된 메시지의 ID 추가
58+
6059
.roomId(roomId)
6160
.from(findUser.getNickname())
6261
.message(message.getMessage())
6362
.sendAt(chatMsg.getCreatedAt())
6463
.build();
65-
64+
chatMessageRepository.save(chatMsg);
6665
return response;
66+
6767
}
6868

69+
6970
@Transactional(readOnly = true)
7071
@Override
7172
public List<ChatMsgDto> getRoomChatMsgList(Long roomId, Long userId, Long lastId) {

src/main/java/cmf/commitField/domain/chat/chatRoom/controller/ChatRoomController.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package cmf.commitField.domain.chat.chatRoom.controller;
22

33
import cmf.commitField.domain.File.service.FileService;
4+
import cmf.commitField.domain.chat.chatRoom.controller.request.ChatRoomJoinRequest;
45
import cmf.commitField.domain.chat.chatRoom.controller.request.ChatRoomRequest;
56
import cmf.commitField.domain.chat.chatRoom.controller.request.ChatRoomUpdateRequest;
67
import cmf.commitField.domain.chat.chatRoom.dto.ChatRoomDto;
@@ -62,13 +63,13 @@ public GlobalResponse<Object> createRoom(
6263

6364
//채팅방 입장
6465
@PostMapping("/room/join/{roomId}")
65-
public GlobalResponse<Object> joinRoom(@PathVariable Long roomId, @RequestBody ChatRoomRequest chatRoomRequest) {
66+
public GlobalResponse<Object> joinRoom(@PathVariable Long roomId, @RequestBody ChatRoomJoinRequest chatRoomJoinRequest) {
6667
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
6768

6869
if (authentication instanceof OAuth2AuthenticationToken) {
6970
CustomOAuth2User principal = (CustomOAuth2User) authentication.getPrincipal();
7071
Long userId = principal.getId(); // getId()를 통해 userId를 추출
71-
chatRoomService.joinRoom(roomId, userId, chatRoomRequest); // userId를 전달
72+
chatRoomService.joinRoom(roomId, userId, chatRoomJoinRequest); // userId를 전달
7273
return GlobalResponse.success("해당 채팅방에 입장하셨습니다");
7374
} else {
7475
throw new IllegalArgumentException("로그인 후에 이용해 주세요.");
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package cmf.commitField.domain.chat.chatRoom.controller.request;
2+
3+
import jakarta.validation.constraints.Max;
4+
import jakarta.validation.constraints.NotNull;
5+
import lombok.Getter;
6+
import lombok.Setter;
7+
import org.hibernate.validator.constraints.Length;
8+
9+
@Getter
10+
@Setter
11+
public class ChatRoomJoinRequest {
12+
@NotNull
13+
@Length(min = 2, max = 20)
14+
private String title;
15+
16+
@NotNull
17+
@Max(100)
18+
private Integer userCountMax;
19+
20+
@Length(min = 4, max = 20)
21+
private String password;
22+
}

src/main/java/cmf/commitField/domain/chat/chatRoom/controller/request/ChatRoomRequest.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ public class ChatRoomRequest {
2828

2929
private MultipartFile file; // 파일을 받기 위한 필드
3030

31-
public boolean isFileSizeValid() {
32-
return file == null || file.getSize() <= 5 * 1024 * 1024; // 5MB
33-
}
31+
// public boolean isFileSizeValid() {
32+
// return file == null || file.getSize() <= 5 * 1024 * 1024; // 5MB
33+
// }
3434

3535
}

src/main/java/cmf/commitField/domain/chat/chatRoom/service/ChatRoomService.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package cmf.commitField.domain.chat.chatRoom.service;
22

3+
import cmf.commitField.domain.chat.chatRoom.controller.request.ChatRoomJoinRequest;
34
import cmf.commitField.domain.chat.chatRoom.controller.request.ChatRoomRequest;
45
import cmf.commitField.domain.chat.chatRoom.controller.request.ChatRoomUpdateRequest;
56
import cmf.commitField.domain.chat.chatRoom.dto.ChatRoomDto;
@@ -34,7 +35,7 @@ public interface ChatRoomService {
3435

3536
List<ChatRoomDto> myHeartRoomList(Long userId, Pageable pageable);
3637

37-
void joinRoom(Long roomId, Long userId, ChatRoomRequest chatRoomRequest);
38+
void joinRoom(Long roomId, Long userId, ChatRoomJoinRequest chatRoomJoinRequest);
3839

3940
List<ChatRoomDto> searchRoomByTitle(String roomName, Long userId, Pageable pageable);
4041
}

src/main/java/cmf/commitField/domain/chat/chatRoom/service/ChatRoomServiceImpl.java

+5-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package cmf.commitField.domain.chat.chatRoom.service;
22

33
import cmf.commitField.domain.chat.chatMessage.repository.ChatMessageRepository;
4+
import cmf.commitField.domain.chat.chatRoom.controller.request.ChatRoomJoinRequest;
45
import cmf.commitField.domain.chat.chatRoom.controller.request.ChatRoomRequest;
56
import cmf.commitField.domain.chat.chatRoom.controller.request.ChatRoomUpdateRequest;
67
import cmf.commitField.domain.chat.chatRoom.dto.ChatRoomDto;
@@ -72,6 +73,7 @@ public void createRoom(ChatRoomRequest chatRoomRequest, Long userId, String imag
7273
.imageUrl(imageUrl) // 이미지 URL 추가
7374
.build();
7475
if (password != null) {
76+
System.out.println("Setting password: " + password);
7577
chatRoom.setPassword(password);
7678
chatRoom.setIsPrivate(true);
7779
}
@@ -127,7 +129,7 @@ public List<ChatRoomDto> getUserByRoomPartList(Long userId, Pageable pageable) {
127129

128130
@Override
129131
@Transactional
130-
public void joinRoom(Long roomId, Long userId, ChatRoomRequest chatRoomRequest) {
132+
public void joinRoom(Long roomId, Long userId, ChatRoomJoinRequest chatRoomJoinRequest) {
131133
RLock lock = redissonClient.getLock("joinRoomLock:" + roomId);
132134
try {
133135
boolean available = lock.tryLock(1, TimeUnit.SECONDS);
@@ -145,13 +147,13 @@ public void joinRoom(Long roomId, Long userId, ChatRoomRequest chatRoomRequest)
145147
// user_chatroom 현재 인원 카운트 (비즈니스 로직)
146148
Long currentUserCount = userChatRoomRepository.countNonLockByChatRoomId(roomId); // lock (기존)
147149

148-
if (chatRoom.getIsPrivate() && chatRoomRequest.getPassword() == null) {
150+
if (chatRoom.getIsPrivate() && chatRoomJoinRequest.getPassword() == null) {
149151
throw new CustomException(ErrorCode.NEED_TO_PASSWORD);
150152

151153

152154

153155
}
154-
if (chatRoom.getIsPrivate() && !chatRoomRequest.getPassword().equals(chatRoom.getPassword())) {
156+
if (chatRoom.getIsPrivate() && !chatRoomJoinRequest.getPassword().equals(chatRoom.getPassword())) {
155157
throw new CustomException(ErrorCode.ROOM_PASSWORD_MISMATCH);
156158
}
157159
List<Long> userChatRoomByChatRoomId = userChatRoomRepository

0 commit comments

Comments
 (0)