07-分页和条件查询接口开发

一、分页

1、MyBatisPlusConfig中配置分页插件

/**
 * 分页插件
 */
@Bean
public PaginationInterceptor paginationInterceptor() {
     
    return new PaginationInterceptor();
}

2、分页Controller方法

TeacherAdminController中添加分页方法

/**
     * 3、分页查询讲师的方法
     */
    @ApiOperation(value = "分页查询讲师的方法")
    @GetMapping(value = "/pageTeacher/{current}/{limit}")
    public R pageListTeacher(@PathVariable("current") long current,@PathVariable("limit") long limit){
     
        //创建Page对象
        Page<EduTeacher> pageTeacher = new Page<>(current,limit);
        //调用service实现分页查询
        teacherService.page(pageTeacher,null);
        //调用方法的时候,底层封装,把分页所有的数据封装到pageTeacher对象里面

        //1、查询总记录数
        long total = pageTeacher.getTotal();
        //2、获取分页的查询的list集合的数据
        List<EduTeacher> list = pageTeacher.getRecords();
        return R.ok().data("total",total).data("list",list);
    }

3、Swagger中测试

二、条件查询

根据讲师名称name,讲师头衔level、讲师入驻时间gmt_create(时间段)查询

1、创建查询对象

创建com.guli.edu.query包,创建TeacherQuery.java查询对象

package com.guli.edu.query;

@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;
}

2、多条件组合带分页查询

/**
     * 4、条件查询带分页的方法
     */
    @ApiOperation(value = "多条件组合带分页查询的方法")
    @PostMapping(value = "/pageTeacherCondition/{current}/{limit}")
    public R pageTeacherCondition(@PathVariable("current") long current,@PathVariable("limit") long limit,@RequestBody(required = false) TeacherQuery teacherQuery){
     
        //创建Page对象
        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);
        }


        //调用service实现分页查询
        teacherService.page(teacherPage,queryWrapper);

        //1、查询总记录数
        long total = teacherPage.getTotal();
        //2、获取分页的查询的list集合的数据
        List<EduTeacher> teacherList = teacherPage.getRecords();

        return R.ok().data("total",total).data("list",teacherList);
    }

你可能感兴趣的:(#,java)