From dd73d659412e8778f94e522b31465536d1a826b0 Mon Sep 17 00:00:00 2001 From: aeyongdodam Date: Wed, 28 Feb 2024 03:24:04 +0900 Subject: [PATCH 1/4] =?UTF-8?q?#130=20refactor:=20=EC=B1=84=ED=8C=85=20?= =?UTF-8?q?=EC=9A=94=EC=B2=AD=20=EB=82=A8=EC=9D=80=20=EC=8B=9C=EA=B0=84=20?= =?UTF-8?q?=EA=B3=84=EC=82=B0=20=EB=A1=9C=EC=A7=81=20timeUtil=EB=A1=9C=20?= =?UTF-8?q?=EC=9D=B4=EB=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chatMessage/dto/response/ChatMessageGetResponse.java | 8 ++------ .../java/com/example/sharemind/global/utils/TimeUtil.java | 8 ++++++++ 2 files changed, 10 insertions(+), 6 deletions(-) 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); + } } From 1a59b6a95d6bfcba14519a008724534e60b798ff Mon Sep 17 00:00:00 2001 From: aeyongdodam Date: Wed, 28 Feb 2024 03:24:26 +0900 Subject: [PATCH 2/4] =?UTF-8?q?#130=20feat:=20=EA=B5=AC=EB=A7=A4=EC=9E=90?= =?UTF-8?q?=20=EC=82=AC=EC=9D=B4=ED=8A=B8=20=EC=B1=84=ED=8C=85=20=EC=A0=95?= =?UTF-8?q?=EB=B3=B4=20dto=EC=97=90=20=EB=82=A8=EC=9D=80=20=EC=8B=9C?= =?UTF-8?q?=EA=B0=84=20=ED=95=84=EB=93=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chat/dto/response/ChatGetRoomInfoResponse.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) 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); } } From e068d9396df5aca12a572da69170acf29e276e31 Mon Sep 17 00:00:00 2001 From: aeyongdodam Date: Wed, 28 Feb 2024 03:33:32 +0900 Subject: [PATCH 3/4] =?UTF-8?q?#130=20fix:=20=EC=8B=9C=EC=9E=91=20?= =?UTF-8?q?=EC=83=81=ED=83=9C=20null=EB=A1=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../example/sharemind/chat/application/ChatNoticeService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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..649c62b0 100644 --- a/src/main/java/com/example/sharemind/chat/application/ChatNoticeService.java +++ b/src/main/java/com/example/sharemind/chat/application/ChatNoticeService.java @@ -32,7 +32,7 @@ public void createChatNoticeMessage(Chat chat, ChatMessageStatus chatMessageStat chatMessage = new ChatMessage(chat, false, chat.getConsult().getCustomer().getNickname() + "님, 지금 바로 상담을 시작할까요?", chatMessageStatus); } else if (chatMessageStatus == ChatMessageStatus.START) { updateSendRequestMessageIsActivatedFalse(chat); - chatMessage = new ChatMessage(chat, true, "상담이 시작되었어요.\n" + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy년 MM월 dd일 a HH시 mm분")), chatMessageStatus); + chatMessage = new ChatMessage(chat, null, "상담이 시작되었어요.\n" + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy년 MM월 dd일 a HH시 mm분")), chatMessageStatus); } else if (chatMessageStatus == ChatMessageStatus.FIVE_MINUTE_LEFT) { chatMessage = new ChatMessage(chat, null, "상담 종료까지 5분 남았어요.\n" + chat.getStartedAt().plusMinutes(30).format(DateTimeFormatter.ofPattern("a hh시 mm분")), chatMessageStatus); } else if (chatMessageStatus == ChatMessageStatus.TIME_OVER) { From 7ba2a3a021a51f8e2c0aec0dbe76ea2c16881a7d Mon Sep 17 00:00:00 2001 From: aeyongdodam Date: Wed, 28 Feb 2024 03:56:28 +0900 Subject: [PATCH 4/4] =?UTF-8?q?#130=20fix:=20=EC=83=81=EB=8B=B4=20?= =?UTF-8?q?=EC=8B=9C=EC=9E=91=20=EB=B0=8F=20=EC=A2=85=EB=A3=8C=20=EC=83=81?= =?UTF-8?q?=ED=83=9C=20isCustomer=20true=EB=A1=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sharemind/chat/application/ChatNoticeService.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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 649c62b0..375b7079 100644 --- a/src/main/java/com/example/sharemind/chat/application/ChatNoticeService.java +++ b/src/main/java/com/example/sharemind/chat/application/ChatNoticeService.java @@ -32,18 +32,18 @@ public void createChatNoticeMessage(Chat chat, ChatMessageStatus chatMessageStat chatMessage = new ChatMessage(chat, false, chat.getConsult().getCustomer().getNickname() + "님, 지금 바로 상담을 시작할까요?", chatMessageStatus); } else if (chatMessageStatus == ChatMessageStatus.START) { updateSendRequestMessageIsActivatedFalse(chat); - chatMessage = new ChatMessage(chat, null, "상담이 시작되었어요.\n" + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy년 MM월 dd일 a HH시 mm분")), chatMessageStatus); + chatMessage = new ChatMessage(chat, true, "상담이 시작되었어요.\n" + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy년 MM월 dd일 a HH시 mm분")), chatMessageStatus); } else if (chatMessageStatus == ChatMessageStatus.FIVE_MINUTE_LEFT) { chatMessage = new ChatMessage(chat, null, "상담 종료까지 5분 남았어요.\n" + chat.getStartedAt().plusMinutes(30).format(DateTimeFormatter.ofPattern("a hh시 mm분")), chatMessageStatus); } 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: 프론트 안읽은 메세지 처리할 때 다시 수정 음.. 더 좋은 방법 있는지 생각해보기ㅜㅜ } }