diff --git a/src/main/java/com/example/sharemind/chat/application/ChatNoticeService.java b/src/main/java/com/example/sharemind/chat/application/ChatNoticeService.java index 580f8c05..375b7079 100644 --- a/src/main/java/com/example/sharemind/chat/application/ChatNoticeService.java +++ b/src/main/java/com/example/sharemind/chat/application/ChatNoticeService.java @@ -38,12 +38,12 @@ public void createChatNoticeMessage(Chat chat, ChatMessageStatus chatMessageStat } else if (chatMessageStatus == ChatMessageStatus.TIME_OVER) { chatMessage = new ChatMessage(chat, null, "상담 시간이 모두 마무리 되었어요.\n상담이 정상적으로 종료되었다면 상담 종료 버튼을 눌러 주세요.\n*신고접수가 되지 않은 상담 건은 7일 후 자동으로 거래가 확정됩니다.", chatMessageStatus); } else if (chatMessageStatus == ChatMessageStatus.FINISH) { - chatMessage = new ChatMessage(chat, null, "님과의 상담이 만족스러우셨나요? 후기를 남겨주시면 더 나은 서비스를 위해 큰 도움이 되어요.", chatMessageStatus); + chatMessage = new ChatMessage(chat, true, "님과의 상담이 만족스러우셨나요? 후기를 남겨주시면 더 나은 서비스를 위해 큰 도움이 되어요.", chatMessageStatus); } if (chatMessage != null) { chatMessageRepository.save(chatMessage); - String opponentNickname = getOpponentNickname(chat, chatMessage.getIsCustomer()); - sendChatNoticeMessage(chatMessage, opponentNickname, chat.getChatId()); +// String opponentNickname = getOpponentNickname(chat, chatMessage.getIsCustomer()); +// sendChatNoticeMessage(chatMessage, opponentNickname, chat.getChatId()); //todo: 프론트 안읽은 메세지 처리할 때 다시 수정 음.. 더 좋은 방법 있는지 생각해보기ㅜㅜ } } diff --git a/src/main/java/com/example/sharemind/chat/dto/response/ChatGetRoomInfoResponse.java b/src/main/java/com/example/sharemind/chat/dto/response/ChatGetRoomInfoResponse.java index 79549b14..e8c19a6b 100644 --- a/src/main/java/com/example/sharemind/chat/dto/response/ChatGetRoomInfoResponse.java +++ b/src/main/java/com/example/sharemind/chat/dto/response/ChatGetRoomInfoResponse.java @@ -1,6 +1,8 @@ package com.example.sharemind.chat.dto.response; +import com.example.sharemind.chat.content.ChatStatus; import com.example.sharemind.chat.domain.Chat; +import com.example.sharemind.global.utils.TimeUtil; import io.swagger.v3.oas.annotations.media.Schema; import lombok.AccessLevel; import lombok.Getter; @@ -16,7 +18,16 @@ public class ChatGetRoomInfoResponse { @Schema(description = "채팅 진행 상태") private final String status; + @Schema(description = "채팅 요청 상태일 때, 남은 시간, 채팅 요청 상태 이외에는 null") + private final String time; + public static ChatGetRoomInfoResponse of(Chat chat) { - return new ChatGetRoomInfoResponse(chat.getConsult().getCustomer().getNickname(), chat.getChatStatus().getDisplayName()); + if (chat.getChatStatus() == ChatStatus.SEND_REQUEST) { + return new ChatGetRoomInfoResponse(chat.getConsult().getCustomer().getNickname(), + chat.getChatStatus().getDisplayName(), + TimeUtil.getChatSendRequestLeftTime(chat.getUpdatedAt())); + } + return new ChatGetRoomInfoResponse(chat.getConsult().getCustomer().getNickname(), + chat.getChatStatus().getDisplayName(), null); } } diff --git a/src/main/java/com/example/sharemind/chatMessage/dto/response/ChatMessageGetResponse.java b/src/main/java/com/example/sharemind/chatMessage/dto/response/ChatMessageGetResponse.java index 34f803b5..6be955db 100644 --- a/src/main/java/com/example/sharemind/chatMessage/dto/response/ChatMessageGetResponse.java +++ b/src/main/java/com/example/sharemind/chatMessage/dto/response/ChatMessageGetResponse.java @@ -4,11 +4,11 @@ import com.example.sharemind.chatMessage.content.ChatMessageStatus; import com.example.sharemind.chatMessage.domain.ChatMessage; import com.example.sharemind.consult.domain.Consult; +import com.example.sharemind.global.utils.TimeUtil; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.v3.oas.annotations.media.Schema; import java.time.LocalDateTime; -import java.time.temporal.ChronoUnit; import lombok.AccessLevel; import lombok.Getter; @@ -47,13 +47,9 @@ public static ChatMessageGetResponse of(Chat chat, ChatMessage chatMessage) { Consult consult = chat.getConsult(); if (chatMessage.getMessageStatus() == ChatMessageStatus.SEND_REQUEST) { - long gapSeconds = ChronoUnit.SECONDS.between(chatMessage.getCreatedAt(), LocalDateTime.now()); - long totalSeconds = 600 - gapSeconds; - long minutes = totalSeconds / 60; - long seconds = totalSeconds % 60; return new ChatMessageGetResponse(consult.getCustomer().getNickname(), consult.getCounselor().getNickname(), chatMessage.getMessageId(), chatMessage.getContent(), chatMessage.getUpdatedAt(), - chatMessage.getIsCustomer(), chatMessage.getMessageStatus(), String.format("%02d:%02d", minutes, seconds)); + chatMessage.getIsCustomer(), chatMessage.getMessageStatus(), TimeUtil.getChatSendRequestLeftTime(chatMessage.getCreatedAt())); } if (chatMessage.getMessageStatus() == ChatMessageStatus.FINISH) { String nickname = chat.getConsult().getCounselor().getNickname(); diff --git a/src/main/java/com/example/sharemind/global/utils/TimeUtil.java b/src/main/java/com/example/sharemind/global/utils/TimeUtil.java index c8915365..84d214aa 100644 --- a/src/main/java/com/example/sharemind/global/utils/TimeUtil.java +++ b/src/main/java/com/example/sharemind/global/utils/TimeUtil.java @@ -32,4 +32,12 @@ public static String getUpdatedAtForReview(LocalDateTime updatedAt) { return updatedAt.format(DateTimeFormatter.ofPattern("MM월 dd일")); } } + + public static String getChatSendRequestLeftTime(LocalDateTime updatedAt) { + long gapSeconds = ChronoUnit.SECONDS.between(updatedAt, LocalDateTime.now()); + long totalSeconds = 600 - gapSeconds; + long minutes = totalSeconds / 60; + long seconds = totalSeconds % 60; + return String.format("%02d:%02d", minutes, seconds); + } }