网站首页 网站源码
namespace Dpz.Core.Service.V4.Services;
public interface IMusicService : ICacheService
{
/// <summary>
/// 保存音乐
/// </summary>
/// <param name="upload"></param>
/// <returns></returns>
Task<VmMusic?> SaveAsync(VmMusicUpload? upload);
/// <summary>
/// 获取所有分组
/// </summary>
/// <returns></returns>
Task<ICollection<string>> GetGroupsAsync();
/// <summary>
/// 修改音乐信息
/// </summary>
/// <param name="information"></param>
/// <returns></returns>
Task<VmMusic> EditMusicInformationAsync(VmEditMusicInformation information);
/// <summary>
/// 分页获取音乐信息
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="title"></param>
/// <returns></returns>
Task<IPagedList<VmMusic>> GetPagesAsync(int pageIndex, int pageSize, string? title = null);
/// <summary>
/// 获取单个音乐信息
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
Task<VmMusic?> GetAsync(string id);
/// <summary>
/// 删除音乐
/// </summary>
/// <param name="id"></param>
/// <param name="deleteObjectStorage">从云储存删除</param>
/// <returns>file name</returns>
Task DeleteAsync(string id, Func<VmMusic, Task> deleteObjectStorage);
/// <summary>
/// 获取最新上传的音乐
/// </summary>
/// <param name="top"></param>
/// <returns></returns>
Task<ICollection<VmMusic>> GetTopMusicsAsync(uint top = 200);
/// <summary>
/// 获取随机分组的音乐
/// </summary>
/// <param name="top"></param>
/// <returns></returns>
Task<ICollection<VmMusic>> GetRandomGroupMusicAsync(int top = 200);
}
上述代码定义了一个名为 IMusicService
的接口,属于 Dpz.Core.Service.V4.Services
命名空间。这个接口提供了一系列与音乐相关的服务方法,主要用于音乐的管理和操作。以下是每个方法的功能解释:
SaveAsync:
VmMusicUpload
类型的参数,表示要上传的音乐信息。VmMusic
对象,表示保存后的音乐信息。GetGroupsAsync:
EditMusicInformationAsync:
VmEditMusicInformation
类型的参数,表示要修改的音乐信息。VmMusic
对象,表示修改后的音乐信息。GetPagesAsync:
pageIndex
、每页大小 pageSize
和可选的音乐标题 title
。IPagedList<VmMusic>
。GetAsync:
id
,表示音乐的唯一标识符。VmMusic
对象,表示对应的音乐信息。DeleteAsync:
id
,表示要删除的音乐的唯一标识符,以及一个删除对象存储的函数 deleteObjectStorage
。GetTopMusicsAsync:
top
,表示要获取的音乐数量,默认为 200。ICollection<VmMusic>
。GetRandomGroupMusicAsync:
top
,表示要获取的音乐数量,默认为 200。ICollection<VmMusic>
。CacheModule
特性,表示该方法的缓存策略。Clear = true
表示在调用该方法时会清除相关缓存,而 Expiration
则指定了缓存的过期时间。VmMusic
、VmMusicUpload
和 VmEditMusicInformation
是自定义的数据传输对象(DTO),用于传递音乐相关的信息。IPagedList<VmMusic>
是一个分页列表接口,通常用于处理分页数据。总体来说,这个接口定义了一组用于音乐管理的服务方法,涵盖了音乐的增、删、改、查等基本操作。