diff --git a/sky-server/src/main/java/com/sky/controller/admin/DishController.java b/sky-server/src/main/java/com/sky/controller/admin/DishController.java new file mode 100644 index 0000000..c72835f --- /dev/null +++ b/sky-server/src/main/java/com/sky/controller/admin/DishController.java @@ -0,0 +1,109 @@ +package com.sky.controller.admin; + + +import com.sky.dto.DishDTO; +import com.sky.dto.DishPageQueryDTO; +import com.sky.entity.Dish; +import com.sky.result.PageResult; +import com.sky.result.Result; +import com.sky.service.DishService; +import com.sky.vo.DishVO; +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.data.redis.core.RedisTemplate; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Set; + +/* +* 菜品管理 +* */ +@RestController +@RequestMapping("/admin/dish") +@Api(tags = "菜品相关接口") +@Slf4j +public class DishController { + + @Autowired + private DishService dishService; + @Autowired + private RedisTemplate redisTemplate; + @PostMapping + @ApiOperation("新增菜品") + public Result save(@RequestBody DishDTO dishDTO){ + log.info("新增菜品:{}",dishDTO); + dishService.saveWithFlavor(dishDTO); + + //清理缓存数据 + String key = "dish_" + dishDTO.getCategoryId(); + redisTemplate.delete(key); + return Result.success(); + } + + @GetMapping("/page") + @ApiOperation("菜品分页查询") + public Result page(DishPageQueryDTO dishPageQueryDTO){ + log.info("菜品分页查询:{}",dishPageQueryDTO); + PageResult pageResult = dishService.pageQuery(dishPageQueryDTO); + return Result.success(pageResult); + } + + @DeleteMapping + @ApiOperation("批量删除菜品") + public Result delete(@RequestParam List ids){ + log.info("菜品批量删除:{}",ids); + dishService.deleteBatch(ids); + + //将所有菜品缓存数据清理掉,所有以dish_开头的key + cleanCache("dish_*"); + return Result.success(); + } + + @GetMapping("/{id}") + @ApiOperation("根据菜品id获取信息") + public Result getById(@PathVariable Long id){ + log.info("根据id获取菜品:{}",id); + DishVO dishVO = dishService.getById(id); + return Result.success(dishVO); + } + + @PutMapping + @ApiOperation("修改菜品") + public Result update(@RequestBody DishDTO dishDTO){ + log.info("修改菜品:{}",dishDTO); + dishService.updateWithFlavor(dishDTO); + + //将所有菜品缓存数据清理掉,所有以dish_开头的key + cleanCache("dish_*"); + return Result.success(); + } + + @ApiOperation("起售停售菜品") + @PostMapping("/status/{status}") + public Result StartOrStop(@PathVariable Integer status,Integer id){ + log.info("起售停售菜品:{}",status == 1 ? "起售" : "停售"); + dishService.startOrStop(status,id); + + //将所有菜品缓存数据清理掉,所有以dish_开头的key + cleanCache("dish_*"); + return Result.success(); + } + @GetMapping("/list") + @ApiOperation("根据分类id查询菜品") + public Result> getByCategoryId(Long categoryId){ + log.info("根据分类id查询菜品:{}",categoryId); + List list = dishService.getByCategoryId(categoryId); + return Result.success(list); + } + + /* + * 清理缓存数据 + * */ + private void cleanCache(String pattern){ + Set keys = redisTemplate.keys(pattern); + redisTemplate.delete(keys); + } +}