- 方法形参使用一个类接收数据时,可以不使用
@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 {
@Autowired<br /> **private **EduTeacherService **eduTeacherService**;
/*<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();
**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 /> }
//分页条件查询,自动封装到 page<br /> **eduTeacherService**.page(pageTeacher, queryWrapper);
**long **total = pageTeacher.getTotal();//总记录数
List<EduTeacher> records = pageTeacher.getRecords();//数据的list集合
**return **R.ok().data(**"total"**,total).data(**"rows"**,records);<br /> }<br />}
| | —- |
测试一:分页,第一页,每页5条记录。条件 查询名字中包含”王”字的老师。
测试二:分页,第一页,每页5条记录。条件查询起止时间、讲师级别 名字含“王”