mp条件分页查询

先定义一个vo

@ApiModel(value = "Teacher查询对象",description = "讲师查询对象封装")
@Data
public class QueryTeacher 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;

}

然后在service层写一个自定义接口

void pageQuery(Page<EduTeacher> pageParam, QueryTeacher queryTeacher);

实现接口

@Override
    public void pageQuery(Page<EduTeacher> pageParam, QueryTeacher queryTeacher) {
        QueryWrapper<EduTeacher> queryWrapper=new QueryWrapper<>();
        queryWrapper.orderByAsc("sort");

        if (queryTeacher == null){
            baseMapper.selectPage(pageParam,queryWrapper);
            return;
        }

        String name = queryTeacher.getName();
        Integer level = queryTeacher.getLevel();
        String begin = queryTeacher.getBegin();
        String end = queryTeacher.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);
        }

        baseMapper.selectPage(pageParam,queryWrapper);
    }

最后,编写controller层

@ApiOperation(value = "分页讲师列表、条件查询")
    @PostMapping("/pageQuery/{page}/{limit}")
    public Result pageQuery(
            @ApiParam(name = "page",value = "当前页码",required = true) @PathVariable Long page,
            @ApiParam(name = "limit",value = "每页记录数",required = true) @PathVariable Long limit,
            @ApiParam(name = "QueryTeacher",value = "查询对象",required = false) @RequestBody QueryTeacher queryTeacher){
        Page<EduTeacher> pageParam = new Page<>(page,limit);
        eduTeacherService.pageQuery(pageParam,queryTeacher);

        long total = pageParam.getTotal();  //总记录数
        List<EduTeacher> list = pageParam.getRecords();

        return Result.succ().data("total",total).data("list",list);
    }

 

如果有小伙伴没看懂,请参考上一篇博客:mp分页:https://www.cnblogs.com/alongg/p/13864958.html

posted @ 2020-10-24 17:01  龙欺  阅读(776)  评论(0)    收藏  举报