12. 分页带条件查询

1. 分页

1.1 MyBatisPlusConfig中配置分页插件
/**
 * @Date 2020/4/12 12:51
 * @Version 10.21
 * @Author DuanChaojie
 */
@Configuration
@EnableTransactionManagement
@MapperScan("com.atguigu.eduservice.mapper")
public class MyBatisPlusConfig {
    /**
     * 分页的插件
     * @return
     */
    @Bean
    public PaginationInterceptor paginationInterceptor(){
        return new PaginationInterceptor();
    }
}
1.2 分页Controller方法

EduTeacherController中添加分页方法

    @ApiOperation(value = "分页查询讲师列表")
    @GetMapping("/{page}/{limit}")
    public R findPage(
            @ApiParam(name = "page",value = "当前页码",required = true,defaultValue = "1")
            @PathVariable("page") Long page,
            @ApiParam(name = "limit",value = "每页的记录数",required = true)
            @PathVariable("limit") Long limit
    ){
    
        Page<EduTeacher> pageParam = new Page<EduTeacher>(page, limit);
        
        eduTeacherService.page(pageParam,null);

        List<EduTeacher> lists = pageParam.getRecords();

        long total = pageParam.getTotal();
        // 也可以创建Map<String,Object>来返回
        return R.ok().data("total",total).data("rows",lists);
    }
1.3 Swagger中测试

2. 条件查询

  • 根据讲师名称name,讲师头衔level、讲师入驻时间gmt_create(时间段)查询
2.1 创建查询对象
  • package com.atguigu.eduservice.entity.vo;
/**
 * @Date 2020/4/12 15:34
 * @Version 10.21
 * @Author DuanChaojie
 */
@Data
public class QueryTeacher implements Serializable {

    @ApiModelProperty(value = "教师名称,模糊查询")
    private String name;

    @ApiModelProperty(value = "头衔1-高级讲师,2-首席讲师")
    private Integer level;

    /**
     * 注意这里使用的是String类型,前端传来的数据无需进行类型转换
     */
    @ApiModelProperty(value = "查询起始时间")
    private String begin;

    @ApiModelProperty(value = "查询结束时间")
    private String end;

}
2.2 controller
  • package com.atguigu.eduservice.controller;
/**
 * <p>
 * 讲师 前端控制器
 * </p>
 *
 * @author DuanChaojie
 * @since 2020-04-12
 */
@Api("讲师管理")
@RestController
@RequestMapping("/edu/edu-teacher")
public class EduTeacherController {


    @Autowired
    private EduTeacherService eduTeacherService;



    @ApiOperation(value = "分页带条件查询讲师列表")
    @GetMapping("/{page}/{limit}")
    public R findPage(
            @ApiParam(name = "page",value = "当前页码",required = true,defaultValue = "1")
            @PathVariable("page") Long page,

            @ApiParam(name = "limit",value = "每页的记录数",required = true)
            @PathVariable("limit") Long limit,

            @ApiParam(name = "queryTeacher",value = "查询对象",required = false)
            QueryTeacher queryTeacher
    ){
        Page<EduTeacher> pageParam = new Page<EduTeacher>(page, limit);

        // 构建查询条件
        QueryWrapper<EduTeacher> queryWrapper = new QueryWrapper();

        // 拿到queryTeacher中的数据
        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);
        }

        eduTeacherService.page(pageParam,queryWrapper);


        List<EduTeacher> lists = pageParam.getRecords();

        long total = pageParam.getTotal();
        // 也可以创建Map<String,Object>来返回
        return R.ok().data("total",total).data("rows",lists);
    }
}
2.3 Swagger中测试

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值