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

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);
    }
相关推荐
东东51624 分钟前
基于vue的电商购物网站vue +ssm
java·前端·javascript·vue.js·毕业设计·毕设
她说..30 分钟前
策略模式+工厂模式实现审批流(面试问答版)
java·后端·spring·面试·springboot·策略模式·javaee
鹿角片ljp31 分钟前
力扣9.回文数-转字符双指针和反转数字
java·数据结构·算法
skywalker_1131 分钟前
网络编程篇
java·网络协议·网络编程
毕设源码-朱学姐42 分钟前
【开题答辩全过程】以 基于Java的九价疫苗预约系统为例,包含答辩的问题和答案
java·开发语言
tb_first1 小时前
SSM速通4
java·jvm·spring·tomcat·maven·mybatis
梦梦代码精1 小时前
开源、免费、可商用:BuildingAI一站式体验报告
开发语言·前端·数据结构·人工智能·后端·开源·知识图谱
百炼成神 LV@菜哥1 小时前
Kylin Linux V10 aarch64安装DBeaver
java·linux·服务器·kylin
程可爱1 小时前
springboot整合mybatis和postgresql
spring boot·postgresql·mybatis
有代理ip1 小时前
成功请求的密码:HTTP 2 开头响应码深度解析
java·大数据·python·算法·php