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

接口-菜品分页查询

业务内容

页面上菜品根据菜品名称、菜品分类、售卖状态三个字段进行分页查询。

在请求参数中携带了菜品名称、菜品分类、售卖状态三个字段参数。

返回PageResult类型的实体。

注意:在返回数据中在records下有个categoryName,这个字段的内容在category表中,除了这个字段的其他内容都在dish表中。所以我们定义了一个vo,DishVO

DishVO中包含了需要返回的dish表中的内容和从category表查出来的categoryName字段。

public class DishVO implements Serializable {

    private Long id;
    //菜品名称
    private String name;
    //菜品分类id
    private Long categoryId;
    //菜品价格
    private BigDecimal price;
    //图片
    private String image;
    //描述信息
    private String description;
    //0 停售 1 起售
    private Integer status;
    //更新时间
    private LocalDateTime updateTime;
    //分类名称
    private String categoryName;
    //菜品关联的口味
    private List<DishFlavor> flavors = new ArrayList<>();

    //private Integer copies;
}

controller

@GetMapping("/page")
    public Result<PageResult> DishPageQuery(DishPageQueryDTO dishPageQueryDTO){
        log.info("分页查询参数:{}",dishPageQueryDTO);
        PageResult pageResult = dishService.DishPageQuery(dishPageQueryDTO);
        return Result.success(pageResult);
    }

service

/**
     * 菜品分页查询
     * @param dishPageQueryDTO
     * @return
     */
    @Override
    public PageResult DishPageQuery(DishPageQueryDTO dishPageQueryDTO) {
        PageHelper.startPage(dishPageQueryDTO.getPage(),dishPageQueryDTO.getPageSize());
        Page<DishVO> page = dishMapper.DishPageQuery(dishPageQueryDTO);
        long total = page.getTotal();
        List<DishVO> result = page.getResult();
        return new PageResult(total, result);
    }

mapper

注意:由于涉及两个表的内容,所以是多表join查询

返回resultType要注意是com.sky.vo.DishVO

多个查询条件要加and

<select id="DishPageQuery" resultType="com.sky.vo.DishVO">
        select d.* , c.name as categoryName from dish d left outer join category c on d.category_id = c.id
        <if test="name != null and name != ''">
            and d.name like concat("%",#{name},"%")
        </if>
        <if test="categoryId != null and categoryId != ''">
            and d.category_id=#{categoryId}
        </if>
        <if test="status != null and status != ''">
            and d.status=#{status}
        </if>
    </select>

相关文章:

  • 实战 - 使用 AutoAWQ 进行量化
  • 【量化科普】Beta,贝塔系数
  • 【数据仓库与数据挖掘基础】第二章 数据仓库原理
  • Linux和gcc/g++常用命令总结
  • Pytorch实现之S2GAN实现Sentinel-2光谱波段的空间分辨率
  • 【微信小程序】uniapp开发微信小程序
  • “Predict”和“Foresee”的区别
  • 算法005——有效三角形个数
  • 基于cross-attention算法关联文本和图像、图像和动作
  • 信息安全访问控制、抗攻击技术、安全体系和评估(高软42)
  • Matlab:矩阵运算篇——矩阵
  • Python —— pow()函数
  • 体验开源OpenHarmony+stratovirt模拟器
  • 第十六届蓝桥杯单片机组4T模拟赛二
  • JVM常用概念之String.intern()
  • Linux(Centos 7.6)命令详解:zip
  • 递归专题刷题
  • linux下ollama离线安装
  • Unity游戏开发中的网格简化与LOD技术(Mesh Simplification LOD)
  • Linux基础--文件权限+软件包管理+管道符
  • 网站平台建设制度/网络宣传方案
  • 网站建设工具哪个好用/怎样建立个人网站
  • 网站开发步骤规划/百度快照如何优化
  • 济南网站建设培训学校/网络推广渠道有哪些
  • 营销网络分布图/seodao cn
  • wordpress显示分页/福州seo代理计费