根据条件查询对应菜品数据
[TOC]
简要描述
- 根据条件查询对应菜品数据
前端页面和服务端的交互过程
- 页面发送ajax请求,获取第一个分类下的菜品
触发事件
- 页面数据初始化
接口调用
//获取菜品数据
if(res[1].code === 1){
this.cartData = res[1].data
}else{
this.$notify({ type:'warning', message:res[1].msg});
}
请求URL
[context-path]/dish/list
请求方式
- GET
请求参数
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
categoryId | 是 | BIGINT | 菜品分类id |
status | 是 | INT | 1启售0停售 |
返回示例
code: 1
data: [,…]
0: {id: "1605794630641934337", name: "牛油锅", categoryId: "1397844263642378242", price: 6800, code: "",…}
map: {}
msg: null
返回参数说明
参数名 | 类型 | 说明 |
---|---|---|
code | int | 编码:1成功,0和其它数字为失败 |
data | object | 数据 |
map | Map | 动态数据 |
msg | String | 错误信息 |
备注
data有两种返回值
public static <T> R<T> success(T object) {
R<T> r = new R<T>();
r.data = object;
r.code = 1;
return r;
}
public static <T> R<T> error(String msg) {
R r = new R();
r.msg = msg;
r.code = 0;
return r;
}
后端接口请求参数
- 映射DishDto对象类型参数
后端代码
@GetMapping("/list")
public R<List<DishDto>> listR(DishDto dish){
log.info("list{}",dish);
LambdaQueryWrapper<Dish> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.like(StringUtils.isNotEmpty(dish.getName()),Dish::getName,dish.getName());
queryWrapper.eq(dish.getCategoryId()!=null,Dish::getCategoryId,dish.getCategoryId());
queryWrapper.eq(Dish::getStatus,1);
queryWrapper.orderByDesc(Dish::getUpdateTime);
List<Dish> list = dishService.list(queryWrapper);
List<DishDto> collect = list.stream().map((item) -> {
DishDto dishDto = new DishDto();
BeanUtils.copyProperties(item, dishDto);
Long categoryId = item.getCategoryId();
if (categoryId != null) {
Category category = categoryService.getById(categoryId);
dishDto.setCategoryName(category.getName());
}
Long dishId = item.getId();
LambdaQueryWrapper<DishFlavor> queryWrapper1 = new LambdaQueryWrapper<>();
queryWrapper1.eq(DishFlavor::getDishId, dishId);
List<DishFlavor> flavors = dishFlavorService.list(queryWrapper1);
dishDto.setFlavors(flavors);
return dishDto;
}).collect(Collectors.toList());
return R.success(collect);
}
}