通过VO对象来接受前端的分页查询的条件
问题:当进行带条件的分页查询的时候,前端传过来的条件可能有很多,比如id,name,age等等,该如何方便的接收参数呢?
答:我们可以通过把参数封装一个到VO对象里面
创建一个VO类
@ApiModel(value = "Teacher查询对象", description = "讲师查询对象封装") @Data public class TeacherQuery implements Serializable { private static final long serialVersionUID = 1L; @ApiModelProperty(value = "教师名称,模糊查询") private String name; @ApiModelProperty(value = "头衔 1高级讲师 2首席讲师") private Integer level; @ApiModelProperty(value = "查询开始时间", example = "2019-01-01 10:10:10") private String begin;//注意,这里使用的是String类型,前端传过来的数据无需进行类型转换 @ApiModelProperty(value = "查询结束时间", example = "2019-12-01 10:10:10") private String end; }
在Controller上通过@Requestbody Vo vo的方式接收数据
//讲师的分页条件查询 @ApiOperation(value = "讲师的带条件分页查询") @GetMapping("/pageTeacherCondition/{current}/{limit}") public R pageTeacherCondition(@PathVariable long current, @PathVariable long limit, @RequestBody TeacherQuery teacherQuery) { Page<EduTeacher> teacherPage = new Page<>(current, limit); QueryWrapper<EduTeacher> queryWrapper = new QueryWrapper<>(); //条件 String name = teacherQuery.getName(); Integer level = teacherQuery.getLevel(); String begin = teacherQuery.getBegin(); String end = teacherQuery.getEnd(); //判断条件是否为空 if (!StringUtils.isEmpty(name)) { queryWrapper.like("name", name); } if (!StringUtils.isEmpty(level)) { queryWrapper.eq("level", level); } if (!StringUtils.isEmpty(begin)) { queryWrapper.ge("gmt_create", begin); } if (!StringUtils.isEmpty(end)) { queryWrapper.le("gmt_create", end); } //执行查询 eduTeacherService.page(teacherPage, queryWrapper); return R.ok().data("total", teacherPage.getTotal()).data("rows", teacherPage.getRecords()); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)