From da3d2a6a71233db7c9b57e16c979edcefdaeee6d Mon Sep 17 00:00:00 2001 From: Tim <135014430+nagisa77@users.noreply.github.com> Date: Sat, 23 Aug 2025 02:03:00 +0800 Subject: [PATCH] Return and show last channel message --- .../com/openisle/service/ChannelService.java | 22 +++++++++++++++++++ frontend_nuxt/pages/message-box/index.vue | 5 ++++- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/backend/src/main/java/com/openisle/service/ChannelService.java b/backend/src/main/java/com/openisle/service/ChannelService.java index 1ec1c9e25..62b1c392b 100644 --- a/backend/src/main/java/com/openisle/service/ChannelService.java +++ b/backend/src/main/java/com/openisle/service/ChannelService.java @@ -1,6 +1,9 @@ package com.openisle.service; import com.openisle.dto.ChannelDto; +import com.openisle.dto.MessageDto; +import com.openisle.dto.UserSummaryDto; +import com.openisle.model.Message; import com.openisle.model.MessageConversation; import com.openisle.model.MessageParticipant; import com.openisle.model.User; @@ -54,6 +57,9 @@ public class ChannelService { dto.setName(channel.getName()); dto.setDescription(channel.getDescription()); dto.setAvatar(channel.getAvatar()); + if (channel.getLastMessage() != null) { + dto.setLastMessage(toMessageDto(channel.getLastMessage())); + } dto.setMemberCount(channel.getParticipants().size()); boolean joined = channel.getParticipants().stream() .anyMatch(p -> p.getUser().getId().equals(userId)); @@ -73,4 +79,20 @@ public class ChannelService { } return dto; } + + private MessageDto toMessageDto(Message message) { + MessageDto dto = new MessageDto(); + dto.setId(message.getId()); + dto.setContent(message.getContent()); + dto.setConversationId(message.getConversation().getId()); + dto.setCreatedAt(message.getCreatedAt()); + + UserSummaryDto userDto = new UserSummaryDto(); + userDto.setId(message.getSender().getId()); + userDto.setUsername(message.getSender().getUsername()); + userDto.setAvatar(message.getSender().getAvatar()); + dto.setSender(userDto); + + return dto; + } } diff --git a/frontend_nuxt/pages/message-box/index.vue b/frontend_nuxt/pages/message-box/index.vue index 8fcdeefeb..e020b8cd6 100644 --- a/frontend_nuxt/pages/message-box/index.vue +++ b/frontend_nuxt/pages/message-box/index.vue @@ -94,7 +94,9 @@ {{ ch.name }} -
+