Files
Kg.SeaTime/Service/Application.Domain/Handle/MessageHandle.cs
Putoo f8d4a28d53 121
2026-05-30 17:32:27 +08:00

61 lines
2.8 KiB
C#

namespace Application.Domain;
public class MessageHandle
{
public async Task<MessageHandleResult> HandleMsg(unit_user_message_event events, int state)
{
if (events.code == nameof(MessageEnum.EventCode.Friend))
{
var relationService = App.GetRequiredService<IUnitUserRelationService>();
var isFriend = await relationService.CheckIsFriend(events.userId, events.pars);
if (isFriend)
{
return new MessageHandleResult() { success = true, msg = "你们已经是好友啦!" };
}
if (state == 1)
{
var friendCount = await relationService.GetUserFriendCount(events.pars);
if (friendCount >= GameConfig.GameUserFriendMaxCount)
{
return new MessageHandleResult() { success = false, msg = "Ta的好友人数已达上限!" };
}
if (await relationService.AddFriend(events.pars,events.userId ))
{
var chatService = App.GetService<IGameChatService>();
var userService = App.GetService<IUnitUserService>();
var myInfo = await userService.GetUserInfoByUserId(events.userId);
string sign = $"{UbbTool.HomeUbb(myInfo.userNo, myInfo.nick)}已通过了您的好友申请!";
await chatService.SendChat(events.pars, (int)myInfo.areaId, nameof(GameChatEnum.Code.System), sign);
return new MessageHandleResult() { success = true, msg = "已通过该好友申请!" };
}
else
{
return new MessageHandleResult() { success = false, msg = "好友添加失败,请稍后尝试!" };
}
}
else
{
var chatService = App.GetService<IGameChatService>();
var userService = App.GetService<IUnitUserService>();
var myInfo = await userService.GetUserInfoByUserId(events.userId);
string sign = $"{UbbTool.HomeUbb(myInfo.userNo, myInfo.nick)}拒绝了您的好友申请!";
await chatService.SendChat(events.pars, (int)myInfo.areaId, nameof(GameChatEnum.Code.System), sign);
return new MessageHandleResult() { success = true, msg = "已拒绝该好友申请!" };
}
}
else if (events.code == nameof(MessageEnum.EventCode.Trade))
{
return new MessageHandleResult() { success = true, msg = "消息通知已处理!" };
}
return new MessageHandleResult() { success = false, msg = "暂不支持该操作处理!" };
}
}
public class MessageHandleResult
{
public bool success { get; set; }
public string msg { get; set; }
}