Merge branch 'feature-nxdev' of https://gitea.nxsir.cn/code/IM into feature-nxdev
This commit is contained in:
+1
-1
@@ -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 = "您有新的好友关系已添加",
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user