网站首页 网站源码
website
站点相关全部源代码,隐藏了一些关于服务器的信息
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);
}
⚠⚠    以下内容为AI分析的结果,请根据实际情况进行判断。

上述代码定义了一个名为 IMusicService 的接口,属于 Dpz.Core.Service.V4.Services 命名空间。这个接口提供了一系列与音乐相关的服务方法,主要用于音乐的管理和操作。以下是每个方法的功能解释:

  1. SaveAsync:

    • 功能:保存音乐信息。
    • 参数:接收一个 VmMusicUpload 类型的参数,表示要上传的音乐信息。
    • 返回值:返回一个可选的 VmMusic 对象,表示保存后的音乐信息。
  2. GetGroupsAsync:

    • 功能:获取所有音乐分组。
    • 返回值:返回一个字符串集合,表示所有的音乐分组。
  3. EditMusicInformationAsync:

    • 功能:修改音乐信息。
    • 参数:接收一个 VmEditMusicInformation 类型的参数,表示要修改的音乐信息。
    • 返回值:返回一个 VmMusic 对象,表示修改后的音乐信息。
  4. GetPagesAsync:

    • 功能:分页获取音乐信息。
    • 参数:接收页码 pageIndex、每页大小 pageSize 和可选的音乐标题 title
    • 返回值:返回一个分页的音乐列表,类型为 IPagedList<VmMusic>
  5. GetAsync:

    • 功能:获取单个音乐信息。
    • 参数:接收一个字符串 id,表示音乐的唯一标识符。
    • 返回值:返回一个可选的 VmMusic 对象,表示对应的音乐信息。
  6. DeleteAsync:

    • 功能:删除音乐。
    • 参数:接收一个字符串 id,表示要删除的音乐的唯一标识符,以及一个删除对象存储的函数 deleteObjectStorage
    • 返回值:无返回值,表示删除操作。
  7. GetTopMusicsAsync:

    • 功能:获取最新上传的音乐。
    • 参数:接收一个无符号整数 top,表示要获取的音乐数量,默认为 200。
    • 返回值:返回一个音乐集合,类型为 ICollection<VmMusic>
  8. GetRandomGroupMusicAsync:

    • 功能:获取随机分组的音乐。
    • 参数:接收一个整数 top,表示要获取的音乐数量,默认为 200。
    • 返回值:返回一个音乐集合,类型为 ICollection<VmMusic>

其他说明

  • 每个方法上都有一个 CacheModule 特性,表示该方法的缓存策略。Clear = true 表示在调用该方法时会清除相关缓存,而 Expiration 则指定了缓存的过期时间。
  • VmMusicVmMusicUploadVmEditMusicInformation 是自定义的数据传输对象(DTO),用于传递音乐相关的信息。
  • IPagedList<VmMusic> 是一个分页列表接口,通常用于处理分页数据。

总体来说,这个接口定义了一组用于音乐管理的服务方法,涵盖了音乐的增、删、改、查等基本操作。

loading