Swagger-ui 的设置
@Api(description = "") 可以设置处的文字
@ApiOperation(value = "") 可以设置单个查询的标题名称
@ApiParam(name = "id",value = "讲师ID",readOnly = true) 可以设置 需要页面上传数据的输入框注释 输入内容,id在左边,value 在输入框的右边.
统一返回结果值
创建一个maven 配置工程 根据项目需求定制统一返回值 需要的参数 一般定义 是否成功 返回码 返回消息 返回数据
-
package ;
-
import ;
-
import ;
-
import ;
-
import ;
-
@Data
-
public class R {
-
@ApiModelProperty(value = "是否成功")
-
private Boolean success;
-
@ApiModelProperty(value = "返回码")
-
private Integer code;
-
@ApiModelProperty(value = "返回消息")
-
private String message;
-
@ApiModelProperty(value = "返回数据")
-
private Map<String,Object> data=new HashMap<>();
-
//私有的构造方法,让别人无法new 创建
-
private R(){ };
-
public static R ok(){
-
R r = new R();
-
(true);
-
();
-
("成功!");
-
return r; }
-
public static R error(){
-
R r = new R();
-
(false);
-
();
-
("失败!");
-
return r;
-
}
-
//链式编程的方式,返回值是当前类的 构造对象 下面的几个方法,都是可以直接赋值给类中的某些属性.而后返回当前类,可以反复 添加
-
public R success(Boolean success){
-
this.setSuccess(success);
-
return this;
-
}
-
public R message(String message){
-
this.setMessage(message);
-
return this;
-
}
-
public R code(Integer code){
-
this.setCode(code);
-
return this;
-
}
-
public R data(String key, Object value){
-
this.(key, value);
-
return this;
-
}
-
public R data(Map<String, Object> map){
-
this.setData(map);
-
return this;
-
}
-
}
此方法比较巧妙的地方是,使用了链式编程的方法,可以逐个参数赋值, 返回值类型不可new 可以给此类中的属性赋值,然后返回.
如果返回多个数据 data可以直接创建单个的 key value 的方式存入,当然也可以 先创建一个map 类 存入map 然后map 放入data中.
分页操作之前也做过,这里回顾一遍
首先 在config 配置类中 加入插件
-
/* 分页查询*/
-
@Bean
-
public PaginationInterceptor paginationInterceptor(){
-
return new PaginationInterceptor();
-
}
-
//3.分页查询的方法
-
@ApiOperation(value = "分页查询/当前页/查询数量")
-
@GetMapping("/pageTeacher/{current}/{limit}")
-
public R pageListTeacher(@PathVariable Long current,@PathVariable Long limit){
-
//创建一个page 对象
-
Page<Teacher> page=new Page<>(current,limit);
-
//调用方法
-
(page, null);
-
long total = ();
-
List<Teacher> records = ();
-
if(total!=0) {
-
return ().data("msg", records).data("rows",total);
-
}else {
-
return ();
-
}
-
}
注意点: 在这个方法中加入@ApiParam(name = "id",value = "讲师ID",readOnly = true) 注解会导致long类型出错.
2: page传入 (page, null); 不需要接受,page会获得 查询的List集合.
用(): 获取List集合数据
条件查询操作
把可查询字段打包,写一个实体类. 查询语句前端返回一个类会方便很多,
注意: 要判断每个实体类中的各个类前端有无传参, 一般使用 spring自带的 方法
建议在此使用post 作为提交方式,这样在 Swagger 上面操作体验更佳.
-
@PostMapping("/condition/{current}/{limit}")
-
public R condition(@PathVariable long current, @PathVariable long limit,@RequestBody Query query){
-
Page<Teacher> page=new Page<>(current,limit);
-
QueryWrapper<Teacher> qu=new QueryWrapper<>();
-
String name = ();
-
Integer level = ();
-
String begin = ();
-
String end = ();
-
if(!(name)){
-
("name",name);
-
}
-
if(level!=null){
-
("level",level);
-
}
-
if(!(begin)){
-
("gmt_create",begin);
-
}
-
if(!(end)){
-
("gmt_modified",end);
-
}
-
(());
-
(page,qu);
-
-
List<Teacher> records = ();
-
if(records!=null) {
-
return ().data("msg", records);
-
}else {
-
return ();
-
}
-
}