• 方法形参使用一个类接收数据时,可以不使用 @RequestBody(required = false)
    • 方法形参使用一个类接收数据时,使用:@RequestBody(required = false) TeacherQuery teacherQuery 必须要跟 @PostMapping 注解一起使用,表示接收json格式数据传输。
    • (required = false)表示 即使TeacherQuery teacherQuery没有数据也可以,不会报错,自动为null。 | package com.wzy.serviceedu.controller;

    import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
    import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
    import com.wzy.commonutils.R;
    import com.wzy.serviceedu.entity.EduTeacher;
    import com.wzy.serviceedu.entity.vo.TeacherQuery;
    import com.wzy.serviceedu.service.EduTeacherService;
    import io.swagger.annotations.Api;
    import io.swagger.annotations.ApiOperation;
    import io.swagger.annotations.ApiParam;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.util.StringUtils;
    import org.springframework.web.bind.annotation.*;

    import java.util.List;

    /


    讲师 前端控制器



    *
    @author wzy
    *
    @since 2021-09-10
    */
    @Api(description=
    “讲师管理”)
    @RestController
    @RequestMapping(
    “/serviceedu/teacher”)
    public class **EduTeacherController {

    1. @Autowired<br /> **private **EduTeacherService **eduTeacherService**;
    2. /*<br /> * @Description: 条件查询带分页<br /> * @Author: WangZiYao<br /> * @Date: 2021/9/10 18:56<br /> * @RequestBody(required = false) TeacherQuery teacherQuery 必须要跟 @PostMapping 注解一起使用,表示接收json格式数据传输。<br /> * (required = false)表示 及时没有 TeacherQuery teacherQuery 数据也可以。<br /> */<br /> @PostMapping(value = **"pageTeacherCondition/{current}/{limit}"**)<br /> **public **R pageTeacherCondition(@PathVariable **long **current, @PathVariable **long **limit,<br /> @RequestBody(required = **false**) TeacherQuery teacherQuery){<br /> //分页查询<br /> Page<EduTeacher> pageTeacher = **new **Page<>(current,limit);<br /> //条件构建<br /> QueryWrapper<EduTeacher> queryWrapper = **new **QueryWrapper<>();<br /> //多条件组合查询<br /> String name = teacherQuery.getName();<br /> Integer level = teacherQuery.getLevel();<br /> String begin = teacherQuery.getBegin();<br /> String end = teacherQuery.getEnd();
    3. **if **(!StringUtils.isEmpty(name)){<br /> queryWrapper.like(**"name"**,name);<br /> }<br /> **if **(!StringUtils.isEmpty(level)){<br /> queryWrapper.eq(**"level"**,level);<br /> }<br /> **if **(!StringUtils.isEmpty(begin)){<br /> queryWrapper.ge(**"gmt_create"**,begin);<br /> }<br /> **if **(!StringUtils.isEmpty(end)){<br /> queryWrapper.le(**"gmt_create"**,end);<br /> }
    4. //分页条件查询,自动封装到 page<br /> **eduTeacherService**.page(pageTeacher, queryWrapper);
    5. **long **total = pageTeacher.getTotal();//总记录数
    6. List<EduTeacher> records = pageTeacher.getRecords();//数据的list集合
    7. **return **R.ok().data(**"total"**,total).data(**"rows"**,records);<br /> }<br />}

    | | —- |

    测试一:分页,第一页,每页5条记录。条件 查询名字中包含”王”字的老师。
    image.png
    image.png
    测试二:分页,第一页,每页5条记录。条件查询起止时间、讲师级别 名字含“王”
    image.png