当前位置: 首页 > news >正文

菜品信息分页查询——后端SpringBoot

1.分页查询的逻辑:

        页面发送ajax请求,将分页查询参数(page,pageSize, name)提交到服务端,获取分页数据;

        页面发送请求,请求服务端进行图片下载,用于页面图片展示。

开发菜品信息分页查询功能,就是在服务端处理前端页面发送的这两次请求。

2.代码实现:

    /*** 菜品信息分页查询* @param page* @param pageSize* @param name* @return*/@GetMapping("/page")public R<Page> page(int page, int pageSize, String name){//构造分页构造器对象Page<Dish> pageInfo = new Page<>(page, pageSize);//条件构造器LambdaQueryWrapper<Dish> queryWrapper = new LambdaQueryWrapper<>();//添加过滤条件queryWrapper.like(name != null, Dish::getName, name);//添加排序条件queryWrapper.orderByDesc(Dish::getUpdateTime);//执行分页查询dishService.page(pageInfo, queryWrapper);return R.success(pageInfo);}

          如上,构造分页构造器对象,进行条件过滤,执行分页查询。但是存在一个问题,菜品分类的数据无法显示:

        这是因为服务器返回的结果中只有categoryId, 没有categoryName的属性:

        因此修改代码如下:

    @GetMapping("/page")public R<Page> page(int page, int pageSize, String name){//构造分页构造器对象Page<Dish> pageInfo = new Page<>(page, pageSize);Page<DishDto> dishDtoPage = new Page<>();//条件构造器LambdaQueryWrapper<Dish> queryWrapper = new LambdaQueryWrapper<>();//添加过滤条件queryWrapper.like(name != null, Dish::getName, name);//添加排序条件queryWrapper.orderByDesc(Dish::getUpdateTime);//执行分页查询dishService.page(pageInfo, queryWrapper);//对象拷贝BeanUtils.copyProperties(pageInfo, dishDtoPage, "records");List<Dish> records = pageInfo.getRecords();List<DishDto> list = records.stream().map((item) ->{DishDto dishDto = new DishDto();BeanUtils.copyProperties(item, dishDto);Long categoryId = item.getCategoryId();//分类idCategory category = categoryService.getById(categoryId);if(category != null){String categoryName = category.getName();dishDto.setCategoryName(categoryName);}return dishDto;}).collect(Collectors.toList());dishDtoPage.setRecords(list);return R.success(dishDtoPage);}

        利用BeanUtils进行对象拷贝,将除了records的属性拷贝到dishDtoPage,然后将records里的每一条的id拿到手,并查找到对应的类,如果不为空,类的名字赋给dishDto里的分类名。返回DishDto类,并通过Collectors.toList()把每一条菜品DishDto都收集起来成一个集合赋值给List<DishDto> list。

http://www.lryc.cn/news/367122.html

相关文章:

  • 利用GPT和PlantUML快速生成UML图用于设计
  • web-上传项目文件夹到Git远程仓库
  • 使用OpenPCDet训练与测试Transformer模型:如何加载自己的数据集
  • 四舍五入问题
  • 零基础入门学用Arduino 第一部分(三)
  • C++标准库random
  • 电子电气架构——车载诊断DTC一文通
  • Golang | Leetcode Golang题解之第129题求根节点到叶节点数字之和
  • 工业信息化SCI期刊,中科院1区TOP,IF=12.3,收稿范围广泛
  • Spring Boot整合Redis
  • kafka的leader和follower
  • git 空仓库笔记
  • 字母异位词分组(charyw)
  • 力扣 41.缺少的第一个正整数
  • Git从入门到放弃
  • 003.数据分析_PandasSeries对象
  • 【介绍下什么是Kubernetes编排系统】
  • linux防止nmap扫描
  • 基于SpringBoot的装饰工程管理系统源码数据库
  • 2024前端面试准备2-JS基础知识回顾
  • C++ 环形链表(解决约瑟夫问题)
  • 【微信小程序】模板语法
  • 深入了解 C 语言 Bug
  • Redis 内存回收
  • 【讲解下ECMAScript和JavaScript之间有何区别?】
  • Linux基本指令查询硬件信息001
  • Spring Boot(七十四):集成Guava 库实现布隆过滤器(Bloom Filter)
  • 二叉查找树详解
  • 3072. 将元素分配到两个数组中 II
  • 城市之旅:使用 LLM 和 Elasticsearch 简化地理空间搜索(二)