diff --git a/sky-server/pom.xml b/sky-server/pom.xml
index 3a86d87..565b5da 100644
--- a/sky-server/pom.xml
+++ b/sky-server/pom.xml
@@ -86,12 +86,13 @@
knife4j-spring-boot-starter
-
+
org.springframework.boot
spring-boot-starter-data-redis
+
org.springframework.boot
spring-boot-starter-cache
diff --git a/sky-server/src/main/java/com/sky/SkyApplication.java b/sky-server/src/main/java/com/sky/SkyApplication.java
index b13f77c..5c75b01 100644
--- a/sky-server/src/main/java/com/sky/SkyApplication.java
+++ b/sky-server/src/main/java/com/sky/SkyApplication.java
@@ -3,11 +3,13 @@ package com.sky;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cache.annotation.EnableCaching;
import org.springframework.transaction.annotation.EnableTransactionManagement;
@SpringBootApplication
@EnableTransactionManagement //开启注解方式的事务管理
@Slf4j
+@EnableCaching //开启缓存注解功能
public class SkyApplication {
public static void main(String[] args) {
SpringApplication.run(SkyApplication.class, args);
diff --git a/sky-server/src/main/java/com/sky/controller/admin/SetmealController.java b/sky-server/src/main/java/com/sky/controller/admin/SetmealController.java
index eff3f33..83fc1d2 100644
--- a/sky-server/src/main/java/com/sky/controller/admin/SetmealController.java
+++ b/sky-server/src/main/java/com/sky/controller/admin/SetmealController.java
@@ -10,6 +10,7 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cache.annotation.CacheEvict;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@@ -33,6 +34,8 @@ public class SetmealController {
*/
@PostMapping
@ApiOperation("新增套餐")
+ //在客户端新增套餐时,要把对应分类的套餐缓存清理,在下一次查询时,获取最新的数据进行缓存
+ @CacheEvict(cacheNames = "setmealCache",key = "#setmealDTO.categoryId")
public Result save(@RequestBody SetmealDTO setmealDTO) {
setmealService.saveWithDish(setmealDTO);
return Result.success();
@@ -57,6 +60,8 @@ public class SetmealController {
*/
@DeleteMapping
@ApiOperation("批量删除套餐")
+ //客户端批量删除套餐数据时,可能删除多个分类下的套餐,为了避免多余的查询操作,直接将套餐的所有缓存直接清理
+ @CacheEvict(cacheNames = "setmealCache",allEntries = true)
public Result delete(@RequestParam List ids){
setmealService.deleteBatch(ids);
return Result.success();
@@ -83,6 +88,8 @@ public class SetmealController {
*/
@PutMapping
@ApiOperation("修改套餐")
+ //客户端修改套餐数据时,可能修改分类的类型,为了避免多余的查询操作,直接将套餐的所有缓存直接清理
+ @CacheEvict(cacheNames = "setmealCache",allEntries = true)
public Result update(@RequestBody SetmealDTO setmealDTO) {
setmealService.update(setmealDTO);
return Result.success();
@@ -96,6 +103,8 @@ public class SetmealController {
*/
@PostMapping("/status/{status}")
@ApiOperation("套餐起售停售")
+ //客户端起售停售套餐时,没有传递套餐的分类id,为了避免多余的查询操作,直接将套餐的所有缓存直接清理
+ @CacheEvict(cacheNames = "setmealCache",allEntries = true)
public Result startOrStop(@PathVariable Integer status, Long id) {
setmealService.startOrStop(status, id);
return Result.success();
diff --git a/sky-server/src/main/java/com/sky/controller/user/SetmealController.java b/sky-server/src/main/java/com/sky/controller/user/SetmealController.java
index 5557e7c..9f60302 100644
--- a/sky-server/src/main/java/com/sky/controller/user/SetmealController.java
+++ b/sky-server/src/main/java/com/sky/controller/user/SetmealController.java
@@ -8,6 +8,7 @@ import com.sky.vo.DishItemVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cache.annotation.Cacheable;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -29,6 +30,7 @@ public class SetmealController {
*/
@GetMapping("/list")
@ApiOperation("根据分类id查询套餐")
+ @Cacheable(cacheNames = "setmealCache",key = "#categoryId") //redis的key setmealCache::#categoryId
public Result> list(Long categoryId) {
Setmeal setmeal = new Setmeal();
setmeal.setCategoryId(categoryId);