SYMBOL INDEX (419 symbols across 127 files) FILE: sql/vibe_music.sql type `tb_admin` (line 24) | CREATE TABLE `tb_admin` ( type `tb_artist` (line 120) | CREATE TABLE `tb_artist` ( FILE: src/main/java/cn/edu/seig/vibemusic/VibeMusicServerApplication.java class VibeMusicServerApplication (line 7) | @EnableCaching // 开启Spring Boot基于注解的缓存管理支持 method main (line 11) | public static void main(String[] args) { FILE: src/main/java/cn/edu/seig/vibemusic/config/CorsConfig.java class CorsConfig (line 9) | @Configuration method corsConfigurer (line 11) | @Bean FILE: src/main/java/cn/edu/seig/vibemusic/config/MinioConfig.java class MinioConfig (line 8) | @Configuration method minioClient (line 20) | @Bean FILE: src/main/java/cn/edu/seig/vibemusic/config/MyBatisPlusConfig.java class MyBatisPlusConfig (line 10) | @Configuration method mybatisPlusInterceptor (line 14) | @Bean FILE: src/main/java/cn/edu/seig/vibemusic/config/RedisConfig.java class RedisConfig (line 22) | @Configuration method jackson2JsonRedisSerializer (line 28) | private Jackson2JsonRedisSerializer jackson2JsonRedisSerialize... method redisTemplate (line 40) | @Bean method cacheManager (line 52) | @Bean FILE: src/main/java/cn/edu/seig/vibemusic/config/RolePathPermissionsConfig.java class RolePathPermissionsConfig (line 9) | @Component method getPermissions (line 15) | public Map> getPermissions() { method setPermissions (line 19) | public void setPermissions(Map> permissions) { FILE: src/main/java/cn/edu/seig/vibemusic/config/RolePermissionManager.java class RolePermissionManager (line 12) | @Component method RolePermissionManager (line 17) | @Autowired method hasPermission (line 23) | public boolean hasPermission(String role, String requestURI) { FILE: src/main/java/cn/edu/seig/vibemusic/config/WebConfig.java class WebConfig (line 9) | @Configuration method addInterceptors (line 15) | @Override FILE: src/main/java/cn/edu/seig/vibemusic/constant/JwtClaimsConstant.java class JwtClaimsConstant (line 6) | public class JwtClaimsConstant { FILE: src/main/java/cn/edu/seig/vibemusic/constant/MessageConstant.java class MessageConstant (line 6) | public class MessageConstant { FILE: src/main/java/cn/edu/seig/vibemusic/constant/PathConstant.java class PathConstant (line 3) | public class PathConstant { FILE: src/main/java/cn/edu/seig/vibemusic/controller/AdminController.java class AdminController (line 31) | @RestController method register (line 55) | @PostMapping("/register") method login (line 73) | @PostMapping("/login") method logout (line 90) | @PostMapping("/logout") method getAllUsersCount (line 102) | @GetMapping("/getAllUsersCount") method getAllUsers (line 113) | @PostMapping("/getAllUsers") method addUser (line 124) | @PostMapping("/addUser") method updateUser (line 141) | @PutMapping("/updateUser") method updateUserStatus (line 159) | @PatchMapping("/updateUserStatus/{id}/{status}") method deleteUser (line 170) | @DeleteMapping("/deleteUser/{id}") method deleteUsers (line 181) | @DeleteMapping("/deleteUsers") method getAllArtistsCount (line 195) | @GetMapping("/getAllArtistsCount") method getAllArtists (line 206) | @PostMapping("/getAllArtists") method addArtist (line 217) | @PostMapping("/addArtist") method updateArtist (line 228) | @PutMapping("/updateArtist") method updateArtistAvatar (line 240) | @PatchMapping("/updateArtistAvatar/{id}") method deleteArtist (line 252) | @DeleteMapping("/deleteArtist/{id}") method deleteArtists (line 263) | @DeleteMapping("/deleteArtists") method getAllSongsCount (line 276) | @GetMapping("/getAllSongsCount") method getAllArtistNames (line 286) | @GetMapping("/getAllArtistNames") method getAllSongsByArtist (line 297) | @PostMapping("/getAllSongsByArtist") method addSong (line 308) | @PostMapping("/addSong") method UpdateSong (line 319) | @PutMapping("/updateSong") method updateSongCover (line 331) | @PatchMapping("/updateSongCover/{id}") method updateSongAudio (line 344) | @PatchMapping("/updateSongAudio/{id}") method deleteSong (line 356) | @DeleteMapping("/deleteSong/{id}") method deleteSongs (line 367) | @DeleteMapping("/deleteSongs") method getAllPlaylistsCount (line 380) | @GetMapping("/getAllPlaylistsCount") method getAllPlaylists (line 391) | @PostMapping("/getAllPlaylists") method addPlaylist (line 402) | @PostMapping("/addPlaylist") method updatePlaylist (line 413) | @PutMapping("/updatePlaylist") method updatePlaylistCover (line 425) | @PatchMapping("/updatePlaylistCover/{id}") method deletePlaylist (line 437) | @DeleteMapping("/deletePlaylist/{id}") method deletePlaylists (line 448) | @DeleteMapping("/deletePlaylists") FILE: src/main/java/cn/edu/seig/vibemusic/controller/ArtistController.java class ArtistController (line 25) | @RestController method getAllArtists (line 38) | @PostMapping("/getAllArtists") method getRandomArtists (line 49) | @GetMapping("/getRandomArtists") method getArtistDetail (line 60) | @GetMapping("/getArtistDetail/{id}") FILE: src/main/java/cn/edu/seig/vibemusic/controller/BannerController.java class BannerController (line 25) | @RestController method getAllBanners (line 38) | @PostMapping("/admin/getAllBanners") method addBanner (line 49) | @PostMapping("/admin/addBanner") method updateBanner (line 61) | @PatchMapping("/admin/updateBanner/{id}") method updateBannerStatus (line 73) | @PatchMapping("/admin/updateBannerStatus/{id}") method deleteBanner (line 84) | @DeleteMapping("/admin/deleteBanner/{id}") method deleteBanners (line 95) | @DeleteMapping("/admin/deleteBanners") method getBannerList (line 105) | @GetMapping("/banner/getBannerList") FILE: src/main/java/cn/edu/seig/vibemusic/controller/CommentController.java class CommentController (line 19) | @RestController method addSongComment (line 32) | @PostMapping("/addSongComment") method addPlaylistComment (line 43) | @PostMapping("/addPlaylistComment") method likeComment (line 54) | @PatchMapping("/likeComment/{id}") method cancelLikeComment (line 65) | @PatchMapping("/cancelLikeComment/{id}") method deleteComment (line 76) | @DeleteMapping("/deleteComment/{id}") FILE: src/main/java/cn/edu/seig/vibemusic/controller/FeedbackController.java class FeedbackController (line 22) | @RestController method getAllFeedbacks (line 33) | @PostMapping("/admin/getAllFeedbacks") method deleteFeedback (line 44) | @DeleteMapping("/admin/deleteFeedback/{id}") method deleteFeedbacks (line 55) | @DeleteMapping("/admin/deleteFeedbacks") method addFeedback (line 66) | @PostMapping("/feedback/addFeedback") FILE: src/main/java/cn/edu/seig/vibemusic/controller/GenreController.java class GenreController (line 16) | @RestController FILE: src/main/java/cn/edu/seig/vibemusic/controller/PlaylistBindingController.java class PlaylistBindingController (line 16) | @RestController FILE: src/main/java/cn/edu/seig/vibemusic/controller/PlaylistController.java class PlaylistController (line 25) | @RestController method getAllPlaylists (line 38) | @PostMapping("/getAllPlaylists") method getRandomPlaylists (line 49) | @GetMapping("/getRecommendedPlaylists") method getPlaylistDetail (line 60) | @GetMapping("/getPlaylistDetail/{id}") FILE: src/main/java/cn/edu/seig/vibemusic/controller/SongController.java class SongController (line 25) | @RestController method getAllSongs (line 38) | @PostMapping("/getAllSongs") method getRecommendedSongs (line 50) | @GetMapping("/getRecommendedSongs") method getSongDetail (line 61) | @GetMapping("/getSongDetail/{id}") FILE: src/main/java/cn/edu/seig/vibemusic/controller/StyleController.java class StyleController (line 16) | @RestController FILE: src/main/java/cn/edu/seig/vibemusic/controller/UserController.java class UserController (line 27) | @RestController method sendVerificationCode (line 42) | @GetMapping("/sendVerificationCode") method register (line 54) | @PostMapping("/register") method login (line 78) | @PostMapping("/login") method getUserInfo (line 94) | @GetMapping("/getUserInfo") method updateUserInfo (line 105) | @PutMapping("/updateUserInfo") method updateUserAvatar (line 122) | @PatchMapping("/updateUserAvatar") method updateUserPassword (line 135) | @PatchMapping("/updateUserPassword") method resetUserPassword (line 153) | @PatchMapping("/resetUserPassword") method logout (line 176) | @PostMapping("/logout") method deleteAccount (line 186) | @DeleteMapping("/deleteAccount") FILE: src/main/java/cn/edu/seig/vibemusic/controller/UserFavoriteController.java class UserFavoriteController (line 22) | @RestController method getUserFavoriteSongs (line 34) | @PostMapping("/getFavoriteSongs") method collectSong (line 45) | @PostMapping("/collectSong") method cancelCollectSong (line 56) | @DeleteMapping("/cancelCollectSong") method getFavoritePlaylists (line 66) | @PostMapping("/getFavoritePlaylists") method collectPlaylist (line 77) | @PostMapping("/collectPlaylist") method cancelCollectPlaylist (line 88) | @DeleteMapping("/cancelCollectPlaylist") FILE: src/main/java/cn/edu/seig/vibemusic/enumeration/BannerStatusEnum.java type BannerStatusEnum (line 6) | @Getter method BannerStatusEnum (line 16) | BannerStatusEnum(Integer id, String bannerStatus) { FILE: src/main/java/cn/edu/seig/vibemusic/enumeration/CommentTypeEnum.java type CommentTypeEnum (line 6) | @Getter method CommentTypeEnum (line 16) | CommentTypeEnum(Integer id, String commentType) { FILE: src/main/java/cn/edu/seig/vibemusic/enumeration/FavoriteTypeEnum.java type FavoriteTypeEnum (line 6) | @Getter method FavoriteTypeEnum (line 16) | FavoriteTypeEnum(Integer id, String favoriteType) { FILE: src/main/java/cn/edu/seig/vibemusic/enumeration/LikeStatusEnum.java type LikeStatusEnum (line 5) | @Getter method LikeStatusEnum (line 14) | LikeStatusEnum(Integer id, String likeStatus) { FILE: src/main/java/cn/edu/seig/vibemusic/enumeration/RoleEnum.java type RoleEnum (line 5) | @Getter method RoleEnum (line 13) | RoleEnum(String role) { FILE: src/main/java/cn/edu/seig/vibemusic/enumeration/UserStatusEnum.java type UserStatusEnum (line 6) | @Getter method UserStatusEnum (line 16) | UserStatusEnum(Integer id, String userStatus) { FILE: src/main/java/cn/edu/seig/vibemusic/handler/GlobalExceptionHandler.java class GlobalExceptionHandler (line 17) | @Slf4j method errorResult (line 29) | private Result errorResult(String message) { method handleSqlIntegrityConstraintViolationException (line 39) | @ExceptionHandler(SQLIntegrityConstraintViolationException.class) method handleMethodArgumentNotValidException (line 60) | @ExceptionHandler(MethodArgumentNotValidException.class) FILE: src/main/java/cn/edu/seig/vibemusic/interceptor/LoginInterceptor.java class LoginInterceptor (line 25) | @Component method sendErrorResponse (line 33) | public void sendErrorResponse(HttpServletResponse response, int status... method preHandle (line 40) | @Override method afterCompletion (line 106) | @Override FILE: src/main/java/cn/edu/seig/vibemusic/mapper/AdminMapper.java type AdminMapper (line 15) | @Mapper FILE: src/main/java/cn/edu/seig/vibemusic/mapper/ArtistMapper.java type ArtistMapper (line 16) | @Mapper method getArtistDetailById (line 20) | ArtistDetailVO getArtistDetailById(Long artistId); FILE: src/main/java/cn/edu/seig/vibemusic/mapper/BannerMapper.java type BannerMapper (line 15) | @Mapper FILE: src/main/java/cn/edu/seig/vibemusic/mapper/CommentMapper.java type CommentMapper (line 15) | @Mapper FILE: src/main/java/cn/edu/seig/vibemusic/mapper/FeedbackMapper.java type FeedbackMapper (line 15) | @Mapper FILE: src/main/java/cn/edu/seig/vibemusic/mapper/GenreMapper.java type GenreMapper (line 15) | @Mapper FILE: src/main/java/cn/edu/seig/vibemusic/mapper/PlaylistBindingMapper.java type PlaylistBindingMapper (line 15) | @Mapper FILE: src/main/java/cn/edu/seig/vibemusic/mapper/PlaylistMapper.java type PlaylistMapper (line 23) | @Mapper method getPlaylistDetailById (line 27) | PlaylistDetailVO getPlaylistDetailById(Long playlistId); method getFavoritePlaylistStyles (line 30) | List getFavoritePlaylistStyles(List favoritePlaylistIds); method getRecommendedPlaylistsByStyles (line 33) | List getRecommendedPlaylistsByStyles(List sortedStyl... method getRandomPlaylists (line 36) | @Select(""" method getPlaylistsByIds (line 48) | IPage getPlaylistsByIds( FILE: src/main/java/cn/edu/seig/vibemusic/mapper/SongMapper.java type SongMapper (line 24) | @Mapper method getSongsWithArtist (line 28) | @Select(""" method getSongsWithArtistName (line 51) | @Select(""" method getRandomSongsWithArtist (line 78) | @Select(""" method getSongDetailById (line 95) | SongDetailVO getSongDetailById(Long songId); method getSongsByIds (line 98) | IPage getSongsByIds(Page page, method getFavoriteSongStyles (line 105) | List getFavoriteSongStyles(@Param("favoriteSongIds") List ... method getRecommendedSongsByStyles (line 108) | List getRecommendedSongsByStyles(@Param("sortedStyleIds") List... FILE: src/main/java/cn/edu/seig/vibemusic/mapper/StyleMapper.java type StyleMapper (line 15) | @Mapper FILE: src/main/java/cn/edu/seig/vibemusic/mapper/UserFavoriteMapper.java type UserFavoriteMapper (line 19) | @Mapper method getUserFavoriteSongIds (line 23) | @Select("SELECT song_id FROM tb_user_favorite WHERE user_id = #{userId... method getUserFavoritePlaylistIds (line 27) | @Select("SELECT playlist_id FROM tb_user_favorite WHERE user_id = #{us... method getFavoriteSongIdsByUserId (line 31) | @Select("SELECT song_id FROM tb_user_favorite WHERE user_id = #{userId... method getFavoritePlaylistIdsByUserId (line 35) | @Select("SELECT playlist_id FROM tb_user_favorite WHERE user_id = #{us... method getFavoriteIdsByStyle (line 39) | List getFavoriteIdsByStyle(List favoriteStyles); FILE: src/main/java/cn/edu/seig/vibemusic/mapper/UserMapper.java type UserMapper (line 15) | @Mapper FILE: src/main/java/cn/edu/seig/vibemusic/model/dto/AdminDTO.java class AdminDTO (line 11) | @Data FILE: src/main/java/cn/edu/seig/vibemusic/model/dto/ArtistAddDTO.java class ArtistAddDTO (line 10) | @Data FILE: src/main/java/cn/edu/seig/vibemusic/model/dto/ArtistDTO.java class ArtistDTO (line 9) | @Data FILE: src/main/java/cn/edu/seig/vibemusic/model/dto/ArtistUpdateDTO.java class ArtistUpdateDTO (line 10) | @Data FILE: src/main/java/cn/edu/seig/vibemusic/model/dto/BannerDTO.java class BannerDTO (line 10) | @Data FILE: src/main/java/cn/edu/seig/vibemusic/model/dto/CommentPlaylistDTO.java class CommentPlaylistDTO (line 8) | @Data FILE: src/main/java/cn/edu/seig/vibemusic/model/dto/CommentSongDTO.java class CommentSongDTO (line 8) | @Data FILE: src/main/java/cn/edu/seig/vibemusic/model/dto/FeedbackDTO.java class FeedbackDTO (line 9) | @Data FILE: src/main/java/cn/edu/seig/vibemusic/model/dto/PlaylistAddDTO.java class PlaylistAddDTO (line 8) | @Data FILE: src/main/java/cn/edu/seig/vibemusic/model/dto/PlaylistDTO.java class PlaylistDTO (line 9) | @Data FILE: src/main/java/cn/edu/seig/vibemusic/model/dto/PlaylistUpdateDTO.java class PlaylistUpdateDTO (line 8) | @Data FILE: src/main/java/cn/edu/seig/vibemusic/model/dto/SongAddDTO.java class SongAddDTO (line 10) | @Data FILE: src/main/java/cn/edu/seig/vibemusic/model/dto/SongAndArtistDTO.java class SongAndArtistDTO (line 9) | @Data FILE: src/main/java/cn/edu/seig/vibemusic/model/dto/SongDTO.java class SongDTO (line 9) | @Data FILE: src/main/java/cn/edu/seig/vibemusic/model/dto/SongUpdateDTO.java class SongUpdateDTO (line 10) | @Data FILE: src/main/java/cn/edu/seig/vibemusic/model/dto/UserAddDTO.java class UserAddDTO (line 14) | @Data FILE: src/main/java/cn/edu/seig/vibemusic/model/dto/UserDTO.java class UserDTO (line 12) | @Data FILE: src/main/java/cn/edu/seig/vibemusic/model/dto/UserLoginDTO.java class UserLoginDTO (line 12) | @Data FILE: src/main/java/cn/edu/seig/vibemusic/model/dto/UserPasswordDTO.java class UserPasswordDTO (line 11) | @Data FILE: src/main/java/cn/edu/seig/vibemusic/model/dto/UserRegisterDTO.java class UserRegisterDTO (line 12) | @Data FILE: src/main/java/cn/edu/seig/vibemusic/model/dto/UserResetPasswordDTO.java class UserResetPasswordDTO (line 12) | @Data FILE: src/main/java/cn/edu/seig/vibemusic/model/dto/UserSearchDTO.java class UserSearchDTO (line 10) | @Data FILE: src/main/java/cn/edu/seig/vibemusic/model/entity/Admin.java class Admin (line 25) | @Data FILE: src/main/java/cn/edu/seig/vibemusic/model/entity/Artist.java class Artist (line 24) | @Data FILE: src/main/java/cn/edu/seig/vibemusic/model/entity/Banner.java class Banner (line 23) | @Data FILE: src/main/java/cn/edu/seig/vibemusic/model/entity/Comment.java class Comment (line 25) | @Data FILE: src/main/java/cn/edu/seig/vibemusic/model/entity/Feedback.java class Feedback (line 25) | @Data FILE: src/main/java/cn/edu/seig/vibemusic/model/entity/Genre.java class Genre (line 22) | @Data FILE: src/main/java/cn/edu/seig/vibemusic/model/entity/Playlist.java class Playlist (line 22) | @Data FILE: src/main/java/cn/edu/seig/vibemusic/model/entity/PlaylistBinding.java class PlaylistBinding (line 22) | @Data FILE: src/main/java/cn/edu/seig/vibemusic/model/entity/Song.java class Song (line 24) | @Data FILE: src/main/java/cn/edu/seig/vibemusic/model/entity/Style.java class Style (line 22) | @Data FILE: src/main/java/cn/edu/seig/vibemusic/model/entity/User.java class User (line 30) | @Data FILE: src/main/java/cn/edu/seig/vibemusic/model/entity/UserFavorite.java class UserFavorite (line 25) | @Data FILE: src/main/java/cn/edu/seig/vibemusic/model/vo/ArtistDetailVO.java class ArtistDetailVO (line 11) | @Data FILE: src/main/java/cn/edu/seig/vibemusic/model/vo/ArtistNameVO.java class ArtistNameVO (line 8) | @Data FILE: src/main/java/cn/edu/seig/vibemusic/model/vo/ArtistVO.java class ArtistVO (line 8) | @Data FILE: src/main/java/cn/edu/seig/vibemusic/model/vo/BannerVO.java class BannerVO (line 8) | @Data FILE: src/main/java/cn/edu/seig/vibemusic/model/vo/CommentVO.java class CommentVO (line 10) | @Data FILE: src/main/java/cn/edu/seig/vibemusic/model/vo/PlaylistDetailVO.java class PlaylistDetailVO (line 9) | @Data FILE: src/main/java/cn/edu/seig/vibemusic/model/vo/PlaylistVO.java class PlaylistVO (line 8) | @Data FILE: src/main/java/cn/edu/seig/vibemusic/model/vo/SongAdminVO.java class SongAdminVO (line 10) | @Data FILE: src/main/java/cn/edu/seig/vibemusic/model/vo/SongDetailVO.java class SongDetailVO (line 11) | @Data FILE: src/main/java/cn/edu/seig/vibemusic/model/vo/SongVO.java class SongVO (line 10) | @Data FILE: src/main/java/cn/edu/seig/vibemusic/model/vo/UserManagementVO.java class UserManagementVO (line 10) | @Data FILE: src/main/java/cn/edu/seig/vibemusic/model/vo/UserVO.java class UserVO (line 8) | @Data FILE: src/main/java/cn/edu/seig/vibemusic/result/PageResult.java class PageResult (line 10) | @Data FILE: src/main/java/cn/edu/seig/vibemusic/result/Result.java class Result (line 14) | @NoArgsConstructor method success (line 23) | public static Result success(T data) { method success (line 28) | public static Result success() { method error (line 33) | public static Result error() { method success (line 38) | public static Result success(String message, T data) { method success (line 43) | public static Result success(String message) { method error (line 48) | public static Result error(String message) { FILE: src/main/java/cn/edu/seig/vibemusic/service/EmailService.java type EmailService (line 11) | public interface EmailService { method sendEmail (line 14) | boolean sendEmail(String to, String subject, String content); method sendVerificationCodeEmail (line 17) | String sendVerificationCodeEmail(String email); FILE: src/main/java/cn/edu/seig/vibemusic/service/IAdminService.java type IAdminService (line 16) | public interface IAdminService extends IService { method register (line 19) | Result register(AdminDTO adminDTO); method login (line 22) | Result login(AdminDTO adminDTO); method logout (line 25) | Result logout(String token); FILE: src/main/java/cn/edu/seig/vibemusic/service/IArtistService.java type IArtistService (line 25) | public interface IArtistService extends IService { method getAllArtists (line 28) | Result> getAllArtists(ArtistDTO artistDTO); method getAllArtistsAndDetail (line 31) | Result> getAllArtistsAndDetail(ArtistDTO artistDTO); method getAllArtistNames (line 34) | Result> getAllArtistNames(); method getRandomArtists (line 37) | Result> getRandomArtists(); method getArtistDetail (line 40) | Result getArtistDetail(Long artistId, HttpServletReque... method getAllArtistsCount (line 43) | Result getAllArtistsCount(Integer gender, String area); method addArtist (line 46) | Result addArtist(ArtistAddDTO artistAddDTO); method updateArtist (line 49) | Result updateArtist(ArtistUpdateDTO artistUpdateDTO); method updateArtistAvatar (line 52) | Result updateArtistAvatar(Long artistId, String avatar); method deleteArtist (line 55) | Result deleteArtist(Long ArtistId); method deleteArtists (line 58) | Result deleteArtists(List artistIds); FILE: src/main/java/cn/edu/seig/vibemusic/service/IBannerService.java type IBannerService (line 20) | public interface IBannerService extends IService { method getAllBanners (line 23) | Result> getAllBanners(BannerDTO bannerDTO); method addBanner (line 26) | Result addBanner(String bannerUrl); method updateBanner (line 29) | Result updateBanner(Long bannerId, String bannerUrl); method updateBannerStatus (line 32) | Result updateBannerStatus(Long bannerId, Integer bannerStatus); method deleteBanner (line 35) | Result deleteBanner(Long bannerId); method deleteBanners (line 38) | Result deleteBanners(List bannerIds); method getBannerList (line 41) | Result> getBannerList(); FILE: src/main/java/cn/edu/seig/vibemusic/service/ICommentService.java type ICommentService (line 17) | public interface ICommentService extends IService { method addSongComment (line 20) | Result addSongComment(CommentSongDTO commentSongDTO); method addPlaylistComment (line 23) | Result addPlaylistComment(CommentPlaylistDTO commentPlaylistDTO); method likeComment (line 26) | Result likeComment(Long commentId); method cancelLikeComment (line 29) | Result cancelLikeComment(Long commentId); method deleteComment (line 32) | Result deleteComment(Long commentId); FILE: src/main/java/cn/edu/seig/vibemusic/service/IFeedbackService.java type IFeedbackService (line 19) | public interface IFeedbackService extends IService { method getAllFeedbacks (line 22) | Result> getAllFeedbacks(FeedbackDTO feedbackDTO); method deleteFeedback (line 25) | Result deleteFeedback(Long feedbackId); method deleteFeedbacks (line 28) | Result deleteFeedbacks(List feedbackIds); method addFeedback (line 31) | Result addFeedback(String content); FILE: src/main/java/cn/edu/seig/vibemusic/service/IGenreService.java type IGenreService (line 14) | public interface IGenreService extends IService { FILE: src/main/java/cn/edu/seig/vibemusic/service/IPlaylistBindingService.java type IPlaylistBindingService (line 14) | public interface IPlaylistBindingService extends IService { method getAllPlaylists (line 27) | Result> getAllPlaylists(PlaylistDTO playlistDTO); method getAllPlaylistsInfo (line 30) | Result> getAllPlaylistsInfo(PlaylistDTO playlistD... method getRecommendedPlaylists (line 33) | Result> getRecommendedPlaylists(HttpServletRequest re... method getPlaylistDetail (line 36) | Result getPlaylistDetail(Long playlistId, HttpServle... method getAllPlaylistsCount (line 39) | Result getAllPlaylistsCount(String style); method addPlaylist (line 42) | Result addPlaylist(PlaylistAddDTO playlistAddDTO); method updatePlaylist (line 45) | Result updatePlaylist(PlaylistUpdateDTO playlistUpdateDTO); method updatePlaylistCover (line 48) | Result updatePlaylistCover(Long playlistId, String coverUrl); method deletePlaylist (line 51) | Result deletePlaylist(Long playlistId); method deletePlaylists (line 54) | Result deletePlaylists(List playlistIds); FILE: src/main/java/cn/edu/seig/vibemusic/service/ISongService.java type ISongService (line 26) | public interface ISongService extends IService { method getAllSongs (line 29) | Result> getAllSongs(SongDTO songDTO, HttpServletReq... method getAllSongsByArtist (line 32) | Result> getAllSongsByArtist(SongAndArtistDTO s... method getRecommendedSongs (line 35) | Result> getRecommendedSongs(HttpServletRequest request); method getSongDetail (line 38) | Result getSongDetail(Long songId, HttpServletRequest req... method getAllSongsCount (line 41) | Result getAllSongsCount(String style); method addSong (line 44) | Result addSong(SongAddDTO songAddDTO); method updateSong (line 47) | Result updateSong(SongUpdateDTO songUpdateDTO); method updateSongCover (line 50) | Result updateSongCover(Long songId, String coverUrl); method updateSongAudio (line 53) | Result updateSongAudio(Long songId, String audioUrl, String duration); method deleteSong (line 56) | Result deleteSong(Long songId); method deleteSongs (line 59) | Result deleteSongs(List songIds); FILE: src/main/java/cn/edu/seig/vibemusic/service/IStyleService.java type IStyleService (line 14) | public interface IStyleService extends IService