Skip to content

Commit

Permalink
Merge pull request #69 from UMC-ON/feat/chat
Browse files Browse the repository at this point in the history
feat: 기존에 존재하는 채팅방 응답 로직 추가
  • Loading branch information
Haewonny authored Aug 21, 2024
2 parents 55e66e6 + 1577e09 commit 985ceeb
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 26 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -152,43 +152,53 @@ public ChatResponseDto createChatRoom(User user, ChatRequestDto chatRequestDto)
User chatUserTwo = userRepository.findById(chatRequestDto.getReceiverId())
.orElseThrow(() -> new InternalServerException(ResponseCode.INVALID_PARAMETER));

ChattingRoom chattingRoom = ChattingRoom.builder()
.chattingRoomType(chatRequestDto.getChatType())
.chatUserOne(user) // 글 보고 채팅 신청하는 사람
.chatUserTwo(chatUserTwo) // 글 주인
.build();
ChattingRoom existingRoom = chattingRoomRepository.findChattingRoomByChatUserOneAndChatUserTwo(user, chatUserTwo);

Long responseRoomId = 0L;

ChattingRoom savedChattingRoom = chattingRoomRepository.save(chattingRoom);
if (existingRoom != null) {
responseRoomId = existingRoom.getId();
} else {
ChattingRoom chattingRoom = ChattingRoom.builder()
.chattingRoomType(chatRequestDto.getChatType())
.chatUserOne(user) // 글 보고 채팅 신청하는 사람
.chatUserTwo(chatUserTwo) // 글 주인
.build();

if (chatRequestDto.getChatType() == ChatType.COMPANY) {
CompanyPost companyPost = companyPostRepository.findById(chatRequestDto.getPostId()).orElse(null);
ChattingRoom savedChattingRoom = chattingRoomRepository.save(chattingRoom);

SpecialChat specialChat = SpecialChat.builder()
.chattingRoom(savedChattingRoom)
.user(chatUserTwo)
.companyPost(companyPost)
.specialChatType(chatRequestDto.getChatType())
.build();
if (chatRequestDto.getChatType() == ChatType.COMPANY) {
CompanyPost companyPost = companyPostRepository.findById(chatRequestDto.getPostId()).orElse(null);

specialChatRepository.save(specialChat);
SpecialChat specialChat = SpecialChat.builder()
.chattingRoom(savedChattingRoom)
.user(chatUserTwo)
.companyPost(companyPost)
.specialChatType(chatRequestDto.getChatType())
.build();

} else {
MarketPost marketPost = marketPostRepository.findById(chatRequestDto.getPostId()).orElse(null);
specialChatRepository.save(specialChat);

SpecialChat specialChat = SpecialChat.builder()
.chattingRoom(savedChattingRoom)
.user(chatUserTwo)
.marketPost(marketPost)
.specialChatType(chatRequestDto.getChatType())
.build();
} else {
MarketPost marketPost = marketPostRepository.findById(chatRequestDto.getPostId()).orElse(null);

SpecialChat specialChat = SpecialChat.builder()
.chattingRoom(savedChattingRoom)
.user(chatUserTwo)
.marketPost(marketPost)
.specialChatType(chatRequestDto.getChatType())
.build();

specialChatRepository.save(specialChat);

}

specialChatRepository.save(specialChat);
responseRoomId = savedChattingRoom.getId();

}

return ChatResponseDto.builder()
.roomId(savedChattingRoom.getId())
.roomId(responseRoomId)
.build();
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package com.on.server.domain.chat.domain.repository;

import com.on.server.domain.chat.domain.ChatType;
import com.on.server.domain.chat.domain.ChattingRoom;
import com.on.server.domain.user.domain.User;
import org.springframework.data.jpa.repository.JpaRepository;
Expand All @@ -12,5 +11,7 @@ public interface ChattingRoomRepository extends JpaRepository<ChattingRoom, Long

Optional<ChattingRoom> findById(Long roomId);

ChattingRoom findChattingRoomByChatUserOneAndChatUserTwo(User user, User user2);

List<ChattingRoom> findChattingRoomByChatUserOneOrChatUserTwo(User user, User user1);
}

0 comments on commit 985ceeb

Please sign in to comment.