add 整合 springdoc-openapi-javadoc 基于代码注释生成文档

This commit is contained in:
疯狂的狮子li
2022-07-07 19:07:59 +08:00
parent 0b07780619
commit d9e54388e7
79 changed files with 26 additions and 548 deletions

View File

@ -2,7 +2,6 @@ package com.ruoyi.common.core.domain;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
@ -24,42 +23,36 @@ public class BaseEntity implements Serializable {
/**
* 搜索值
*/
@Schema(name = "搜索值")
@TableField(exist = false)
private String searchValue;
/**
* 创建者
*/
@Schema(name = "创建者")
@TableField(fill = FieldFill.INSERT)
private String createBy;
/**
* 创建时间
*/
@Schema(name = "创建时间")
@TableField(fill = FieldFill.INSERT)
private Date createTime;
/**
* 更新者
*/
@Schema(name = "更新者")
@TableField(fill = FieldFill.INSERT_UPDATE)
private String updateBy;
/**
* 更新时间
*/
@Schema(name = "更新时间")
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
/**
* 请求参数
*/
@Schema(name = "请求参数")
@TableField(exist = false)
private Map<String, Object> params = new HashMap<>();

View File

@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.core.metadata.OrderItem;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.sql.SqlUtil;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
@ -24,25 +23,21 @@ public class PageQuery implements Serializable {
/**
* 分页大小
*/
@Schema(name = "分页大小")
private Integer pageSize;
/**
* 当前页数
*/
@Schema(name = "当前页数")
private Integer pageNum;
/**
* 排序列
*/
@Schema(name = "排序列")
private String orderByColumn;
/**
* 排序的方向desc或者asc
*/
@Schema(name = "排序的方向", example = "asc,desc")
private String isAsc;
/**

View File

@ -1,6 +1,5 @@
package com.ruoyi.common.core.domain;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.NoArgsConstructor;
@ -13,7 +12,6 @@ import java.io.Serializable;
*/
@Data
@NoArgsConstructor
@Schema(name = "请求响应对象")
public class R<T> implements Serializable {
private static final long serialVersionUID = 1L;
@ -27,13 +25,10 @@ public class R<T> implements Serializable {
*/
public static final int FAIL = 500;
@Schema(name = "消息状态码")
private int code;
@Schema(name = "消息内容")
private String msg;
@Schema(name = "数据对象")
private T data;
public static <T> R<T> ok() {

View File

@ -1,7 +1,6 @@
package com.ruoyi.common.core.domain;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
@ -24,20 +23,17 @@ public class TreeEntity<T> extends BaseEntity {
* 父菜单名称
*/
@TableField(exist = false)
@Schema(name = "父菜单名称")
private String parentName;
/**
* 父菜单ID
*/
@Schema(name = "父菜单ID")
private Long parentId;
/**
* 子部门
*/
@TableField(exist = false)
@Schema(name = "子部门")
private List<T> children = new ArrayList<>();
}

View File

@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.core.domain.TreeEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
@ -22,21 +21,18 @@ import javax.validation.constraints.Size;
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("sys_dept")
@Schema(name = "部门业务对象")
public class SysDept extends TreeEntity<SysDept> {
private static final long serialVersionUID = 1L;
/**
* 部门ID
*/
@Schema(name = "部门id")
@TableId(value = "dept_id")
private Long deptId;
/**
* 部门名称
*/
@Schema(name = "部门名称")
@NotBlank(message = "部门名称不能为空")
@Size(min = 0, max = 30, message = "部门名称长度不能超过30个字符")
private String deptName;
@ -44,27 +40,23 @@ public class SysDept extends TreeEntity<SysDept> {
/**
* 显示顺序
*/
@Schema(name = "显示顺序")
@NotNull(message = "显示顺序不能为空")
private Integer orderNum;
/**
* 负责人
*/
@Schema(name = "负责人")
private String leader;
/**
* 联系电话
*/
@Schema(name = "联系电话")
@Size(min = 0, max = 11, message = "联系电话长度不能超过11个字符")
private String phone;
/**
* 邮箱
*/
@Schema(name = "邮箱")
@Email(message = "邮箱格式不正确")
@Size(min = 0, max = 50, message = "邮箱长度不能超过50个字符")
private String email;
@ -72,20 +64,17 @@ public class SysDept extends TreeEntity<SysDept> {
/**
* 部门状态:0正常,1停用
*/
@Schema(name = "部门状态:0正常,1停用")
private String status;
/**
* 删除标志0代表存在 2代表删除
*/
@Schema(name = "删除标志0代表存在 2代表删除")
@TableLogic
private String delFlag;
/**
* 祖级列表
*/
@Schema(name = "祖级列表")
private String ancestors;
}

View File

@ -8,7 +8,6 @@ import com.ruoyi.common.annotation.ExcelDictFormat;
import com.ruoyi.common.constant.UserConstants;
import com.ruoyi.common.convert.ExcelDictConvert;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
@ -25,13 +24,11 @@ import javax.validation.constraints.Size;
@EqualsAndHashCode(callSuper = true)
@TableName("sys_dict_data")
@ExcelIgnoreUnannotated
@Schema(name = "字典数据业务对象")
public class SysDictData extends BaseEntity {
/**
* 字典编码
*/
@Schema(name = "字典编码")
@ExcelProperty(value = "字典编码")
@TableId(value = "dict_code")
private Long dictCode;
@ -39,14 +36,12 @@ public class SysDictData extends BaseEntity {
/**
* 字典排序
*/
@Schema(name = "字典排序")
@ExcelProperty(value = "字典排序")
private Integer dictSort;
/**
* 字典标签
*/
@Schema(name = "字典标签")
@ExcelProperty(value = "字典标签")
@NotBlank(message = "字典标签不能为空")
@Size(min = 0, max = 100, message = "字典标签长度不能超过100个字符")
@ -55,7 +50,6 @@ public class SysDictData extends BaseEntity {
/**
* 字典键值
*/
@Schema(name = "字典键值")
@ExcelProperty(value = "字典键值")
@NotBlank(message = "字典键值不能为空")
@Size(min = 0, max = 100, message = "字典键值长度不能超过100个字符")
@ -64,7 +58,6 @@ public class SysDictData extends BaseEntity {
/**
* 字典类型
*/
@Schema(name = "字典类型")
@ExcelProperty(value = "字典类型")
@NotBlank(message = "字典类型不能为空")
@Size(min = 0, max = 100, message = "字典类型长度不能超过100个字符")
@ -73,20 +66,17 @@ public class SysDictData extends BaseEntity {
/**
* 样式属性(其他样式扩展)
*/
@Schema(name = "样式属性(其他样式扩展)")
@Size(min = 0, max = 100, message = "样式属性长度不能超过100个字符")
private String cssClass;
/**
* 表格字典样式
*/
@Schema(name = "表格字典样式")
private String listClass;
/**
* 是否默认Y是 N否
*/
@Schema(name = "是否默认Y是 N否")
@ExcelProperty(value = "是否默认", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "sys_yes_no")
private String isDefault;
@ -94,7 +84,6 @@ public class SysDictData extends BaseEntity {
/**
* 状态0正常 1停用
*/
@Schema(name = "状态0正常 1停用")
@ExcelProperty(value = "状态", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "sys_normal_disable")
private String status;
@ -102,7 +91,6 @@ public class SysDictData extends BaseEntity {
/**
* 备注
*/
@Schema(name = "备注")
private String remark;
public boolean getDefault() {

View File

@ -7,7 +7,6 @@ import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.annotation.ExcelDictFormat;
import com.ruoyi.common.convert.ExcelDictConvert;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
@ -25,13 +24,11 @@ import javax.validation.constraints.Size;
@EqualsAndHashCode(callSuper = true)
@TableName("sys_dict_type")
@ExcelIgnoreUnannotated
@Schema(name = "字典类型业务对象")
public class SysDictType extends BaseEntity {
/**
* 字典主键
*/
@Schema(name = "字典主键")
@ExcelProperty(value = "字典主键")
@TableId(value = "dict_id")
private Long dictId;
@ -39,7 +36,6 @@ public class SysDictType extends BaseEntity {
/**
* 字典名称
*/
@Schema(name = "字典名称")
@ExcelProperty(value = "字典名称")
@NotBlank(message = "字典名称不能为空")
@Size(min = 0, max = 100, message = "字典类型名称长度不能超过100个字符")
@ -48,7 +44,6 @@ public class SysDictType extends BaseEntity {
/**
* 字典类型
*/
@Schema(name = "字典类型")
@ExcelProperty(value = "字典类型")
@NotBlank(message = "字典类型不能为空")
@Size(min = 0, max = 100, message = "字典类型类型长度不能超过100个字符")
@ -58,7 +53,6 @@ public class SysDictType extends BaseEntity {
/**
* 状态0正常 1停用
*/
@Schema(name = "状态0正常 1停用")
@ExcelProperty(value = "状态", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "sys_normal_disable")
private String status;
@ -66,7 +60,6 @@ public class SysDictType extends BaseEntity {
/**
* 备注
*/
@Schema(name = "备注")
private String remark;
}

View File

@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.ruoyi.common.core.domain.TreeEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
@ -21,20 +20,17 @@ import javax.validation.constraints.Size;
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("sys_menu")
@Schema(name = "菜单权限业务对象")
public class SysMenu extends TreeEntity<SysMenu> {
/**
* 菜单ID
*/
@Schema(name = "菜单ID")
@TableId(value = "menu_id")
private Long menuId;
/**
* 菜单名称
*/
@Schema(name = "菜单名称")
@NotBlank(message = "菜单名称不能为空")
@Size(min = 0, max = 50, message = "菜单名称长度不能超过50个字符")
private String menuName;
@ -42,65 +38,55 @@ public class SysMenu extends TreeEntity<SysMenu> {
/**
* 显示顺序
*/
@Schema(name = "显示顺序")
@NotNull(message = "显示顺序不能为空")
private Integer orderNum;
/**
* 路由地址
*/
@Schema(name = "路由地址")
@Size(min = 0, max = 200, message = "路由地址不能超过200个字符")
private String path;
/**
* 组件路径
*/
@Schema(name = "组件路径")
@Size(min = 0, max = 200, message = "组件路径不能超过255个字符")
private String component;
/**
* 路由参数
*/
@Schema(name = "路由参数")
private String queryParam;
/**
* 是否为外链0是 1否
*/
@Schema(name = "是否为外链0是 1否")
private String isFrame;
/**
* 是否缓存0缓存 1不缓存
*/
@Schema(name = "是否缓存0缓存 1不缓存")
private String isCache;
/**
* 类型M目录 C菜单 F按钮
*/
@Schema(name = "类型M目录 C菜单 F按钮")
@NotBlank(message = "菜单类型不能为空")
private String menuType;
/**
* 显示状态0显示 1隐藏
*/
@Schema(name = "显示状态0显示 1隐藏")
private String visible;
/**
* 菜单状态0显示 1隐藏
*/
@Schema(name = "菜单状态0显示 1隐藏")
private String status;
/**
* 权限字符串
*/
@Schema(name = "权限字符串")
@JsonInclude(JsonInclude.Include.NON_NULL)
@Size(min = 0, max = 100, message = "权限标识长度不能超过100个字符")
private String perms;
@ -108,13 +94,11 @@ public class SysMenu extends TreeEntity<SysMenu> {
/**
* 菜单图标
*/
@Schema(name = "菜单图标")
private String icon;
/**
* 备注
*/
@Schema(name = "备注")
private String remark;
}

View File

@ -10,7 +10,6 @@ import com.ruoyi.common.annotation.ExcelDictFormat;
import com.ruoyi.common.constant.UserConstants;
import com.ruoyi.common.convert.ExcelDictConvert;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
@ -35,7 +34,6 @@ public class SysRole extends BaseEntity {
/**
* 角色ID
*/
@Schema(name = "角色ID")
@ExcelProperty(value = "角色序号")
@TableId(value = "role_id")
private Long roleId;
@ -43,7 +41,6 @@ public class SysRole extends BaseEntity {
/**
* 角色名称
*/
@Schema(name = "角色名称")
@ExcelProperty(value = "角色名称")
@NotBlank(message = "角色名称不能为空")
@Size(min = 0, max = 30, message = "角色名称长度不能超过30个字符")
@ -52,7 +49,6 @@ public class SysRole extends BaseEntity {
/**
* 角色权限
*/
@Schema(name = "角色权限")
@ExcelProperty(value = "角色权限")
@NotBlank(message = "权限字符不能为空")
@Size(min = 0, max = 100, message = "权限字符长度不能超过100个字符")
@ -61,7 +57,6 @@ public class SysRole extends BaseEntity {
/**
* 角色排序
*/
@Schema(name = "角色排序")
@ExcelProperty(value = "角色排序")
@NotNull(message = "显示顺序不能为空")
private Integer roleSort;
@ -69,7 +64,6 @@ public class SysRole extends BaseEntity {
/**
* 数据范围1所有数据权限2自定义数据权限3本部门数据权限4本部门及以下数据权限5仅本人数据权限
*/
@Schema(name = "数据范围1所有数据权限2自定义数据权限3本部门数据权限4本部门及以下数据权限5仅本人数据权限")
@ExcelProperty(value = "数据范围", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "1=所有数据权限,2=自定义数据权限,3=本部门数据权限,4=本部门及以下数据权限,5=仅本人数据权限")
private String dataScope;
@ -77,19 +71,16 @@ public class SysRole extends BaseEntity {
/**
* 菜单树选择项是否关联显示( 0父子不互相关联显示 1父子互相关联显示
*/
@Schema(name = "菜单树选择项是否关联显示( 0父子不互相关联显示 1父子互相关联显示")
private Boolean menuCheckStrictly;
/**
* 部门树选择项是否关联显示0父子不互相关联显示 1父子互相关联显示
*/
@Schema(name = "部门树选择项是否关联显示0父子不互相关联显示 1父子互相关联显示 ")
private Boolean deptCheckStrictly;
/**
* 角色状态0正常 1停用
*/
@Schema(name = "角色状态0正常 1停用")
@ExcelProperty(value = "角色状态", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "sys_common_status")
private String status;
@ -97,34 +88,29 @@ public class SysRole extends BaseEntity {
/**
* 删除标志0代表存在 2代表删除
*/
@Schema(name = "删除标志0代表存在 2代表删除")
@TableLogic
private String delFlag;
/**
* 备注
*/
@Schema(name = "备注")
private String remark;
/**
* 用户是否存在此角色标识 默认不存在
*/
@Schema(name = "用户是否存在此角色标识 默认不存在")
@TableField(exist = false)
private boolean flag = false;
/**
* 菜单组
*/
@Schema(name = "菜单组")
@TableField(exist = false)
private Long[] menuIds;
/**
* 部门组(数据权限)
*/
@Schema(name = "部门组(数据权限)")
@TableField(exist = false)
private Long[] deptIds;
@ -132,7 +118,6 @@ public class SysRole extends BaseEntity {
this.roleId = roleId;
}
@Schema(name = "是否管理员")
public boolean isAdmin() {
return UserConstants.ADMIN_ID.equals(this.roleId);
}

View File

@ -6,7 +6,6 @@ import com.ruoyi.common.constant.UserConstants;
import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.common.enums.SensitiveStrategy;
import com.ruoyi.common.xss.Xss;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
@ -27,26 +26,22 @@ import java.util.List;
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName("sys_user")
@Schema(name = "用户信息业务对象")
public class SysUser extends BaseEntity {
/**
* 用户ID
*/
@Schema(name = "用户ID")
@TableId(value = "user_id")
private Long userId;
/**
* 部门ID
*/
@Schema(name = "部门ID")
private Long deptId;
/**
* 用户账号
*/
@Schema(name = "用户账号")
@Xss(message = "用户账号不能包含脚本字符")
@NotBlank(message = "用户账号不能为空")
@Size(min = 0, max = 30, message = "用户账号长度不能超过30个字符")
@ -55,7 +50,6 @@ public class SysUser extends BaseEntity {
/**
* 用户昵称
*/
@Schema(name = "用户昵称")
@Xss(message = "用户昵称不能包含脚本字符")
@Size(min = 0, max = 30, message = "用户昵称长度不能超过30个字符")
private String nickName;
@ -63,14 +57,12 @@ public class SysUser extends BaseEntity {
/**
* 用户类型sys_user系统用户
*/
@Schema(name = "用户类型")
private String userType;
/**
* 用户邮箱
*/
@Sensitive(strategy = SensitiveStrategy.EMAIL)
@Schema(name = "用户邮箱")
@Email(message = "邮箱格式不正确")
@Size(min = 0, max = 50, message = "邮箱长度不能超过50个字符")
private String email;
@ -79,25 +71,21 @@ public class SysUser extends BaseEntity {
* 手机号码
*/
@Sensitive(strategy = SensitiveStrategy.PHONE)
@Schema(name = "手机号码")
private String phonenumber;
/**
* 用户性别
*/
@Schema(name = "用户性别")
private String sex;
/**
* 用户头像
*/
@Schema(name = "用户头像")
private String avatar;
/**
* 密码
*/
@Schema(name = "密码")
@TableField(
insertStrategy = FieldStrategy.NOT_EMPTY,
updateStrategy = FieldStrategy.NOT_EMPTY,
@ -108,66 +96,56 @@ public class SysUser extends BaseEntity {
/**
* 帐号状态0正常 1停用
*/
@Schema(name = "帐号状态0正常 1停用")
private String status;
/**
* 删除标志0代表存在 2代表删除
*/
@Schema(name = "删除标志0代表存在 2代表删除")
@TableLogic
private String delFlag;
/**
* 最后登录IP
*/
@Schema(name = "最后登录IP")
private String loginIp;
/**
* 最后登录时间
*/
@Schema(name = "最后登录时间")
private Date loginDate;
/**
* 备注
*/
@Schema(name = "备注")
private String remark;
/**
* 部门对象
*/
@Schema(name = "部门对象")
@TableField(exist = false)
private SysDept dept;
/**
* 角色对象
*/
@Schema(name = "角色对象")
@TableField(exist = false)
private List<SysRole> roles;
/**
* 角色组
*/
@Schema(name = "角色组")
@TableField(exist = false)
private Long[] roleIds;
/**
* 岗位组
*/
@Schema(name = "岗位组")
@TableField(exist = false)
private Long[] postIds;
/**
* 数据权限 当前角色ID
*/
@Schema(name = "角色ID")
@TableField(exist = false)
private Long roleId;
@ -175,7 +153,6 @@ public class SysUser extends BaseEntity {
this.userId = userId;
}
@Schema(name = "是否管理员")
public boolean isAdmin() {
return UserConstants.ADMIN_ID.equals(this.userId);
}

View File

@ -1,7 +1,6 @@
package com.ruoyi.common.core.domain.model;
import com.ruoyi.common.constant.UserConstants;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
@ -14,7 +13,6 @@ import javax.validation.constraints.NotBlank;
*/
@Data
@Schema(name = "用户登录对象")
public class LoginBody {
/**
@ -22,7 +20,6 @@ public class LoginBody {
*/
@NotBlank(message = "{user.username.not.blank}")
@Length(min = UserConstants.USERNAME_MIN_LENGTH, max = UserConstants.USERNAME_MAX_LENGTH, message = "{user.username.length.valid}")
@Schema(name = "用户名")
private String username;
/**
@ -30,19 +27,16 @@ public class LoginBody {
*/
@NotBlank(message = "{user.password.not.blank}")
@Length(min = UserConstants.PASSWORD_MIN_LENGTH, max = UserConstants.PASSWORD_MAX_LENGTH, message = "{user.password.length.valid}")
@Schema(name = "用户密码")
private String password;
/**
* 验证码
*/
@Schema(name = "验证码")
private String code;
/**
* 唯一标识
*/
@Schema(name = "唯一标识")
private String uuid;
}

View File

@ -1,6 +1,5 @@
package com.ruoyi.common.core.domain.model;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
@ -11,10 +10,8 @@ import lombok.EqualsAndHashCode;
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(name = "用户注册对象")
public class RegisterBody extends LoginBody {
@Schema(name = "用户类型")
private String userType;
}

View File

@ -1,6 +1,5 @@
package com.ruoyi.common.core.domain.model;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@ -12,21 +11,18 @@ import javax.validation.constraints.NotBlank;
*/
@Data
@Schema(name = "短信登录对象")
public class SmsLoginBody {
/**
* 用户名
*/
@NotBlank(message = "{user.phonenumber.not.blank}")
@Schema(name = "用户手机号")
private String phonenumber;
/**
* 用户密码
*/
@NotBlank(message = "{sms.code.not.blank}")
@Schema(name = "短信验证码")
private String smsCode;
}

View File

@ -2,7 +2,6 @@ package com.ruoyi.common.core.page;
import cn.hutool.http.HttpStatus;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.NoArgsConstructor;
@ -17,32 +16,27 @@ import java.util.List;
@Data
@NoArgsConstructor
@Schema(name = "分页响应对象")
public class TableDataInfo<T> implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 总记录数
*/
@Schema(name = "总记录数")
private long total;
/**
* 列表数据
*/
@Schema(name = "列表数据")
private List<T> rows;
/**
* 消息状态码
*/
@Schema(name = "消息状态码")
private int code;
/**
* 消息内容
*/
@Schema(name = "消息内容")
private String msg;
/**