mirror of
https://github.com/nagisa77/OpenIsle.git
synced 2026-03-03 02:20:49 +08:00
Return and show last channel message
This commit is contained in:
@@ -1,6 +1,9 @@
|
|||||||
package com.openisle.service;
|
package com.openisle.service;
|
||||||
|
|
||||||
import com.openisle.dto.ChannelDto;
|
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.MessageConversation;
|
||||||
import com.openisle.model.MessageParticipant;
|
import com.openisle.model.MessageParticipant;
|
||||||
import com.openisle.model.User;
|
import com.openisle.model.User;
|
||||||
@@ -54,6 +57,9 @@ public class ChannelService {
|
|||||||
dto.setName(channel.getName());
|
dto.setName(channel.getName());
|
||||||
dto.setDescription(channel.getDescription());
|
dto.setDescription(channel.getDescription());
|
||||||
dto.setAvatar(channel.getAvatar());
|
dto.setAvatar(channel.getAvatar());
|
||||||
|
if (channel.getLastMessage() != null) {
|
||||||
|
dto.setLastMessage(toMessageDto(channel.getLastMessage()));
|
||||||
|
}
|
||||||
dto.setMemberCount(channel.getParticipants().size());
|
dto.setMemberCount(channel.getParticipants().size());
|
||||||
boolean joined = channel.getParticipants().stream()
|
boolean joined = channel.getParticipants().stream()
|
||||||
.anyMatch(p -> p.getUser().getId().equals(userId));
|
.anyMatch(p -> p.getUser().getId().equals(userId));
|
||||||
@@ -73,4 +79,20 @@ public class ChannelService {
|
|||||||
}
|
}
|
||||||
return dto;
|
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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -94,7 +94,9 @@
|
|||||||
{{ ch.name }}
|
{{ ch.name }}
|
||||||
<span v-if="ch.unreadCount > 0" class="unread-dot"></span>
|
<span v-if="ch.unreadCount > 0" class="unread-dot"></span>
|
||||||
</div>
|
</div>
|
||||||
<div class="message-time">成员 {{ ch.memberCount }}</div>
|
<div class="message-time">
|
||||||
|
{{ formatTime(ch.lastMessage?.createdAt || ch.createdAt) }}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="last-message-row">
|
<div class="last-message-row">
|
||||||
<div class="last-message">
|
<div class="last-message">
|
||||||
@@ -102,6 +104,7 @@
|
|||||||
ch.lastMessage ? stripMarkdownLength(ch.lastMessage.content, 100) : ch.description
|
ch.lastMessage ? stripMarkdownLength(ch.lastMessage.content, 100) : ch.description
|
||||||
}}
|
}}
|
||||||
</div>
|
</div>
|
||||||
|
<div class="member-count">成员 {{ ch.memberCount }}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user