From fa30bd8c7d039b19c3aaf2220fcf0baf0baf3fec Mon Sep 17 00:00:00 2001 From: yooooonshine Date: Sun, 16 Nov 2025 17:44:03 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=EC=B1=84=ED=8C=85=20=EC=9A=94=EC=B2=AD?= =?UTF-8?q?=20=EC=9D=91=EB=8B=B5=EC=8B=9C,=20=EC=9A=94=EC=B2=AD=20?= =?UTF-8?q?=EB=A9=94=EC=84=B8=EC=A7=80=20status=EA=B0=80=20REQUEST?= =?UTF-8?q?=EB=A1=9C=20=EB=B3=80=EA=B2=BD=EB=90=98=EB=8F=84=EB=A1=9D=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../aiServer/listener/AiImageCreatedDlqListener.java | 2 +- .../ai/aiServer/listener/AiImageCreatedListener.java | 2 ++ .../domain/ai/aiServer/service/AiServerService.java | 10 +++++++--- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/main/java/hanium/modic/backend/domain/ai/aiServer/listener/AiImageCreatedDlqListener.java b/src/main/java/hanium/modic/backend/domain/ai/aiServer/listener/AiImageCreatedDlqListener.java index 5f19b436..1672b71e 100644 --- a/src/main/java/hanium/modic/backend/domain/ai/aiServer/listener/AiImageCreatedDlqListener.java +++ b/src/main/java/hanium/modic/backend/domain/ai/aiServer/listener/AiImageCreatedDlqListener.java @@ -50,7 +50,7 @@ public void handleFinalFailedMessage(AiImageResponseMessageDto messageDto, Messa AiChatMessageEntity requestChatMessage = chatMessageOpt.get(); - // 2. 메시지 상태를 RESPONSE_FAILED로 변경 + // 2. 메시지 상태를 RESPONSE_FAILED로 변경 -> 요청 메세지의 상태를 RESPONSE_FAILED로 변경 requestChatMessage.updateStatus(AiImageStatus.RESPONSE_FAILED); aiChatMessageRepository.save(requestChatMessage); log.info("[상태 업데이트] requestId={} 메시지 상태를 RESPONSE_FAILED로 변경", messageDto.requestId()); diff --git a/src/main/java/hanium/modic/backend/domain/ai/aiServer/listener/AiImageCreatedListener.java b/src/main/java/hanium/modic/backend/domain/ai/aiServer/listener/AiImageCreatedListener.java index 237a1ddc..a89e93d5 100644 --- a/src/main/java/hanium/modic/backend/domain/ai/aiServer/listener/AiImageCreatedListener.java +++ b/src/main/java/hanium/modic/backend/domain/ai/aiServer/listener/AiImageCreatedListener.java @@ -117,6 +117,7 @@ private void handleSuccessImageGeneration( // 4.요청 메시지 완료상태로 업데이트 requestChatMessage.updateStatus(AiImageStatus.REQUEST); + aiChatMessageRepository.save(requestChatMessage); // 5.이미지 URL 생성 String imageUrl = aiChatImageService.createImageGetUrl(aiChatImage.getId()); @@ -152,6 +153,7 @@ private void handleFailedImageGeneration( // 3.요청 메시지 완료상태로 업데이트 requestChatMessage.updateStatus(AiImageStatus.REQUEST); + aiChatMessageRepository.save(requestChatMessage); // 4.클라이언트는 이미지 생성 요청 후 SSE 연결을 맺어, SSE 연결 객체가 아래 Service에 존재한다. 이를 사용해 채팅을 응답한다. aiResponseSseService.sendToClient( diff --git a/src/main/java/hanium/modic/backend/domain/ai/aiServer/service/AiServerService.java b/src/main/java/hanium/modic/backend/domain/ai/aiServer/service/AiServerService.java index 5dc1ee6d..4b69b0a0 100644 --- a/src/main/java/hanium/modic/backend/domain/ai/aiServer/service/AiServerService.java +++ b/src/main/java/hanium/modic/backend/domain/ai/aiServer/service/AiServerService.java @@ -157,10 +157,14 @@ private void requestChatCreation( .build(); aiChatMessageRepository.save(message); - // 3.채팅룸 요약 업데이트 + // 3. 요청 메세지 상태 변경 + chatMessage.updateStatus(AiImageStatus.REQUEST); + aiChatMessageRepository.save(chatMessage); + + // 4.채팅룸 요약 업데이트 aiChatRoomService.updateChatSummary(userId, postId, response.newSummary()); - // 3. 사용자가 보낸 image 조회 + // 5. 사용자가 보낸 image 조회 String imageUrl; if (aiChatImages.isEmpty()) { imageUrl = null; @@ -168,7 +172,7 @@ private void requestChatCreation( imageUrl = aiChatImageService.createImageGetUrl(aiChatImages.get(0).getId()); } - // 4. SSE로 실시간 응답 + // 6. SSE로 실시간 응답 aiResponseSseService.sendToClient( chatMessage.getRequestId(), ChatMessageResponse.of(message, imageUrl)