海上捞火锅

海上捞火锅


根据条件查询对应菜品数据

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

页面列表

ITEM_HTML