From 47d10f7bf5ee42a775546d8fb54b750f3a2d00c7 Mon Sep 17 00:00:00 2001 From: Admin Date: Tue, 23 Sep 2025 21:59:31 +0900 Subject: [PATCH 1/2] =?UTF-8?q?fix:=20=EC=B1=84=ED=8C=85=20=EC=A0=95?= =?UTF-8?q?=EB=B3=B4=20=EB=A7=A4=EB=AC=BC=20=EC=9D=B4=EB=AF=B8=EC=A7=80=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 --- .../com/campick/server/api/chat/dto/ChatRoomResDto.java | 1 + .../com/campick/server/api/chat/service/ChatService.java | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/src/main/java/com/campick/server/api/chat/dto/ChatRoomResDto.java b/src/main/java/com/campick/server/api/chat/dto/ChatRoomResDto.java index 4e1880b..a981838 100644 --- a/src/main/java/com/campick/server/api/chat/dto/ChatRoomResDto.java +++ b/src/main/java/com/campick/server/api/chat/dto/ChatRoomResDto.java @@ -17,6 +17,7 @@ public class ChatRoomResDto { private String sellerPhoneNumber; private Long productId; private String productTitle; + private String productImage; private String productStatus; private String productPrice; private Boolean isActive; 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 465a6a8..141780d 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 @@ -239,6 +239,12 @@ public void broadcastSoldEvent(WebSocketSession session, JsonNode data) { } private ChatRoomResDto convertToChatRoomResDto(ChatRoom chatRoom, List chatMessages) { + String thumbnailImage = chatRoom.getProduct().getImages().stream() + .filter(ProductImage::getIsThumbnail) + .map(ProductImage::getImageUrl) + .findFirst() + .orElse(null); + ChatRoomResDto chatRoomResDto = new ChatRoomResDto(); chatRoomResDto.setSellerId(chatRoom.getSeller().getId()); chatRoomResDto.setSellerNickname(chatRoom.getSeller().getNickname()); @@ -248,6 +254,7 @@ private ChatRoomResDto convertToChatRoomResDto(ChatRoom chatRoom, List Date: Tue, 23 Sep 2025 22:11:43 +0900 Subject: [PATCH 2/2] =?UTF-8?q?fix:=20=EC=B1=84=ED=8C=85=EB=B0=A9=20?= =?UTF-8?q?=EC=A4=91=EB=B3=B5=EC=83=9D=EC=84=B1=20=EB=A7=89=EC=9D=8C=20?= =?UTF-8?q?=EA=B0=99=EC=9D=80=20=EC=A0=95=EB=B3=B4=EB=A1=9C=20=EC=A1=B4?= =?UTF-8?q?=EC=9E=AC=ED=95=98=EB=8A=94=EC=A7=80=20=ED=95=9C=EB=B2=88=20?= =?UTF-8?q?=ED=99=95=EC=9D=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/chat/repository/ChatRoomRepository.java | 3 +++ .../server/api/chat/service/ChatService.java | 17 +++++++++++------ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/campick/server/api/chat/repository/ChatRoomRepository.java b/src/main/java/com/campick/server/api/chat/repository/ChatRoomRepository.java index f3526f5..7dade22 100644 --- a/src/main/java/com/campick/server/api/chat/repository/ChatRoomRepository.java +++ b/src/main/java/com/campick/server/api/chat/repository/ChatRoomRepository.java @@ -1,6 +1,8 @@ package com.campick.server.api.chat.repository; import com.campick.server.api.chat.entity.ChatRoom; +import com.campick.server.api.member.entity.Member; +import com.campick.server.api.product.entity.Product; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; @@ -24,4 +26,5 @@ public interface ChatRoomRepository extends JpaRepository { "WHERE s.id = :memberId OR b.id = :memberId") List findAllByMemberId(@Param("memberId") Long memberId); + Optional findByProductAndSellerAndBuyer(Product product, Member seller, Member buyer); } 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 141780d..4f6577d 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 @@ -93,13 +93,18 @@ public Long startChatRoom(ChatRoomReqDto chatRoomReqDto, Long memberId) { Member seller = product.getSeller(); Member buyer = memberRepository.findById(memberId).orElseThrow( () -> new NotFoundException(ErrorStatus.MEMBER_NOT_FOUND.getMessage())); - ChatRoom chatRoom = ChatRoom.builder() - .seller(seller) - .buyer(buyer) - .product(product) - .build(); - chatRoomRepository.save(chatRoom); + ChatRoom chatRoom = chatRoomRepository.findByProductAndSellerAndBuyer(product, seller, buyer) + .orElse(null); + + if (chatRoom == null) { + chatRoom = ChatRoom.builder() + .seller(seller) + .buyer(buyer) + .product(product) + .build(); + chatRoomRepository.save(chatRoom); + } return chatRoom.getId(); }