cache(invalidate): 更新热门歌曲、歌单和歌手缓存
- 在添加、更新和删除音乐时更新热门歌曲缓存 - 在添加、更新和删除歌单时更新热门歌单缓存 - 在添加、更新和删除歌手时更新热门歌手缓存
This commit is contained in:
@@ -144,6 +144,7 @@ public class MusicController {
|
||||
@RequestPart(value = "file", required = false) MultipartFile file,
|
||||
@RequestPart(value = "cover", required = false) MultipartFile cover) {
|
||||
MusicDTO result = musicService.addMusic(musicDTO, file, cover);
|
||||
musicService.updateHotMusicCache();
|
||||
return Result.success("添加成功", result);
|
||||
}
|
||||
|
||||
@@ -178,6 +179,7 @@ public class MusicController {
|
||||
@DeleteMapping("/{id}")
|
||||
public Result<Boolean> deleteMusic(@PathVariable Long id) {
|
||||
boolean result = musicService.deleteMusic(id);
|
||||
musicService.updateHotMusicCache();
|
||||
return Result.success("删除成功", result);
|
||||
}
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@ import com.test.musichouduan.dto.PlaylistDTO;
|
||||
import com.test.musichouduan.dto.Result;
|
||||
import com.test.musichouduan.service.PlaylistService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.redis.core.StringRedisTemplate;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
@@ -19,9 +20,11 @@ import java.util.List;
|
||||
@RestController
|
||||
@RequestMapping("/api/playlist")
|
||||
public class PlaylistController {
|
||||
|
||||
private static final String HOT_PLAYLIST_CACHE_KEY = "playlist:hot_list";
|
||||
@Autowired
|
||||
private PlaylistService playlistService;
|
||||
@Autowired
|
||||
private StringRedisTemplate redisTemplate;
|
||||
|
||||
/**
|
||||
* 根据ID获取歌单
|
||||
@@ -129,6 +132,8 @@ public class PlaylistController {
|
||||
@RequestPart("playlist") PlaylistDTO playlistDTO,
|
||||
@RequestPart(value = "cover", required = false) MultipartFile cover) {
|
||||
PlaylistDTO result = playlistService.addPlaylist(playlistDTO, cover);
|
||||
redisTemplate.delete(HOT_PLAYLIST_CACHE_KEY);
|
||||
playlistService.getHotPlaylist(50);
|
||||
return Result.success("添加成功", result);
|
||||
}
|
||||
|
||||
@@ -147,6 +152,8 @@ public class PlaylistController {
|
||||
@RequestPart("playlist") PlaylistDTO playlistDTO,
|
||||
@RequestPart(value = "cover", required = false) MultipartFile cover) {
|
||||
PlaylistDTO result = playlistService.updatePlaylist(id, playlistDTO, cover);
|
||||
redisTemplate.delete(HOT_PLAYLIST_CACHE_KEY);
|
||||
playlistService.getHotPlaylist(50);
|
||||
return Result.success("更新成功", result);
|
||||
}
|
||||
|
||||
@@ -160,6 +167,8 @@ public class PlaylistController {
|
||||
@DeleteMapping("/{id}")
|
||||
public Result<Boolean> deletePlaylist(@PathVariable Long id) {
|
||||
boolean result = playlistService.deletePlaylist(id);
|
||||
redisTemplate.delete(HOT_PLAYLIST_CACHE_KEY);
|
||||
playlistService.getHotPlaylist(50);
|
||||
return Result.success("删除成功", result);
|
||||
}
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@ import com.test.musichouduan.dto.Result;
|
||||
import com.test.musichouduan.dto.SingerDTO;
|
||||
import com.test.musichouduan.service.SingerService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.redis.core.StringRedisTemplate;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
@@ -20,8 +21,12 @@ import java.util.List;
|
||||
@RequestMapping("/api/singer")
|
||||
public class SingerController {
|
||||
|
||||
private static final String HOT_SINGER_CACHE_KEY = "singer:hot_list";
|
||||
|
||||
@Autowired
|
||||
private SingerService singerService;
|
||||
@Autowired
|
||||
private StringRedisTemplate redisTemplate;
|
||||
|
||||
/**
|
||||
* 根据ID获取歌手
|
||||
@@ -114,6 +119,8 @@ public class SingerController {
|
||||
@RequestPart("singer") SingerDTO singerDTO,
|
||||
@RequestPart(value = "avatar", required = false) MultipartFile avatar) {
|
||||
SingerDTO result = singerService.addSinger(singerDTO, avatar);
|
||||
redisTemplate.delete(HOT_SINGER_CACHE_KEY);
|
||||
singerService.getHotSinger(50);
|
||||
return Result.success("添加成功", result);
|
||||
}
|
||||
|
||||
@@ -133,6 +140,8 @@ public class SingerController {
|
||||
@RequestPart("singer") SingerDTO singerDTO,
|
||||
@RequestPart(value = "avatar", required = false) MultipartFile avatar) {
|
||||
SingerDTO result = singerService.updateSinger(id, singerDTO, avatar);
|
||||
redisTemplate.delete(HOT_SINGER_CACHE_KEY);
|
||||
singerService.getHotSinger(50);
|
||||
return Result.success("更新成功", result);
|
||||
}
|
||||
|
||||
@@ -146,6 +155,8 @@ public class SingerController {
|
||||
@DeleteMapping("/{id}")
|
||||
public Result<Boolean> deleteSinger(@PathVariable Long id) {
|
||||
boolean result = singerService.deleteSinger(id);
|
||||
redisTemplate.delete(HOT_SINGER_CACHE_KEY);
|
||||
singerService.getHotSinger(50);
|
||||
return Result.success("删除成功", result);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user