namespace Dpz.Core.Service.RepositoryService;
/// <summary>
/// 聊天记录
/// </summary>
public interface IChatRecordService
{
/// <summary>
/// 保存好友聊天记录
/// </summary>
/// <param name="sender">发送人</param>
/// <param name="message">消息</param>
/// <param name="receiver">接收人</param>
/// <returns></returns>
Task SaveFriendRecordAsync(VmUserInfo sender, string message, VmUserInfo receiver);
/// <summary>
/// 保存群聊天记录
/// </summary>
/// <param name="sender">发送人</param>
/// <param name="groupId">群组ID</param>
/// <param name="message">消息</param>
/// <param name="fontColor">字体颜色</param>
/// <returns></returns>
Task SaveGroupRecordAsync(VmUserInfo sender, string groupId, string message, string? fontColor);
/// <summary>
/// 保存与机器人的聊天记录
/// </summary>
/// <param name="sender">发送人</param>
/// <param name="message">消息</param>
/// <param name="receiveMessage">回复消息</param>
/// <returns></returns>
Task SaveRobotRecordAsync(VmUserInfo? sender, string message, string receiveMessage);
/// <summary>
/// 获取好友聊天记录
/// </summary>
/// <param name="sender">发送人</param>
/// <param name="receiver">接收人</param>
/// <param name="pageIndex">页码</param>
/// <param name="pageSize">每页条数</param>
/// <returns></returns>
Task<IPagedList<VmChatRecord>> GetFriendRecordAsync(
string sender,
string receiver,
int pageIndex,
int pageSize
);
/// <summary>
/// 获取机器人聊天记录
/// </summary>
/// <param name="sender"></param>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <returns></returns>
Task<IPagedList<VmChatRecord>> GetRobotRecordAsync(string sender, int pageIndex, int pageSize);
/// <summary>
/// 获取群组聊天记录
/// </summary>
/// <param name="groupId"></param>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <returns></returns>
Task<IPagedList<VmChatRecord>> GetGroupRecordAsync(string groupId, int pageIndex, int pageSize);
}
⚠⚠ 以下内容为AI分析的结果,请根据实际情况进行判断。
这是一个聊天记录服务的接口定义,用于管理不同类型的聊天记录。让我详细解释一下这个接口的设计和功能:
接口概述
IChatRecordService 是一个聊天记录服务接口,定义了保存和获取聊天记录的核心功能。
主要功能分类
1. 保存聊天记录(3个方法)
好友聊天记录保存
Task SaveFriendRecordAsync(VmUserInfo sender, string message, VmUserInfo receiver);
- 用于保存两个用户之间的私聊消息
- 需要发送人、接收人信息和消息内容
群聊天记录保存
Task SaveGroupRecordAsync(VmUserInfo sender, string groupId, string message, string? fontColor);
- 用于保存群组聊天消息
- 包含发送人、群组ID、消息内容,还支持字体颜色设置
fontColor参数可为空,提供了消息样式的灵活性
机器人聊天记录保存
Task SaveRobotRecordAsync(VmUserInfo? sender, string message, string receiveMessage);
- 用于保存用户与AI机器人的对话
- 同时保存用户消息和机器人回复
sender可为空,可能支持匿名对话
2. 获取聊天记录(3个方法)
所有获取方法都支持分页功能,返回 IPagedList<VmChatRecord> 类型:
获取好友聊天记录
Task<IPagedList<VmChatRecord>> GetFriendRecordAsync(string sender, string receiver, int pageIndex, int pageSize);
获取机器人聊天记录
Task<IPagedList<VmChatRecord>> GetRobotRecordAsync(string sender, int pageIndex, int pageSize);
获取群组聊天记录
Task<IPagedList<VmChatRecord>> GetGroupRecordAsync(string groupId, int pageIndex, int pageSize);
设计特点
- 异步操作:所有方法都是异步的,使用
Task返回类型,提高系统性能 - 分页支持:查询方法都支持分页,避免大量数据加载的性能问题
- 类型安全:使用强类型的
VmUserInfo和VmChatRecord视图模型 - 场景覆盖全面:支持私聊、群聊、AI对话三种主要聊天场景
- 扩展性好:群聊支持字体颜色等扩展属性
这个接口设计遵循了单一职责原则,专门处理聊天记录的持久化和查询操作,为聊天应用提供了完整的数据服务支持。
AI 正在分析代码…
评论加载中...