This commit is contained in:
2026-02-12 21:53:26 +08:00
parent 77db20dc38
commit b96d895809
339 changed files with 46655 additions and 46657 deletions
@@ -1,22 +1,22 @@
using IM_API.Dtos.Auth;
using IM_API.Dtos.User;
using IM_API.Models;
namespace IM_API.Interface.Services
{
public interface IAuthService
{
/// <summary>
/// 登录
/// </summary>
/// <param name="dto"></param>
/// <returns></returns>
Task<User> LoginAsync(LoginRequestDto dto);
/// <summary>
/// 注册
/// </summary>
/// <param name="dto"></param>
/// <returns></returns>
Task<UserInfoDto> RegisterAsync(RegisterRequestDto dto);
}
}
using IM_API.Dtos.Auth;
using IM_API.Dtos.User;
using IM_API.Models;
namespace IM_API.Interface.Services
{
public interface IAuthService
{
/// <summary>
/// 登录
/// </summary>
/// <param name="dto"></param>
/// <returns></returns>
Task<User> LoginAsync(LoginRequestDto dto);
/// <summary>
/// 注册
/// </summary>
/// <param name="dto"></param>
/// <returns></returns>
Task<UserInfoDto> RegisterAsync(RegisterRequestDto dto);
}
}
@@ -1,49 +1,49 @@
using IM_API.Models;
namespace IM_API.Interface.Services
{
public interface ICacheService
{
/// <summary>
/// 设置缓存
/// </summary>
/// <typeparam name="T">缓存对象类型</typeparam>
/// <param name="key">缓存索引值</param>
/// <param name="value">要缓存的对象</param>
/// <param name="expiration">过期时间</param>
/// <returns></returns>
Task SetAsync<T>(string key, T value, TimeSpan? expiration = null);
/// <summary>
/// 获取缓存
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="key">缓存索引</param>
/// <returns></returns>
Task<T?> GetAsync<T>(string key);
/// <summary>
/// 删除缓存
/// </summary>
/// <param name="key">缓存索引</param>
/// <returns></returns>
Task RemoveAsync(string key);
/// <summary>
/// 设置用户缓存
/// </summary>
/// <param name="user"></param>
/// <returns></returns>
Task SetUserCacheAsync(User user);
/// <summary>
/// 通过用户名获取用户缓存
/// </summary>
/// <param name="username"></param>
/// <returns></returns>
Task<User?> GetUserCacheAsync(string username);
/// <summary>
/// 删除用户缓存
/// </summary>
/// <param name="id"></param>
/// <param name="username"></param>
/// <returns></returns>
Task RemoveUserCacheAsync(string username);
}
}
using IM_API.Models;
namespace IM_API.Interface.Services
{
public interface ICacheService
{
/// <summary>
/// 设置缓存
/// </summary>
/// <typeparam name="T">缓存对象类型</typeparam>
/// <param name="key">缓存索引值</param>
/// <param name="value">要缓存的对象</param>
/// <param name="expiration">过期时间</param>
/// <returns></returns>
Task SetAsync<T>(string key, T value, TimeSpan? expiration = null);
/// <summary>
/// 获取缓存
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="key">缓存索引</param>
/// <returns></returns>
Task<T?> GetAsync<T>(string key);
/// <summary>
/// 删除缓存
/// </summary>
/// <param name="key">缓存索引</param>
/// <returns></returns>
Task RemoveAsync(string key);
/// <summary>
/// 设置用户缓存
/// </summary>
/// <param name="user"></param>
/// <returns></returns>
Task SetUserCacheAsync(User user);
/// <summary>
/// 通过用户名获取用户缓存
/// </summary>
/// <param name="username"></param>
/// <returns></returns>
Task<User?> GetUserCacheAsync(string username);
/// <summary>
/// 删除用户缓存
/// </summary>
/// <param name="id"></param>
/// <param name="username"></param>
/// <returns></returns>
Task RemoveUserCacheAsync(string username);
}
}
@@ -1,56 +1,56 @@
using IM_API.Dtos.Conversation;
using IM_API.Models;
using IM_API.VOs.Conversation;
namespace IM_API.Interface.Services
{
public interface IConversationService
{
/// <summary>
/// 清除消息会话
/// </summary>
/// <param name="clearConversationsDto"></param>
/// <returns></returns>
Task<bool> ClearConversationsAsync(int userId);
/// <summary>
/// 删除单个聊天会话
/// </summary>
/// <param name="conversationId"></param>
/// <returns></returns>
Task<bool> DeleteConversationAsync(int conversationId);
/// <summary>
/// 获取用户当前消息会话
/// </summary>
/// <param name="userId">用户id</param>
/// <returns></returns>
Task<List<ConversationVo>> GetConversationsAsync(int userId);
/// <summary>
/// 获取指定用户的所有推送标识符
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
Task<List<string>> GetUserAllStreamKeyAsync(int userId);
/// <summary>
/// 获取单个conversation信息
/// </summary>
/// <param name="conversationId"></param>
/// <returns></returns>
Task<ConversationVo> GetConversationByIdAsync(int userId, int conversationId);
/// <summary>
/// 清空未读消息
/// </summary>
/// <param name="userId"></param>
/// <param name="conversationId"></param>
/// <returns></returns>
Task<bool> ClearUnreadCountAsync(int userId, int conversationId);
/// <summary>
/// 为用户创建会话
/// </summary>
/// <param name="userAId"></param>
/// <param name="userBId"></param>
/// <param name="chatType"></param>
/// <returns></returns>
Task MakeConversationAsync(int userAId, int userBId, ChatType chatType);
Task UpdateConversationAfterSentAsync(UpdateConversationDto dto);
}
}
using IM_API.Dtos.Conversation;
using IM_API.Models;
using IM_API.VOs.Conversation;
namespace IM_API.Interface.Services
{
public interface IConversationService
{
/// <summary>
/// 清除消息会话
/// </summary>
/// <param name="clearConversationsDto"></param>
/// <returns></returns>
Task<bool> ClearConversationsAsync(int userId);
/// <summary>
/// 删除单个聊天会话
/// </summary>
/// <param name="conversationId"></param>
/// <returns></returns>
Task<bool> DeleteConversationAsync(int conversationId);
/// <summary>
/// 获取用户当前消息会话
/// </summary>
/// <param name="userId">用户id</param>
/// <returns></returns>
Task<List<ConversationVo>> GetConversationsAsync(int userId);
/// <summary>
/// 获取指定用户的所有推送标识符
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
Task<List<string>> GetUserAllStreamKeyAsync(int userId);
/// <summary>
/// 获取单个conversation信息
/// </summary>
/// <param name="conversationId"></param>
/// <returns></returns>
Task<ConversationVo> GetConversationByIdAsync(int userId, int conversationId);
/// <summary>
/// 清空未读消息
/// </summary>
/// <param name="userId"></param>
/// <param name="conversationId"></param>
/// <returns></returns>
Task<bool> ClearUnreadCountAsync(int userId, int conversationId);
/// <summary>
/// 为用户创建会话
/// </summary>
/// <param name="userAId"></param>
/// <param name="userBId"></param>
/// <param name="chatType"></param>
/// <returns></returns>
Task MakeConversationAsync(int userAId, int userBId, ChatType chatType);
Task UpdateConversationAfterSentAsync(UpdateConversationDto dto);
}
}
@@ -1,71 +1,71 @@
using IM_API.Dtos.Friend;
using IM_API.Models;
namespace IM_API.Interface.Services
{
public interface IFriendSerivce
{
/// <summary>
/// 获取好友列表
/// </summary>
/// <param name="userId">指定用户</param>
/// <param name="page">当前页</param>
/// <param name="limit">分页大小</param>
/// <returns></returns>
Task<List<FriendInfoDto>> GetFriendListAsync(int userId,int page,int limit,bool desc);
/// <summary>
/// 新增好友请求
/// </summary>
/// <param name="friendRequest"></param>
/// <returns></returns>
Task<bool> SendFriendRequestAsync(FriendRequestDto friendRequest);
/// <summary>
/// 获取好友请求
/// </summary>
/// <param name="userId"></param>
/// <param name="isReceived">是否为接受请求方</param>
/// <param name="page"></param>
/// <param name="limit"></param>
/// <returns></returns>
Task<List<FriendRequestResDto>> GetFriendRequestListAsync(int userId,int page,int limit, bool desc);
/// <summary>
/// 处理好友请求
/// </summary>
/// <param name="requestDto"></param>
/// <returns></returns>
Task<bool> HandleFriendRequestAsync(HandleFriendRequestDto requestDto);
/// <summary>
/// 通过用户Id删除好友关系
/// </summary>
/// <param name="userId">操作用户Id</param>
/// <param name="toUserId">被删除用户ID</param>
/// <returns></returns>
Task<bool> DeleteFriendByUserIdAsync(int userId,int toUserId);
/// <summary>
/// 通过好友关系Id删除好友关系
/// </summary>
/// <param name="friendId">好友关系id</param>
/// <returns></returns>
Task<bool> DeleteFriendAsync(int friendId);
/// <summary>
/// 通过用户Id拉黑好友关系
/// </summary>
/// <param name="userId">操作用户Id</param>
/// <param name="toUserId">被拉黑用户ID</param>
/// <returns></returns>
Task<bool> BlockFriendByUserIdAsync(int userId, int toUserId);
/// <summary>
/// 通过好友关系Id拉黑好友关系
/// </summary>
/// <param name="friendId">好友关系id</param>
/// <returns></returns>
Task<bool> BlockeFriendAsync(int friendId);
/// <summary>
/// 创建好友关系
/// </summary>
/// <param name="userAId"></param>
/// <param name="userBId"></param>
/// <returns></returns>
Task MakeFriendshipAsync(int userAId, int userBId, string? remarkName);
}
}
using IM_API.Dtos.Friend;
using IM_API.Models;
namespace IM_API.Interface.Services
{
public interface IFriendSerivce
{
/// <summary>
/// 获取好友列表
/// </summary>
/// <param name="userId">指定用户</param>
/// <param name="page">当前页</param>
/// <param name="limit">分页大小</param>
/// <returns></returns>
Task<List<FriendInfoDto>> GetFriendListAsync(int userId,int page,int limit,bool desc);
/// <summary>
/// 新增好友请求
/// </summary>
/// <param name="friendRequest"></param>
/// <returns></returns>
Task<bool> SendFriendRequestAsync(FriendRequestDto friendRequest);
/// <summary>
/// 获取好友请求
/// </summary>
/// <param name="userId"></param>
/// <param name="isReceived">是否为接受请求方</param>
/// <param name="page"></param>
/// <param name="limit"></param>
/// <returns></returns>
Task<List<FriendRequestResDto>> GetFriendRequestListAsync(int userId,int page,int limit, bool desc);
/// <summary>
/// 处理好友请求
/// </summary>
/// <param name="requestDto"></param>
/// <returns></returns>
Task<bool> HandleFriendRequestAsync(HandleFriendRequestDto requestDto);
/// <summary>
/// 通过用户Id删除好友关系
/// </summary>
/// <param name="userId">操作用户Id</param>
/// <param name="toUserId">被删除用户ID</param>
/// <returns></returns>
Task<bool> DeleteFriendByUserIdAsync(int userId,int toUserId);
/// <summary>
/// 通过好友关系Id删除好友关系
/// </summary>
/// <param name="friendId">好友关系id</param>
/// <returns></returns>
Task<bool> DeleteFriendAsync(int friendId);
/// <summary>
/// 通过用户Id拉黑好友关系
/// </summary>
/// <param name="userId">操作用户Id</param>
/// <param name="toUserId">被拉黑用户ID</param>
/// <returns></returns>
Task<bool> BlockFriendByUserIdAsync(int userId, int toUserId);
/// <summary>
/// 通过好友关系Id拉黑好友关系
/// </summary>
/// <param name="friendId">好友关系id</param>
/// <returns></returns>
Task<bool> BlockeFriendAsync(int friendId);
/// <summary>
/// 创建好友关系
/// </summary>
/// <param name="userAId"></param>
/// <param name="userBId"></param>
/// <returns></returns>
Task MakeFriendshipAsync(int userAId, int userBId, string? remarkName);
}
}
@@ -1,55 +1,55 @@
using IM_API.Dtos.Group;
using IM_API.Models;
namespace IM_API.Interface.Services
{
public interface IGroupService
{
/// <summary>
/// 邀请好友入群
/// </summary>
/// <param name="userId">操作者ID</param>
/// <param name="groupId">群ID</param>
/// <param name="userIds">邀请的用户列表</param>
/// <returns></returns>
Task InviteUsersAsync(int userId,int groupId, List<int> userIds);
/// <summary>
/// 加入群聊
/// </summary>
/// <param name="userId">操作者ID</param>
/// <param name="groupId">群ID</param>
/// <returns></returns>
Task JoinGroupAsync(int userId,int groupId);
/// <summary>
/// 创建群聊
/// </summary>
/// <param name="userId">操作者ID</param>
/// <param name="groupCreateDto">群信息</param>
/// <param name="userIds">邀请用户列表</param>
/// <returns></returns>
Task<GroupInfoDto> CreateGroupAsync(int userId, GroupCreateDto groupCreateDto);
/// <summary>
/// 删除群
/// </summary>
/// <param name="userId">操作者ID</param>
/// <param name="groupId">群ID</param>
/// <returns></returns>
Task DeleteGroupAsync(int userId, int groupId);
/// <summary>
/// 获取当前用户群列表
/// </summary>
/// <param name="userId">操作者ID</param>
/// <param name="page"></param>
/// <param name="limit"></param>
/// <param name="desc"></param>
/// <returns></returns>
Task<List<GroupInfoDto>> GetGroupListAsync(int userId, int page, int limit, bool desc);
Task UpdateGroupConversationAsync(GroupUpdateConversationDto dto);
Task HandleGroupInviteAsync(int userid, HandleGroupInviteDto dto);
Task HandleGroupRequestAsync(int userid, HandleGroupRequestDto dto);
Task MakeGroupRequestAsync(int userId,int? adminUserId,int groupId);
Task MakeGroupMemberAsync(int userId, int groupId, GroupMemberRole? role);
}
}
using IM_API.Dtos.Group;
using IM_API.Models;
namespace IM_API.Interface.Services
{
public interface IGroupService
{
/// <summary>
/// 邀请好友入群
/// </summary>
/// <param name="userId">操作者ID</param>
/// <param name="groupId">群ID</param>
/// <param name="userIds">邀请的用户列表</param>
/// <returns></returns>
Task InviteUsersAsync(int userId,int groupId, List<int> userIds);
/// <summary>
/// 加入群聊
/// </summary>
/// <param name="userId">操作者ID</param>
/// <param name="groupId">群ID</param>
/// <returns></returns>
Task JoinGroupAsync(int userId,int groupId);
/// <summary>
/// 创建群聊
/// </summary>
/// <param name="userId">操作者ID</param>
/// <param name="groupCreateDto">群信息</param>
/// <param name="userIds">邀请用户列表</param>
/// <returns></returns>
Task<GroupInfoDto> CreateGroupAsync(int userId, GroupCreateDto groupCreateDto);
/// <summary>
/// 删除群
/// </summary>
/// <param name="userId">操作者ID</param>
/// <param name="groupId">群ID</param>
/// <returns></returns>
Task DeleteGroupAsync(int userId, int groupId);
/// <summary>
/// 获取当前用户群列表
/// </summary>
/// <param name="userId">操作者ID</param>
/// <param name="page"></param>
/// <param name="limit"></param>
/// <param name="desc"></param>
/// <returns></returns>
Task<List<GroupInfoDto>> GetGroupListAsync(int userId, int page, int limit, bool desc);
Task UpdateGroupConversationAsync(GroupUpdateConversationDto dto);
Task HandleGroupInviteAsync(int userid, HandleGroupInviteDto dto);
Task HandleGroupRequestAsync(int userid, HandleGroupRequestDto dto);
Task MakeGroupRequestAsync(int userId,int? adminUserId,int groupId);
Task MakeGroupMemberAsync(int userId, int groupId, GroupMemberRole? role);
}
}
@@ -1,21 +1,21 @@
using System.Security.Claims;
namespace IM_API.Interface.Services
{
public interface IJWTService
{
/// <summary>
/// 生成用户凭证
/// </summary>
/// <param name="claims">负载</param>
/// <param name="expiresAt">过期时间</param>
/// <returns></returns>
string GenerateAccessToken(IEnumerable<Claim> claims, DateTime expiresAt);
/// <summary>
/// 创建用户凭证
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
(string token, DateTime expiresAt) CreateAccessTokenForUser(int userId,string username,string role);
}
}
using System.Security.Claims;
namespace IM_API.Interface.Services
{
public interface IJWTService
{
/// <summary>
/// 生成用户凭证
/// </summary>
/// <param name="claims">负载</param>
/// <param name="expiresAt">过期时间</param>
/// <returns></returns>
string GenerateAccessToken(IEnumerable<Claim> claims, DateTime expiresAt);
/// <summary>
/// 创建用户凭证
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
(string token, DateTime expiresAt) CreateAccessTokenForUser(int userId,string username,string role);
}
}
@@ -1,53 +1,53 @@
using IM_API.Dtos;
using IM_API.Dtos.Message;
using IM_API.Models;
using IM_API.VOs.Message;
namespace IM_API.Interface.Services
{
public interface IMessageSevice
{
/// <summary>
/// 发送私聊消息
/// </summary>
/// <param name="senderId">发送人id</param>
/// <param name="receiverId">接收人</param>
/// <param name="dto"></param>
/// <returns></returns>
Task<MessageBaseVo> SendPrivateMessageAsync(int senderId,int receiverId,MessageBaseDto dto);
/// <summary>
/// 发送群聊消息
/// </summary>
/// <param name="senderId">发送人id</param>
/// <param name="groupId">接收群id</param>
/// <param name="dto"></param>
/// <returns></returns>
Task<MessageBaseVo> SendGroupMessageAsync(int senderId,int groupId,MessageBaseDto dto);
/// <summary>
/// 消息入库
/// </summary>
/// <param name="message"></param>
/// <returns></returns>
Task MakeMessageAsync(Message message);
/// <summary>
/// 获取历史消息列表
/// </summary>
/// <param name="conversationId">会话id(用于获取指定用户间聊天消息)</param>
/// <param name="sequenceId">消息id</param>
/// <param name="pageSize">获取消息数量</param>
/// <returns></returns>
Task<List<MessageBaseVo>> GetMessagesAsync(int userId,MessageQueryDto dto);
/// <summary>
/// 获取未读消息数
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
Task<int> GetUnreadCountAsync(int userId);
Task<List<MessageBaseDto>> GetUnreadMessagesAsync(int userId);
Task<bool> MarkAsReadAsync(int userId,long messageId);
Task<bool> MarkConversationAsReadAsync(int userId,int? userBId,int? groupId);
Task<bool> RecallMessageAsync(int userId,int messageId);
}
}
using IM_API.Dtos;
using IM_API.Dtos.Message;
using IM_API.Models;
using IM_API.VOs.Message;
namespace IM_API.Interface.Services
{
public interface IMessageSevice
{
/// <summary>
/// 发送私聊消息
/// </summary>
/// <param name="senderId">发送人id</param>
/// <param name="receiverId">接收人</param>
/// <param name="dto"></param>
/// <returns></returns>
Task<MessageBaseVo> SendPrivateMessageAsync(int senderId,int receiverId,MessageBaseDto dto);
/// <summary>
/// 发送群聊消息
/// </summary>
/// <param name="senderId">发送人id</param>
/// <param name="groupId">接收群id</param>
/// <param name="dto"></param>
/// <returns></returns>
Task<MessageBaseVo> SendGroupMessageAsync(int senderId,int groupId,MessageBaseDto dto);
/// <summary>
/// 消息入库
/// </summary>
/// <param name="message"></param>
/// <returns></returns>
Task MakeMessageAsync(Message message);
/// <summary>
/// 获取历史消息列表
/// </summary>
/// <param name="conversationId">会话id(用于获取指定用户间聊天消息)</param>
/// <param name="sequenceId">消息id</param>
/// <param name="pageSize">获取消息数量</param>
/// <returns></returns>
Task<List<MessageBaseVo>> GetMessagesAsync(int userId,MessageQueryDto dto);
/// <summary>
/// 获取未读消息数
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
Task<int> GetUnreadCountAsync(int userId);
Task<List<MessageBaseDto>> GetUnreadMessagesAsync(int userId);
Task<bool> MarkAsReadAsync(int userId,long messageId);
Task<bool> MarkConversationAsReadAsync(int userId,int? userBId,int? groupId);
Task<bool> RecallMessageAsync(int userId,int messageId);
}
}
@@ -1,27 +1,27 @@
namespace IM_API.Interface.Services
{
public interface IRefreshTokenService
{
/// <summary>
/// 创建刷新令牌
/// </summary>
/// <param name="userId"></param>
/// <param name="ct"></param>
/// <returns></returns>
Task<string> CreateRefreshTokenAsync(int userId, CancellationToken ct = default);
/// <summary>
/// 验证刷新令牌
/// </summary>
/// <param name="token">刷新令牌</param>
/// <param name="ct"></param>
/// <returns></returns>
Task<(bool ok, int userId)> ValidateRefreshTokenAsync(string token, CancellationToken ct = default);
/// <summary>
/// 删除更新令牌
/// </summary>
/// <param name="token">刷新令牌</param>
/// <param name="ct"></param>
/// <returns></returns>
Task RevokeRefreshTokenAsync(string token, CancellationToken ct = default);
}
}
namespace IM_API.Interface.Services
{
public interface IRefreshTokenService
{
/// <summary>
/// 创建刷新令牌
/// </summary>
/// <param name="userId"></param>
/// <param name="ct"></param>
/// <returns></returns>
Task<string> CreateRefreshTokenAsync(int userId, CancellationToken ct = default);
/// <summary>
/// 验证刷新令牌
/// </summary>
/// <param name="token">刷新令牌</param>
/// <param name="ct"></param>
/// <returns></returns>
Task<(bool ok, int userId)> ValidateRefreshTokenAsync(string token, CancellationToken ct = default);
/// <summary>
/// 删除更新令牌
/// </summary>
/// <param name="token">刷新令牌</param>
/// <param name="ct"></param>
/// <returns></returns>
Task RevokeRefreshTokenAsync(string token, CancellationToken ct = default);
}
}
@@ -1,12 +1,12 @@
namespace IM_API.Interface.Services
{
public interface ISequenceIdService
{
/// <summary>
/// 创建消息序号
/// </summary>
/// <param name="streamKey">聊天唯一标识/param>
/// <returns></returns>
Task<long> GetNextSquenceIdAsync(string streamKey);
}
}
namespace IM_API.Interface.Services
{
public interface ISequenceIdService
{
/// <summary>
/// 创建消息序号
/// </summary>
/// <param name="streamKey">聊天唯一标识/param>
/// <returns></returns>
Task<long> GetNextSquenceIdAsync(string streamKey);
}
}
@@ -1,45 +1,45 @@
using IM_API.Dtos.User;
using IM_API.Models;
namespace IM_API.Interface.Services
{
public interface IUserService
{
/// <summary>
/// 获取用户信息
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
Task<UserInfoDto> GetUserInfoAsync(int userId);
/// <summary>
/// 用户名查找用户
/// </summary>
/// <param name="username"></param>
/// <returns></returns>
Task<UserInfoDto> GetUserInfoByUsernameAsync(string username);
/// <summary>
/// 更新用户信息
/// </summary>
/// <param name="dto"></param>
/// <returns></returns>
Task<UserInfoDto> UpdateUserAsync(int userId, UpdateUserDto dto);
/// <summary>
/// 重置用户密码
/// </summary>
/// <param name="password"></param>
/// <returns></returns>
Task<bool> ResetPasswordAsync(int userId, string oldPassword, string password);
/// <summary>
/// 更新用户在线状态
/// </summary>
/// <param name="onlineStatus"></param>
/// <returns></returns>
Task<bool> UpdateOlineStatusAsync(int userId, UserOnlineStatus onlineStatus);
/// <summary>
/// 批量获取用户信息
/// </summary>
/// <param name="ids">用户id列表</param>
/// <returns></returns>
Task<List<UserInfoDto>> GetUserInfoListAsync(List<int> ids);
}
}
using IM_API.Dtos.User;
using IM_API.Models;
namespace IM_API.Interface.Services
{
public interface IUserService
{
/// <summary>
/// 获取用户信息
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
Task<UserInfoDto> GetUserInfoAsync(int userId);
/// <summary>
/// 用户名查找用户
/// </summary>
/// <param name="username"></param>
/// <returns></returns>
Task<UserInfoDto> GetUserInfoByUsernameAsync(string username);
/// <summary>
/// 更新用户信息
/// </summary>
/// <param name="dto"></param>
/// <returns></returns>
Task<UserInfoDto> UpdateUserAsync(int userId, UpdateUserDto dto);
/// <summary>
/// 重置用户密码
/// </summary>
/// <param name="password"></param>
/// <returns></returns>
Task<bool> ResetPasswordAsync(int userId, string oldPassword, string password);
/// <summary>
/// 更新用户在线状态
/// </summary>
/// <param name="onlineStatus"></param>
/// <returns></returns>
Task<bool> UpdateOlineStatusAsync(int userId, UserOnlineStatus onlineStatus);
/// <summary>
/// 批量获取用户信息
/// </summary>
/// <param name="ids">用户id列表</param>
/// <returns></returns>
Task<List<UserInfoDto>> GetUserInfoListAsync(List<int> ids);
}
}