fix: align backend APIs and upload flow

This commit is contained in:
2026-09-11 18:18:59 +08:00
parent 32177a7293
commit 898cf5dba0
69 changed files with 1081 additions and 153 deletions
+15 -16
View File
@@ -57,24 +57,22 @@ namespace MessageService.Domain.Entities
AddDomainEvent(new ConversationCreatedDomainEvent(this));
}
public void Update(long? LastReadSequenceId = default, int? unreadCount = default, string? lastMsg = default)
public void SetLastReadSequence(long sequenceId)
{
if (LastReadSequenceId != null)
{
LastReadSequenceId = LastReadSequenceId.Value;
this.NotifyModified();
}
if (unreadCount != null)
{
UnreadCount += unreadCount.Value;
NotifyModified();
}
LastReadSequenceId = sequenceId;
NotifyModified();
}
if (lastMsg != null)
{
LastMessage = lastMsg;
NotifyModified();
}
public void IncrementUnread()
{
UnreadCount += 1;
NotifyModified();
}
public void UpdateLastMessage(string lastMessage)
{
LastMessage = lastMessage;
NotifyModified();
}
@@ -86,6 +84,7 @@ namespace MessageService.Domain.Entities
UnreadCount = 0;
if (lastReadSequenceId.HasValue)
LastReadSequenceId = lastReadSequenceId.Value;
NotifyModified();
}
public void UpdateProfile(string name, string avatar)
+11 -11
View File
@@ -91,10 +91,10 @@ namespace MessageService.Domain.Entities
/// <param name="thumb">预览图</param>
/// <param name="sequenceId"></param>
/// <returns></returns>
public static Message BuildImg(MessageCreateContext ctx, string url,
int width, int height, string thumb, long sequenceId)
public static Message BuildImg(MessageCreateContext ctx, string? url,
int width, int height, string thumb, long sequenceId, Guid? fileId = null)
{
var content = new MessageContent("[图片]", new ImageBody(url, width, height, thumb));
var content = new MessageContent("[图片]", new ImageBody(url, width, height, thumb, fileId));
return new Message(ctx, sequenceId, MessageType.Image, content);
}
/// <summary>
@@ -107,10 +107,10 @@ namespace MessageService.Domain.Entities
/// <param name="thumb"></param>
/// <param name="sequenceId"></param>
/// <returns></returns>
public static Message BuildVideo(MessageCreateContext ctx, string url,
int width, int height, string thumb, long sequenceId)
public static Message BuildVideo(MessageCreateContext ctx, string? url,
int width, int height, string thumb, long sequenceId, Guid? fileId = null)
{
var content = new MessageContent("[视频]", new VideoBody(url, width, height, thumb));
var content = new MessageContent("[视频]", new VideoBody(url, width, height, thumb, fileId));
return new Message(ctx, sequenceId, MessageType.Video, content);
}
/// <summary>
@@ -121,10 +121,10 @@ namespace MessageService.Domain.Entities
/// <param name="duration">持续时间</param>
/// <param name="sequenceId"></param>
/// <returns></returns>
public static Message BuildVoice(MessageCreateContext ctx, string url,
int duration, long sequenceId)
public static Message BuildVoice(MessageCreateContext ctx, string? url,
int duration, long sequenceId, Guid? fileId = null)
{
var content = new MessageContent("[音频]", new VoiceBody(url, duration));
var content = new MessageContent("[音频]", new VoiceBody(url, duration, fileId));
return new Message(ctx, sequenceId, MessageType.Voice, content);
}
/// <summary>
@@ -137,11 +137,11 @@ namespace MessageService.Domain.Entities
/// <param name="format">文件格式</param>
/// <param name="sequenceId"></param>
/// <returns></returns>
public static Message BuildFile(MessageCreateContext ctx, string url,
public static Message BuildFile(MessageCreateContext ctx, Guid fileId, string? url,
string name, long size,
string format, long sequenceId)
{
var content = new MessageContent("[文件]", new FileBody(url, name, size, format));
var content = new MessageContent("[文件]", new FileBody(fileId, url, name, size, format));
return new Message(ctx, sequenceId, MessageType.File, content);
}
/// <summary>
@@ -1,8 +1,8 @@
namespace MessageService.Domain.KeyObjects
{
public record TextBody(string Text);
public record ImageBody(string Url, int Width, int Height, string Thumb);
public record VideoBody(string Url, int Width, int Height, string Thumb);
public record VoiceBody(string Url, int Duration);
public record FileBody(string Url, string FileName, long Size, string Format);
public record ImageBody(string? Url, int Width, int Height, string Thumb, Guid? FileId = null);
public record VideoBody(string? Url, int Width, int Height, string Thumb, Guid? FileId = null);
public record VoiceBody(string? Url, int Duration, Guid? FileId = null);
public record FileBody(Guid FileId, string? Url, string FileName, long Size, string Format);
}