查询具体菜品/套餐内容
[TOC]
简要描述
- 查询具体菜品、套餐内容
前端页面和服务端的交互过程
- 点击移动端套餐的图片,发现会向后端发送一个get请求
触发事件
v-model="detailsDialog.show"
:show-confirm-button="false"
v-model="setMealDialog.show"
:show-confirm-button="false"
接口调用
const res = await dishListApi({categoryId:this.categoryId,status:1})
if(res.code === 1){
let dishList = res.data
const cartData = this.cartData
if(dishList.length > 0 && cartData.length > 0){
dishList.forEach(dish=>{
cartData.forEach(cart=>{
if(dish.id === cart.dishId){
dish.number = cart.number
}
})
})
}
this.dishList = dishList
}
请求URL
[context-path]/setmeal/dish/${id}
请求方式
- GET
接口API
function setMealDishDetailsApi(id) {
return $axios({
'url': `/setmeal/dish/${id}`,
'method': 'get',
})
}
返回示例
code: 1
data: [,…]
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;
}
后端接口请求参数
- 通过 @PathVariable 将 URL 中占位符参数“id”绑定到控制器处理入参
后端代码
@GetMapping("/dish/{id}")
public R<List<DishDto>> setMealDishDetails(@PathVariable("id") Long SetmealId){
LambdaQueryWrapper<SetmealDish> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(SetmealDish::getSetmealId,SetmealId);
List<SetmealDish> list = setmealDishService.list(queryWrapper);
List<DishDto> dishDtos = list.stream().map((setmealDish) -> {
DishDto dishDto = new DishDto();
BeanUtils.copyProperties(setmealDish, dishDto);
Long dishId = setmealDish.getDishId();
Dish dish = dishService.getById(dishId);
BeanUtils.copyProperties(dish, dishDto);
return dishDto;
}).collect(Collectors.toList());
return R.success(dishDtos);
}
}