前端:

1、优化消息排序逻辑
2、新增加载历史消息
3、修复已知问题
后端:
1、优化消息排序逻辑
2、增加用户信息缓存机制
3、修改日期类型为DateTimeOffset改善时区信息丢失问题
3、修复了已知问题
数据库:
1、新增SequenceId字段用于消息排序
2、新增ClientMsgId字段用于客户端消息回执
This commit is contained in:
2026-02-07 22:37:56 +08:00
118 changed files with 10691 additions and 452 deletions
+9 -10
View File
@@ -101,7 +101,8 @@ public partial class ImContext : DbContext
entity.HasIndex(e => e.UserId, "Userid");
entity.HasIndex(e => e.LastReadMessageId, "lastMessageId");
entity.HasIndex(e => e.LastReadSequenceId, "LastReadSequenceId");
entity.Property(e => e.Id)
.HasColumnType("int(11)")
@@ -113,7 +114,7 @@ public partial class ImContext : DbContext
entity.Property(e => e.LastMessageTime)
.HasComment("最后一条消息发送时间")
.HasColumnType("datetime");
entity.Property(e => e.LastReadMessageId)
entity.Property(e => e.LastReadSequenceId)
.HasComment("最后一条未读消息ID ")
.HasColumnType("int(11)")
.HasColumnName("lastReadMessageId");
@@ -130,10 +131,6 @@ public partial class ImContext : DbContext
.HasComment("用户")
.HasColumnType("int(11)");
entity.HasOne(d => d.LastReadMessage).WithMany(p => p.Conversations)
.HasForeignKey(d => d.LastReadMessageId)
.HasConstraintName("conversations_ibfk_2");
entity.HasOne(d => d.User).WithMany(p => p.Conversations)
.HasForeignKey(d => d.UserId)
.OnDelete(DeleteBehavior.ClientSetNull)
@@ -197,7 +194,7 @@ public partial class ImContext : DbContext
entity.Property(e => e.Size)
.HasComment("文件大小(单位:KB ")
.HasColumnType("int(11)");
entity.Property(e => e.Type)
entity.Property(e => e.FileType)
.HasMaxLength(10)
.HasComment("文件类型 ");
entity.Property(e => e.Url)
@@ -529,6 +526,11 @@ public partial class ImContext : DbContext
entity.HasIndex(e => e.Sender, "Sender");
//设置联合唯一索引
entity.HasIndex(e => new { e.SequenceId, e.StreamKey })
.IsUnique();
entity.Property(e => e.Id)
.HasColumnType("int(11)")
.HasColumnName("ID");
@@ -541,9 +543,6 @@ public partial class ImContext : DbContext
entity.Property(e => e.Created)
.HasComment("发送时间 ")
.HasColumnType("datetime");
entity.Property(e => e.GroupMemberId)
.HasComment("若为群消息则表示具体的成员id")
.HasColumnType("int(11)");
entity.Property(e => e.MsgType)
.HasComment("消息类型\r\n(0:文本,1:图片,2:语音,3:视频,4:文件,5:语音聊天,6:视频聊天)")
.HasColumnType("tinyint(4)");