海上捞火锅

海上捞火锅


查询具体菜品/套餐内容

[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);
    }
}

页面列表

ITEM_HTML