1.新增套餐
新增套餐,就是将新增页面录入的套餐信息插入到setmeal表,还需要向setmeal_dish表插入套餐和菜品关联数据。
所以在新增套餐时,涉及到两个表:
setmeal 套餐表
setmeal_dish 套餐菜品关系表
在开发代码之前,需要梳理一下新增套餐时前端页面和服务端的交互过程:
1、页面(backend/page/combo/add.html)发送ajax请求,请求服务端获取套餐分类数据并展示到下拉框中
2、页面发送ajax请求,请求服务端获取菜品分类数据并展示到添加菜品窗口中
3、页面发送ajax请求,请求服务端,根据菜品分类查询对应的菜品数据并展示到添加菜品窗口中
4、页面发送请求进行图片上传,请求服务端将图片保存到服务器
5、页面发送请求进行图片下载,将上传的图片进行回显
6、点击保存按钮,发送ajax请求,将套餐相关数据以json形式提交到服务端
开发新增套餐功能,其实就是在服务端编写代码去处理前端页面发送的这6次请求即可。
- 1、页面(backend/page/combo/add.html)发送ajax请求,请求服务端获取套餐分类数据并展示到下拉框中
- 2、页面发送ajax请求,请求服务端获取菜品分类数据并展示到添加菜品窗口中
效果如图(这里为了减少代码冗余,共用一套方法,传过来的参数type不同而已 1是菜品 2是套餐)
实现代码:
/**
* 根据条件查询分类数据 --下拉框展示菜品所属分类
* @param category
* @return
*/
@GetMapping("/list")
public R<List<Category>> list(Category category){
// 创建条件构造器
LambdaQueryWrapper<Category> queryWrapper = new LambdaQueryWrapper<>();
// 添加条件
queryWrapper.eq(category.getType()!=null,Category::getType,category.getType());
// 添加排序条件
queryWrapper.orderByAsc(Category::getSort).orderByDesc(Category::getUpdateTime);
// 执行mybatis—plus封装方法
List<Category> list = categoryService.list(queryWrapper);
return R.success(list);
}
- 3、页面发送ajax请求,请求服务端,根据菜品分类查询对应的菜品数据并展示到添加菜品窗口中
效果如图:
/**
* 根据条件查询相应菜品数据 -- 套餐管理-新建套餐-添加菜品
* @param dish
* @return
*/
@GetMapping("/list"