欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > 新增套餐——后端

新增套餐——后端

2025/9/19 8:44:01 来源:https://blog.csdn.net/weixin_53717695/article/details/139565346  浏览:    关键词:新增套餐——后端

1.交互逻辑

        新增套餐,就是将新增页面的套餐信息插入到setmeal表,并向setmeal_dish中插入套餐和菜品关联数据。涉及setmeal, setmeal_dish两张表。

        页面发送ajax请求,请求服务端获取套餐分类数据并展示到下拉框中;获取菜品分类数据并展示到菜品窗口中;根据菜品分类查询对应的菜品数据并展示到添加菜品窗口中;进行图片上传,将图片保存到服务器并进行图片下载,将上传的图片进行回显;点击保存按钮,页面发送ajax请求,将套餐相关数据以json形式提交到服务端。

        服务端需要处理以上页面发送的请求。

2.代码实现

2.1 根据分类查询菜品

    /*** 根据条件查询对应的菜品数据* @param dish* @return*/@GetMapping("/list")public R<List<Dish>> list(Dish dish){//构造查询条件LambdaQueryWrapper<Dish> queryWrapper = new LambdaQueryWrapper<>();queryWrapper.eq(dish.getCategoryId() != null, Dish::getCategoryId, dish.getCategoryId());//添加条件,查询状态为1(起售状态)的菜品queryWrapper.eq(Dish::getStatus, 1);//添加排序条件queryWrapper.orderByAsc(Dish::getSort).orderByDesc(Dish::getUpdateTime);List<Dish> list = dishService.list(queryWrapper);return R.success(list);}

2.2 服务端接收数据并保存

SetmealController.java中:

    /*** 新增套餐* @param setmealDto* @return*/@PostMappingpublic R<String> save(@RequestBody SetmealDto setmealDto){log.info("套餐信息:{}", setmealDto);setmealService.saveWithDish(setmealDto);return R.success("新增套餐成功");}

SetmealServiceImpl.java中:

    @Autowiredprivate SetmealDishService setmealDishService;/*** 新增套餐,同时需要保存套餐和菜品的关联关系* @param setmealDto*/@Transactionalpublic void saveWithDish(SetmealDto setmealDto) {//保存套餐的基本信息,setmeal表this.save(setmealDto);//保存套餐和菜品的关联关系List<SetmealDish> setmealDishes = setmealDto.getSetmealDishes();setmealDishes.stream().map((item) -> {item.setSetmealId(setmealDto.getId());return item;}).collect(Collectors.toList());setmealDishService.saveBatch(setmealDishes);}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词