起售停售套餐

发布于:2024-12-18 ⋅ 阅读:(58) ⋅ 点赞:(0)

思路:

1.SetmealServiceImpl

2.首先判读套餐内是否有起售产品

2.1活得对应id

2.2根据id查询是否为空且长度不为0

2.3判断完在判读是否为为0如果是0抛出异常

3.返回数据需要id 和status

SetmealController

@PostMapping("/status/{status}")
@ApiOperation("启用禁用分类")
public  Result<String> startOrStop (@PathVariable Integer status, Long id){
        setmealService.startOrStop(status,id);
        return Result.success();
}

SetmealServiceImpl

@Override
public void startOrStop(Integer status, Long id) {
    //起售套餐时,判断套餐内是否有停售菜品,有停售菜品提示"套餐内包含未启售菜品,无法启售"
    if (status.equals(StatusConstant.ENABLE)) {
     List<Dish> dishList=   dishMapper.getBySetmealId(id);
     if (dishList != null && dishList.size() > 0) {
         dishList.forEach(dish -> {
             if (dish.getStatus().equals(StatusConstant.DISABLE)) {
                 throw new DeletionNotAllowedException(MessageConstant.DISH_ON_SALE);
             }
         });
     }
    }
    Setmeal setmeal = Setmeal.builder()
            .id(id)
            .status(status)
            .build();
    setmealMapper.update(setmeal);
}

DishMapper

/**
 *  起售套餐时,判断套餐内是否有停售菜品,有停售菜品提示"套餐内包含未启售菜品,无法启售"
 * @param id
 * @return
 */
@Select("select *from sky_take_out.dish d left join sky_take_out.setmeal_dish s on d.id = s.dish_id where s.setmeal_id=#{setmealId}")
List<Dish> getBySetmealId(Long id);

网站公告

今日签到

点亮在社区的每一天
去签到