SongController.java 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. package org.example.music.controller;
  2. import org.example.music.common.R;
  3. import org.example.music.model.request.SongRequest;
  4. import org.example.music.service.SongService;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.boot.web.servlet.MultipartConfigFactory;
  7. import org.springframework.context.annotation.Bean;
  8. import org.springframework.util.unit.DataSize;
  9. import org.springframework.util.unit.DataUnit;
  10. import org.springframework.web.bind.annotation.*;
  11. import org.springframework.web.multipart.MultipartFile;
  12. import javax.servlet.MultipartConfigElement;
  13. @RestController
  14. public class SongController {
  15. @Autowired
  16. private SongService songService;
  17. @Bean
  18. public MultipartConfigElement multipartConfigElement() {
  19. MultipartConfigFactory factory = new MultipartConfigFactory();
  20. // 文件最大10M,DataUnit提供5中类型B,KB,MB,GB,TB
  21. factory.setMaxFileSize(DataSize.of(20, DataUnit.MEGABYTES));
  22. // 设置总上传数据总大小10M
  23. factory.setMaxRequestSize(DataSize.of(20, DataUnit.MEGABYTES));
  24. return factory.createMultipartConfig();
  25. }
  26. // 添加歌曲
  27. @PostMapping("/song/add")
  28. public R addSong(SongRequest addSongRequest, @RequestParam("lrcfile") MultipartFile lrcfile, @RequestParam("file") MultipartFile mpfile) {
  29. return songService.addSong(addSongRequest,lrcfile,mpfile);
  30. }
  31. // 删除歌曲
  32. @DeleteMapping("/song/delete")
  33. public R deleteSong(@RequestParam int id) {
  34. return songService.deleteSong(id);
  35. }
  36. // 返回所有歌曲
  37. @GetMapping("/song")
  38. public R allSong() {
  39. return songService.allSong();
  40. }
  41. //TODO ok
  42. // 返回指定歌曲ID的歌曲
  43. @GetMapping("/song/detail")
  44. public R songOfId(@RequestParam int id) {
  45. return songService.songOfId(id);
  46. }
  47. // 返回指定歌手ID的歌曲
  48. @GetMapping("/song/singer/detail")
  49. public R songOfSingerId(@RequestParam int singerId) {
  50. return songService.songOfSingerId(singerId);
  51. }
  52. // 返回指定歌手名的歌曲
  53. @GetMapping("/song/singerName/detail")
  54. public R songOfSingerName(@RequestParam String name) {
  55. return songService.songOfSingerName('%' + name + '%');
  56. }
  57. // 更新歌曲信息
  58. @PostMapping("/song/update")
  59. public R updateSongMsg(@RequestBody SongRequest updateSongRequest) {
  60. return songService.updateSongMsg(updateSongRequest);
  61. }
  62. // 更新歌曲图片
  63. @PostMapping("/song/img/update")
  64. public R updateSongPic(@RequestParam("file") MultipartFile urlFile, @RequestParam("id") int id) {
  65. return songService.updateSongPic(urlFile, id);
  66. }
  67. // 更新歌曲
  68. @PostMapping("/song/url/update")
  69. public R updateSongUrl(@RequestParam("file") MultipartFile urlFile, @RequestParam("id") int id) {
  70. return songService.updateSongUrl(urlFile, id);
  71. }
  72. ///song/lrc/update
  73. //更新歌词
  74. @PostMapping("/song/lrc/update")
  75. public R updateSongLrc(@RequestParam("file") MultipartFile lrcFile, @RequestParam("id") int id) {
  76. return songService.updateSongLrc(lrcFile, id);
  77. }
  78. }