From 980b2d3c8c09ade56934171d903a831c8884bd22 Mon Sep 17 00:00:00 2001 From: bkw535 Date: Tue, 19 Aug 2025 00:14:18 +0900 Subject: [PATCH] =?UTF-8?q?[BUG]=20=EC=BB=A4=EB=AF=B8=EC=85=98=20=EC=95=84?= =?UTF-8?q?=EC=9D=B4=EB=94=94=20=EC=97=90=EB=9F=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/chat/service/chatroom.service.js | 21 ++++++++++++------- .../repository/commission.repository.js | 10 +++++++++ 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/src/chat/service/chatroom.service.js b/src/chat/service/chatroom.service.js index ef8e260..74ff332 100644 --- a/src/chat/service/chatroom.service.js +++ b/src/chat/service/chatroom.service.js @@ -53,18 +53,23 @@ export const ChatroomService = { const chatrooms = await ChatroomRepository.findChatroomsByUser(dto.userId); - // thumbnail 한 번에 조회 - const commissionIds = chatrooms.map(r => r.commission.id); - const images = await CommissionRepository.findImagesByCommissionId(commissionIds); - const thumbnailMap = Object.fromEntries(images.map(img => [img.targetId.toString(), img.imageUrl])); + // 1. thumbnail 한 번에 조회 (BigInt 변환) + const commissionIds = chatrooms.map(r => BigInt(r.commission.id)); + const images = await CommissionRepository.findImagesByCommissionIds(commissionIds); + const thumbnailMap = Object.fromEntries( + images.map(img => [img.targetId.toString(), img.imageUrl]) + ); - // DTO 생성 + // 2. DTO 생성 const result = []; for (const room of chatrooms) { - room.commission.thumbnail = thumbnailMap[room.commission.id.toString()] || null; + room.commission.thumbnail = thumbnailMap[BigInt(room.commission.id).toString()] || null; - // 방마다 unreadCount 조회 - const unreadCount = await ChatRepository.countUnreadMessages(room.id, dto.accountId); + // 방마다 unreadCount 조회 (BigInt 변환) + const unreadCount = await ChatRepository.countUnreadMessages( + BigInt(room.id), + BigInt(dto.accountId) + ); result.push(new ChatroomListResponseDto(room, unreadCount)); } diff --git a/src/commission/repository/commission.repository.js b/src/commission/repository/commission.repository.js index 5f57517..8ae7f23 100644 --- a/src/commission/repository/commission.repository.js +++ b/src/commission/repository/commission.repository.js @@ -68,6 +68,16 @@ export const CommissionRepository = { }); }, + async findImagesByCommissionIds(commissionIds) { + return await prisma.image.findMany({ + where: { + target: 'commissions', + targetId: { in: commissionIds }, // 배열 처리 + }, + orderBy: { orderIndex: 'asc' }, + }); + }, + /** * 커미션 ID로 신청폼 조회 (작가 정보 포함) */