using Dpz.Core.Public.ViewModel.Request;
using Dpz.Core.Public.ViewModel.Response;
namespace Dpz.Core.Service.RepositoryService;
public interface IMusicService : ICacheService
{
/// <summary>
/// 保存音乐
/// </summary>
/// <param name="uploadActionRequest"></param>
/// <returns></returns>
Task<MusicResponse?> SaveAsync(MusicUploadActionRequest uploadActionRequest);
/// <summary>
/// 获取所有分组
/// </summary>
/// <returns></returns>
Task<List<string>> GetGroupsAsync();
/// <summary>
/// 修改音乐信息
/// </summary>
/// <param name="informationRequest"></param>
/// <returns></returns>
Task<MusicResponse> EditMusicInformationAsync(EditMusicInformationRequest informationRequest);
/// <summary>
/// 分页获取音乐信息
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="title"></param>
/// <returns></returns>
Task<IPagedList<MusicResponse>> GetPagesAsync(int pageIndex, int pageSize, string? title = null);
/// <summary>
/// 获取单个音乐信息
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
Task<MusicResponse?> GetAsync(string id);
/// <summary>
/// 删除音乐
/// </summary>
/// <param name="id"></param>
/// <param name="deleteObjectStorage">从云储存删除</param>
/// <returns>file name</returns>
Task DeleteAsync(string id, Func<MusicResponse, Task> deleteObjectStorage);
/// <summary>
/// 获取最新上传的音乐
/// </summary>
/// <param name="top"></param>
/// <returns></returns>
Task<ICollection<MusicResponse>> GetTopMusicsAsync(uint top = 200);
/// <summary>
/// 获取随机分组的音乐
/// </summary>
/// <param name="top"></param>
/// <returns></returns>
Task<ICollection<MusicResponse>> GetRandomGroupMusicAsync(int top = 200);
}
⚠⚠ 以下内容为AI分析的结果,请根据实际情况进行判断。
音乐服务接口 (IMusicService) 功能解析
这是一个C#接口定义,用于音乐管理系统的服务层。它继承自ICacheService,表明这个服务可能包含缓存功能。以下是各方法的功能说明:
核心功能
音乐上传与保存
SaveAsync(MusicUploadActionRequest uploadActionRequest): 上传并保存音乐文件,返回包含音乐信息的响应对象
音乐信息管理
EditMusicInformationAsync(EditMusicInformationRequest informationRequest): 修改已存在音乐的信息GetAsync(string id): 根据ID获取单个音乐的详细信息DeleteAsync(string id, Func<MusicResponse, Task> deleteObjectStorage): 删除音乐,包含一个回调函数用于从云存储中删除实际文件
音乐查询
GetPagesAsync(int pageIndex, int pageSize, string? title): 分页获取音乐列表,可按照标题筛选GetTopMusicsAsync(uint top): 获取最新上传的音乐(默认200条)GetRandomGroupMusicAsync(int top): 获取随机分组的音乐(默认200条)
分组管理
GetGroupsAsync(): 获取所有音乐分组的列表
特点
- 所有方法都是异步的(返回
Task) - 使用了强类型请求和响应对象(如
MusicUploadActionRequest,MusicResponse) - 支持分页查询(
IPagedList<MusicResponse>) - 删除操作支持从云存储中同步删除文件(通过回调函数)
- 提供了多种查询方式(最新、随机、分页等)
这个接口定义了一个完整的音乐管理服务,适合用于音乐库、音乐播放器等应用的后端服务。
评论加载中...