Merge branch 'feature-nxdev' of https://gitea.nxsir.cn/code/IM into feature-nxdev

This commit is contained in:
2026-03-18 21:48:47 +08:00
14 changed files with 291 additions and 95 deletions
@@ -14,7 +14,11 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("IMTest")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
<<<<<<< HEAD
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+eb8455e141ea496a2134ad7c7d9b759b6029dd75")]
=======
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+f7223dc5904286fdf8e117b56c37f58dc431d68b")]
>>>>>>> eb8455e141ea496a2134ad7c7d9b759b6029dd75
[assembly: System.Reflection.AssemblyProductAttribute("IMTest")]
[assembly: System.Reflection.AssemblyTitleAttribute("IMTest")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
@@ -1 +1,5 @@
<<<<<<< HEAD
546570633bb9288fc2957cbb29a807a45f3e48ba127ec13bc3956d28f5e6ed5b
=======
3c0a5335719f892c65744a9df7eae9fd7b12de9067131f5c9f4cb65f2b27b8d4
>>>>>>> eb8455e141ea496a2134ad7c7d9b759b6029dd75
@@ -22,7 +22,7 @@ namespace IM_API.Application.EventHandlers.FriendAddHandler
var usersList = new List<string> {
@event.RequestUserId.ToString(), @event.ResponseUserId.ToString()
};
var res = new HubResponse<MessageBaseDto>("Event", new MessageBaseDto()
var res = new HubResponse<MessageBaseDto>(HubResponseType.FriendAccepted, new MessageBaseDto()
{
ChatType = ChatType.PRIVATE,
Content = "您有新的好友关系已添加",
+36 -3
View File
@@ -39,11 +39,44 @@ namespace IM_API.Dtos
Message = codeDefine.Message;
Data = data;
}
public HubResponse(HubResponseType type, T? data)
{
Code = CodeDefine.SUCCESS.Code;
Method = "Event";
Type = type;
Data = data;
}
}
public enum HubResponseType
{
ChatMsg = 1, // 聊天内容
SystemNotice = 2, // 系统通知(如:申请好友成功)
ActionStatus = 3 // 状态变更(如:对方正在输入、已读回执)
// --- 基础聊天 (10-19) ---
ChatMsg = 1, // 普通消息
// --- 系统与通知 (20-29) ---
SystemNotice = 2, // 通用系统通知
FriendRequest = 21, // 好友申请消息
FriendAccepted = 22, // 好友通过通知
UserInLine = 23, // 好友上线/下线通知
// --- 状态变更与交互 (30-39) ---
ActionStatus = 3, // 通用状态(正在输入等)
MsgReadReceipt = 31, // 已读回执
MsgRevoke = 32, // 消息撤回
MsgEdit = 33, // 消息二次编辑更新
// --- 群组管理 (40-49) ---
GroupInvited = 41, // 被邀请入群
GroupMemberUpdate = 42, // 群成员变动(进群/退群)
GroupAnnouncement = 43, // 群公告更新
GroupDismissed = 44, // 群组解散
// --- 实时通信控制 (50-59) ---
RTC_CallRequest = 51, // 音视频通话邀请
RTC_CallHandled = 52, // 音视频接听/挂断/取消状态
// --- 异常与安全 (90-99) ---
ErrorInternal = 91, // 服务器内部错误
TokenExpired = 92, // 登录过期,强制下线
KickedOut = 93 // 被挤下线(异地登录)
}
}
@@ -146,7 +146,8 @@ namespace IM_API.Services
public async Task MakeConversationAsync(int userAId, int userBId, ChatType chatType)
{
var userAcExist = await _context.Conversations.AnyAsync(x => x.UserId == userAId && x.TargetId == userBId);
var userAcExist = await _context.Conversations.AnyAsync(
x => x.UserId == userAId && x.TargetId == userBId && x.ChatType == chatType);
if (userAcExist) return;
var streamKey = chatType == ChatType.PRIVATE ?
StreamKeyBuilder.Private(userAId, userBId) : StreamKeyBuilder.Group(userBId);