套餐信息分页查询——后端

1.交互逻辑

页面发送ajax请求,将分页查询参数(page, pageSize, name)提交到服务端,获取分页数据;页面发送请求,请求服务端进行图片下载,用于页面图片展示。

2.代码逻辑

需要注意,Setmeal中只有套餐的Id,没有套餐的名称,因此,在返回分页数据的时候,要额外把套餐的名称带上,即用封装的对象SetmealDto。

java 复制代码
    /**
     * 套餐分页查询
     * @param page
     * @param pageSize
     * @param name
     * @return
     */
    @GetMapping("/page")
    public R<Page> page(int page, int pageSize, String name){
        //分页构造器对象
        Page<Setmeal> pageInfo = new Page<>(page, pageSize);
        Page<SetmealDto> dtoPage = new Page<>();

        LambdaQueryWrapper<Setmeal> queryWrapper = new LambdaQueryWrapper<>();
        //添加查询条件, 根据name进行模糊查询
        queryWrapper.like(name != null, Setmeal::getName, name);
        //添加排序条件
        queryWrapper.orderByDesc(Setmeal::getUpdateTime);

        setmealService.page(pageInfo, queryWrapper);

        //进行对象的拷贝
        BeanUtils.copyProperties(pageInfo, dtoPage, "records");
        List<Setmeal> records = pageInfo.getRecords();

        List<SetmealDto> list = records.stream().map((item) -> {
            SetmealDto setmealDto = new SetmealDto();
            //对象拷贝
            BeanUtils.copyProperties(item, setmealDto);
            //分类id
            Long categoryId = item.getCategoryId();
            //根据id拿到分类名称
            Category category = categoryService.getById(categoryId);
            if(category != null){
                //分类名称
                String categoryName = category.getName();
                setmealDto.setCategoryName(categoryName);
            }
            return setmealDto;
        }).collect(Collectors.toList());

        dtoPage.setRecords(list);
        return R.success(dtoPage);
    }
相关推荐
iso少年1 分钟前
Go 语言并发编程核心与用法
开发语言·后端·golang
掘金码甲哥3 分钟前
云原生算力平台的架构解读
后端
码事漫谈7 分钟前
智谱AI从清华实验室到“全球大模型第一股”的六年征程
后端
码事漫谈7 分钟前
现代软件开发中常用架构的系统梳理与实践指南
后端
Mr.Entropy34 分钟前
JdbcTemplate 性能好,但 Hibernate 生产力高。 如何选择?
java·后端·hibernate
菜鸟233号36 分钟前
力扣96 不同的二叉搜索树 java实现
java·数据结构·算法·leetcode
sww_102644 分钟前
Spring-AI和LangChain4j区别
java·人工智能·spring
泡泡以安1 小时前
【爬虫教程】第7章:现代浏览器渲染引擎原理(Chromium/V8)
java·开发语言·爬虫
月明长歌1 小时前
Java进程与线程的区别以及线程状态总结
java·开发语言
YDS8291 小时前
SpringCloud —— MQ的可靠性保障和延迟消息
后端·spring·spring cloud·rabbitmq