问题:当进行带条件的分页查询的时候,前端传过来的条件可能有很多,比如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());
}
标签:queryWrapper,String,name,10,value,查询,VO,分页
From: https://www.cnblogs.com/blog-zyx/p/16904013.html