namespace Dpz.Core.Service.RepositoryService;
public interface IVideoService
{
/// <summary>
/// 获取视频列表
/// </summary>
/// <returns></returns>
Task<List<VmVideo>> GetVideosAsync();
/// <summary>
/// 保存视频信息
/// </summary>
/// <param name="video"></param>
/// <returns></returns>
Task SaveInformationAsync(VmVideo video);
/// <summary>
/// 获取视频详情
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
Task<VmVideo?> GetVideoAsync(string id);
/// <summary>
/// 添加一次播放次数
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
Task AddPlayAsync(string id);
/// <summary>
/// 更新视频评论数
/// </summary>
/// <param name="videoId">视频ID</param>
/// <param name="count">评论数</param>
/// <param name="cancellationToken"></param>
Task UpdateCommentCountAsync(
string videoId,
int count,
CancellationToken cancellationToken = default
);
/// <summary>
/// 更新视频弹幕数
/// </summary>
/// <param name="videoId">视频ID</param>
/// <param name="count">弹幕数</param>
/// <param name="cancellationToken"></param>
Task UpdateDanmakuCountAsync(
string videoId,
int count,
CancellationToken cancellationToken = default
);
}
⚠⚠ 以下内容为AI分析的结果,请根据实际情况进行判断。
这是一个视频服务的接口定义,属于 Dpz.Core.Service.RepositoryService 命名空间。该接口 IVideoService 定义了视频相关的核心业务操作方法。让我逐一解释每个方法的功能:
接口方法分析
1. 视频查询方法
Task<List<VmVideo>> GetVideosAsync();
Task<VmVideo?> GetVideoAsync(string id);
- GetVideosAsync(): 异步获取所有视频列表,返回
VmVideo对象的集合 - GetVideoAsync(string id): 根据视频ID异步获取单个视频详情,返回可空的
VmVideo对象
2. 视频信息管理
Task SaveInformationAsync(VmVideo video);
- 异步保存视频信息,用于新增或更新视频数据
3. 播放统计
Task AddPlayAsync(string id);
- 为指定视频ID增加一次播放计数,用于统计视频播放量
4. 互动数据更新
Task UpdateCommentCountAsync(string videoId, int count, CancellationToken cancellationToken = default);
Task UpdateDanmakuCountAsync(string videoId, int count, CancellationToken cancellationToken = default);
- UpdateCommentCountAsync: 更新视频的评论数量
- UpdateDanmakuCountAsync: 更新视频的弹幕数量
- 两个方法都支持取消令牌(CancellationToken)用于异步操作的取消控制
设计特点
- 异步设计: 所有方法都返回
Task,支持异步操作,提高应用性能 - 领域驱动: 使用
VmVideo视图模型对象,体现了良好的分层架构 - 可取消操作: 更新方法支持
CancellationToken,便于长时间运行的操作控制 - 职责明确: 接口专注于视频相关的核心业务操作,符合单一职责原则
这个接口通常会被具体的服务类实现,用于处理视频平台的核心功能,如视频管理、播放统计、用户互动等业务场景。
AI 正在分析代码…
评论加载中...