黑马苍穹外卖项目-菜品起售停售业务代码

目录

一、DishController部分

1.分析接口

 2.具体代码

二、DishService部分

三、DishServiceImpl部分

四、SetmealDishMapper接口

五、新增自定义异常类和返回详细常量


一、DishController部分

1.分析接口

 请求路径和请求参数:

 返回给页面的数据(用资料给的Result<T>封装):

 2.具体代码
/**
     * 菜品的起售停售
     * @param status
     * @param id
     * @return
     */
    @PostMapping("/status/{status}")
    @ApiOperation("菜品的起售停售")
    public Result startOrStop(@PathVariable Integer status,Long id){
        log.info("菜品的起售停售:{},{}",status == 1 ? "起售" : "停售" ,id);
        dishService.startOrStop(status,id);
        return Result.success();
    }

二、DishService部分

/**
     * 菜品的起售停售
     * @param status
     * @param id
     */
    void startOrStop(Integer status, Long id);

三、DishServiceImpl部分

/**
     * 菜品的起售停售
     * @param status
     * @param id
     */
    @Override
    public void startOrStop(Integer status, Long id) {
        //被套餐关联的菜品不能被停售---通过菜品id查setmeal_dish表
        SetmealDish setmealDish = setmealDishMapper.getSetmealDishByDishId(id);

        if(setmealDish != null){
            //菜品被套餐关联,不能被停售
            throw new DishStopFailedException(MessageConstant.DISH_BE_STOPED_BY_SETMEAL);
        }

        Dish dish = Dish.builder()
                .id(id)
                .status(status)
                .build();

        dishMapper.update(dish);
    }

四、SetmealDishMapper接口

/**
     * 根据菜品id查询菜品对应套餐关系
     * @param id
     * @return
     */
    @Select("select * from setmeal_dish where dish_id = #{id}")
    SetmealDish getSetmealDishByDishId(Long id);

五、新增自定义异常类和返回详细常量

package com.sky.exception;

/**
 * 菜品停售失败异常
 */
public class DishStopFailedException extends BaseException {

    public DishStopFailedException(){}

    public DishStopFailedException(String msg){
        super(msg);
    }
}
在MessageConstant以下常量:
public static final String DISH_BE_STOPED_BY_SETMEAL = "当前菜品关联了套餐,不能停售";

有错误还请指正

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值