需求分析
后台系统可以管理菜品信息,通过新增功能来添加一个新的菜品,在添加菜品时需要选择当前菜品所属的分类,并且需要上传菜品图片,在客户端会按照菜品分类来展示对应的菜品信息。
新增菜品,其实就是将新增页面录入的菜品信息插入dish表,如果添加了口味做法,还需要向dish_flavor表插入数据。所以在新增菜品时,涉及两个表:
dish — 菜品表
dish_flavor—菜品口味表
在开发代码之前,我们先梳理一下新增菜品时前端页面和服务端的交互过程
1.页面发送ajax请求,请求服务端获取菜品分类数据并展示到下拉框中
2.页面发送请求进行图片上传,请求服务端将图片保存到服务器 (关注上文)
3.页面发送请求进行图片下载,将上传的图片进行回显(关注上文)
4.点击保存按钮,发送ajax请求,将菜品相关数据以json形式提交服务端
1.页面发送ajax请求,请求服务端获取菜品分类数据并展示到下拉框中,根据type参数进行查询,菜品分类type
为1,套餐分类type为2
// 获取菜品分类
getDishList () {
getCategoryList({ 'type': 1 }).then(res => {
if (res.code === 1) {
this.dishList = res.data
} else {
this.$message.error(res.msg || '操作失败')
}
})
}
// 获取菜品分类列表
const getCategoryList = (params) => {
return $axios({
url: '/category/list',
method: 'get',
params
})
}
controller:
@GetMapping("/list")
public R<List<Category>> getCategoryList(Category category){
LambdaQueryWrapper<Category> queryWrapper = new LambdaQueryWrapper<>()