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.web.bind.annotation.*; import java.util.List; @RestController @RequestMapping("/admin/dish") @Slf4j @Api(tags = "菜品相关接口") public class DishController { @Autowired private DishService dishService; /** * 新增菜品 * * @param dishDTO * @return */ @PostMapping @ApiOperation("新增菜品") public Result save(@RequestBody DishDTO dishDTO) { log.info("新增菜品: {}", dishDTO); dishService.saveWithFlavor(dishDTO); return Result.success(); } /** * 菜品分页查询 * * @param pageQueryDTO * @return */ @GetMapping("/page") @ApiOperation("菜品分页查询") public Result page(DishPageQueryDTO pageQueryDTO) { log.info("菜品分页查询: {}", pageQueryDTO); PageResult pageResult = dishService.pageQuery(pageQueryDTO); return Result.success(pageResult); } /** * 批量删除菜品 * @param ids * @return */ @DeleteMapping @ApiOperation("批量删除菜品") public Result delete(@RequestParam List ids){ log.info("批量删除菜品: {}",ids); dishService.deleteBatch(ids); return Result.success(); } /** * 根据id查询菜品 * @param id * @return */ @GetMapping("/{id}") @ApiOperation("根据id查询菜品") public Result getById(@PathVariable Long id) { log.info("根据id查询菜品: {}",id); DishVO dishVO = dishService.getByIdWithFlavor(id); return Result.success(dishVO); } /** * 修改菜品 * @param dishDTO * @return */ @PutMapping @ApiOperation("修改菜品") public Result update(@RequestBody DishDTO dishDTO) { log.info("修改菜品: {}",dishDTO); dishService.updateWithFlavor(dishDTO); return Result.success(); } /** * 根据分类id查询菜品 * @param categoryId * @return */ @GetMapping("/list") @ApiOperation("根据分类id查询菜品") public Result list(Long categoryId){ log.info("根据分类id查询菜品: {}",categoryId); List dishes = dishService.selectByCategoryId(categoryId); return Result.success(dishes); } /** * 菜品起售停售 * @param status * @param id * @return */ @PostMapping("/status/{status}") @ApiOperation("菜品起售停售") public Result startOrStop(@PathVariable Integer status,Long id){ log.info("菜品起售停售: 状态:{},ID:{}",status,id); dishService.startOrStop(status,id); return Result.success(); } }