126 lines
2.7 KiB
Java
126 lines
2.7 KiB
Java
package com.test.musichouduan.service;
|
|
|
|
import com.test.musichouduan.dto.PageResult;
|
|
import com.test.musichouduan.dto.SingerDTO;
|
|
import com.test.musichouduan.entity.Singer;
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
|
import java.util.List;
|
|
|
|
/**
|
|
* 歌手服务接口
|
|
*/
|
|
public interface SingerService {
|
|
|
|
/**
|
|
* 根据ID获取歌手
|
|
*
|
|
* @param id 歌手ID
|
|
* @return 歌手DTO
|
|
*/
|
|
SingerDTO getSingerById(Long id);
|
|
|
|
/**
|
|
* 分页获取歌手列表
|
|
*
|
|
* @param page 页码
|
|
* @param size 每页大小
|
|
* @param keyword 关键字
|
|
* @param typeId 类型ID
|
|
* @return 分页结果
|
|
*/
|
|
PageResult<SingerDTO> getSingerList(Integer page, Integer size, String keyword, Long typeId);
|
|
|
|
/**
|
|
* 获取最新歌手列表
|
|
*
|
|
* @param limit 限制数量
|
|
* @return 歌手列表
|
|
*/
|
|
List<SingerDTO> getLatestSinger(Integer limit);
|
|
|
|
/**
|
|
* 获取热门歌手列表
|
|
*
|
|
* @param limit 限制数量
|
|
* @return 歌手列表
|
|
*/
|
|
List<SingerDTO> getHotSinger(Integer limit);
|
|
|
|
/**
|
|
* 添加歌手
|
|
*
|
|
* @param singerDTO 歌手DTO
|
|
* @param avatar 头像文件
|
|
* @return 歌手DTO
|
|
*/
|
|
SingerDTO addSinger(SingerDTO singerDTO, MultipartFile avatar);
|
|
|
|
/**
|
|
* 更新歌手
|
|
*
|
|
* @param id 歌手ID
|
|
* @param singerDTO 歌手DTO
|
|
* @param avatar 头像文件
|
|
* @return 歌手DTO
|
|
*/
|
|
SingerDTO updateSinger(Long id, SingerDTO singerDTO, MultipartFile avatar);
|
|
|
|
/**
|
|
* 删除歌手
|
|
*
|
|
* @param id 歌手ID
|
|
* @return 是否成功
|
|
*/
|
|
boolean deleteSinger(Long id);
|
|
|
|
/**
|
|
* 收藏歌手
|
|
*
|
|
* @param id 歌手ID
|
|
* @return 是否成功
|
|
*/
|
|
boolean collectSinger(Long id);
|
|
|
|
/**
|
|
* 取消收藏歌手
|
|
*
|
|
* @param id 歌手ID
|
|
* @return 是否成功
|
|
*/
|
|
boolean uncollectSinger(Long id);
|
|
|
|
/**
|
|
* 获取用户收藏的歌手列表
|
|
*
|
|
* @param page 页码
|
|
* @param size 每页大小
|
|
* @return 分页结果
|
|
*/
|
|
PageResult<SingerDTO> getCollectedSinger(Integer page, Integer size);
|
|
|
|
/**
|
|
* 添加音乐到歌手
|
|
* @param singerId 歌手ID
|
|
* @param musicId 音乐ID
|
|
* @return 是否成功
|
|
*/
|
|
boolean addMusicToSinger(Long singerId, Long musicId);
|
|
|
|
/**
|
|
* 从歌手移除音乐
|
|
* @param singerId 歌手ID
|
|
* @param musicId 音乐ID
|
|
* @return 是否成功
|
|
*/
|
|
boolean removeMusicFromSinger(Long singerId, Long musicId);
|
|
|
|
/**
|
|
* 根据ID获取歌手实体
|
|
*
|
|
* @param id 歌手ID
|
|
* @return 歌手实体
|
|
*/
|
|
Singer getById(Long id);
|
|
}
|