package com.sky.controller.admin; import com.sky.dto.SetmealDTO; import com.sky.dto.SetmealPageQueryDTO; import com.sky.result.PageResult; import com.sky.result.Result; import com.sky.service.SetmealService; import com.sky.vo.SetmealVO; 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; @RestController @RequestMapping("/admin/setmeal") @Slf4j @Api(tags = "套餐相关接口") public class SetmealController { @Autowired private SetmealService setmealService; /** * 套餐分页查询 * @param setmealPageQueryDTO * @return */ @GetMapping("/page") @ApiOperation("套餐分页查询") public Result pageQuery(SetmealPageQueryDTO setmealPageQueryDTO){ log.info("套餐分页查询: {}",setmealPageQueryDTO); PageResult pageResult = setmealService.pageQuery(setmealPageQueryDTO); return Result.success(pageResult); } /** * 新增套餐 * @param setmealDTO * @return */ @PostMapping @ApiOperation("新增套餐") @CacheEvict(cacheNames = "setmealCache",key = "#setmealDTO.categoryId") public Result insert(@RequestBody SetmealDTO setmealDTO){ log.info("新增套餐: {}",setmealDTO); setmealService.insert(setmealDTO); return Result.success(); } /** * 批量删除套餐 * @param ids * @return */ @DeleteMapping @ApiOperation("批量删除套餐") @CacheEvict(cacheNames = "setmealCache",allEntries = true) public Result delete(@RequestParam List ids){ log.info("批量删除套餐: {}",ids); setmealService.deleteBatch(ids); return Result.success(); } /** * 根据id查询套餐 * @param id * @return */ @GetMapping("/{id}") @ApiOperation("根据id查询套餐") public Result getById(@PathVariable Long id){ log.info("根据id查询套餐: {}",id); SetmealVO setmealVO = setmealService.getByIdWithSetmealDishes(id); return Result.success(setmealVO); } /** * 修改套餐 * @param setmealDTO * @return */ @PutMapping @ApiOperation("修改套餐") @CacheEvict(cacheNames = "setmealCache",allEntries = true) public Result update(@RequestBody SetmealDTO setmealDTO){ log.info("修改套餐: {}",setmealDTO); setmealService.updateWithSetmealDishes(setmealDTO); return Result.success(); } /** * 套餐起售停售 * @param status * @param id * @return */ @PostMapping("/status/{status}") @ApiOperation("套餐起售停售") @CacheEvict(cacheNames = "setmealCache",allEntries = true) public Result startOrStop(@PathVariable Integer status,Long id){ log.info("套餐起售停售: 状态:{},ID:{}",status,id); setmealService.startOrStop(status,id); return Result.success(); } }