当前位置: 首页 > article >正文

起售停售套餐

思路:

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);

http://www.kler.cn/a/440728.html

相关文章:

  • tij15_泛型
  • Java性能调优 - JVM性能监测及调优
  • React Native学习路线图
  • 计算机组成原理(八):加法器
  • ps案例制作
  • centos使用mkisofs构建无人值守镜像(附官方学习文档)
  • python webdriver-manager 实现selenium 免下载安装webdriver
  • 51c视觉~合集31
  • 【C++】红黑树(万字)
  • 【AIStarter】3.2.1版本更新:告别Bug,提升用户体验
  • 前端(七)定位流
  • 单片机:实现utf-8转gb2312(附带源码)
  • 银河麒麟桌面操作系统添加WPS字体
  • 如何在 Ubuntu 上安装 OpenSearch 开源的搜索引擎
  • BGP-面试
  • Zookeeper其二,zk的java和选举机制,Hadoop的高可用和联邦机制
  • c++ multimap
  • TCP小队列与WiFi聚合
  • 计算机网络 | 5.传输层
  • 【功能安全】随机硬件失效导致违背安全目标的评估(FMEDA)