feat: 全量提交

This commit is contained in:
horizons
2022-10-24 07:50:54 +08:00
commit de9157143a
128 changed files with 7493 additions and 0 deletions

View File

@@ -0,0 +1,58 @@
package com.youlai.system.pojo.dto;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
/**
* 用户导入对象
*
* @author haoxr
* @date 2022/4/10
*/
@Data
public class UserImportDTO {
/**
* 部门ID
*/
private Long deptId;
/**
* 角色ID
*/
private String roleIds;
private MultipartFile file;
/**
* 导入的用户列表
*/
private List<UserItem> userList;
@Data
@NoArgsConstructor
@AllArgsConstructor
public static class UserItem {
@ExcelProperty(value = "用户名")
private String username;
@ExcelProperty(value = "用户昵称")
private String nickname;
@ExcelProperty(value = "性别")
private String gender;
@ExcelProperty(value = "手机号码")
private String mobile;
@ExcelProperty(value = "邮箱")
private String email;
}
}

View File

@@ -0,0 +1,66 @@
package com.youlai.system.pojo.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 部门表
* @TableName sys_dept
*/
@TableName(value ="sys_dept")
@Data
public class SysDept implements Serializable {
/**
* 主键
*/
@TableId(type = IdType.AUTO)
private Long id;
/**
* 部门名称
*/
private String name;
/**
* 父节点id
*/
private Long parentId;
/**
* 父节点id路径
*/
private String treePath;
/**
* 显示顺序
*/
private Integer sort;
/**
* 状态(1:正常;0:禁用)
*/
private Integer status;
/**
* 逻辑删除标识(1:已删除;0:未删除)
*/
private Integer deleted;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date updateTime;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}

View File

@@ -0,0 +1,71 @@
package com.youlai.system.pojo.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 字典数据表
* @TableName sys_dict_item
*/
@TableName(value ="sys_dict_item")
@Data
public class SysDictItem implements Serializable {
/**
* 主键
*/
@TableId(type = IdType.AUTO)
private Long id;
/**
* 字典类型编码
*/
private String typeCode;
/**
* 字典项名称
*/
private String name;
/**
* 字典项值
*/
private String value;
/**
* 排序
*/
private Integer sort;
/**
* 状态(1:正常;0:禁用)
*/
private Integer status;
/**
* 是否默认(1:是;0:否)
*/
private Integer defaulted;
/**
* 备注
*/
private String remark;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date updateTime;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}

View File

@@ -0,0 +1,56 @@
package com.youlai.system.pojo.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 字典类型表
* @TableName sys_dict_type
*/
@TableName(value ="sys_dict_type")
@Data
public class SysDictType implements Serializable {
/**
* 主键
*/
@TableId(type = IdType.AUTO)
private Long id;
/**
* 类型名称
*/
private String name;
/**
* 类型编码
*/
private String code;
/**
* 状态(0:正常;1:禁用)
*/
private Integer status;
/**
* 备注
*/
private String remark;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date updateTime;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}

View File

@@ -0,0 +1,76 @@
package com.youlai.system.pojo.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import com.youlai.system.common.base.BaseEntity;
import com.youlai.system.common.enums.MenuTypeEnum;
import lombok.Data;
/**
* 菜单表实体
*/
@TableName(value ="sys_menu")
@Data
public class SysMenu extends BaseEntity {
/**
*
*/
@TableId(type = IdType.AUTO)
private Long id;
/**
* 父菜单ID
*/
private Long parentId;
/**
* 菜单名称
*/
private String name;
/**
* 菜单类型(1-菜单2-目录3-外链4-按钮权限)
*/
private MenuTypeEnum type;
/**
* 路由路径(浏览器地址栏路径)
*/
private String path;
/**
* 组件路径(vue页面完整路径省略.vue后缀)
*/
private String component;
/**
* 权限标识
*/
private String perm;
/**
* 显示状态(1:显示;0:隐藏)
*/
private Integer visible;
/**
* 排序
*/
private Integer sort;
/**
* 菜单图标
*/
private String icon;
/**
* 外链路径
*/
private String redirectUrl;
}

View File

@@ -0,0 +1,61 @@
package com.youlai.system.pojo.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 角色表
* @TableName sys_role
*/
@TableName(value ="sys_role")
@Data
public class SysRole implements Serializable {
/**
*
*/
@TableId(type = IdType.AUTO)
private Long id;
/**
* 角色名称
*/
private String name;
/**
* 角色编码
*/
private String code;
/**
* 显示顺序
*/
private Integer sort;
/**
* 角色状态(1-正常0-停用)
*/
private Integer status;
/**
* 逻辑删除标识(0-未删除1-已删除)
*/
private Integer deleted;
/**
* 更新时间
*/
private Date createTime;
/**
* 创建时间
*/
private Date updateTime;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}

View File

@@ -0,0 +1,30 @@
package com.youlai.system.pojo.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import java.io.Serializable;
/**
* 角色和菜单关联表
* @TableName sys_role_menu
*/
@TableName(value ="sys_role_menu")
@Data
@AllArgsConstructor
public class SysRoleMenu implements Serializable {
/**
* 角色ID
*/
private Long roleId;
/**
* 菜单ID
*/
private Long menuId;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}

View File

@@ -0,0 +1,86 @@
package com.youlai.system.pojo.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 用户信息表
* @TableName sys_user
*/
@TableName(value ="sys_user")
@Data
public class SysUser implements Serializable {
/**
*
*/
@TableId(type = IdType.AUTO)
private Long id;
/**
* 用户名
*/
private String username;
/**
* 昵称
*/
private String nickname;
/**
* 性别((1:男;2:女))
*/
private Integer gender;
/**
* 密码
*/
private String password;
/**
* 部门ID
*/
private Long deptId;
/**
* 用户头像
*/
private String avatar;
/**
* 联系方式
*/
private String mobile;
/**
* 用户状态((1:正常;0:禁用))
*/
private Integer status;
/**
* 用户邮箱
*/
private String email;
/**
* 逻辑删除标识(0:未删除;1:已删除)
*/
private Integer deleted;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date updateTime;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}

View File

@@ -0,0 +1,30 @@
package com.youlai.system.pojo.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import java.io.Serializable;
/**
* 用户和角色关联表
* @TableName sys_user_role
*/
@TableName(value ="sys_user_role")
@Data
@AllArgsConstructor
public class SysUserRole implements Serializable {
/**
* 用户ID
*/
private Long userId;
/**
* 角色ID
*/
private Long roleId;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}

View File

@@ -0,0 +1,27 @@
package com.youlai.system.pojo.form;
import com.youlai.system.common.base.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@ApiModel("部门表单对象")
@Data
public class DeptForm extends BaseEntity {
@ApiModelProperty("部门名称")
private String name;
@ApiModelProperty("父部门ID")
@NotNull(message = "父部门ID不能为空")
private Long parentId;
@ApiModelProperty("状态")
private Integer status;
@ApiModelProperty("排序")
private Integer sort;
}

View File

@@ -0,0 +1,30 @@
package com.youlai.system.pojo.form;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ApiModel("字典数据项")
@Data
public class DictItemForm {
@ApiModelProperty("数据项ID")
private Long id;
@ApiModelProperty("类型编码")
private String typeCode;
@ApiModelProperty("数据项名称")
private String name;
@ApiModelProperty("")
private String value;
@ApiModelProperty("状态1->启用;0->禁用")
private Integer status;
@ApiModelProperty("排序")
private Integer sort;
}

View File

@@ -0,0 +1,24 @@
package com.youlai.system.pojo.form;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ApiModel("字典类型")
@Data
public class DictTypeForm {
@ApiModelProperty("字典类型ID")
private Long id;
@ApiModelProperty("类型名称")
private String name;
@ApiModelProperty("类型编码")
private String code;
@ApiModelProperty("类型状态1->启用;0->禁用")
private Integer status;
}

View File

@@ -0,0 +1,30 @@
package com.youlai.system.pojo.form;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@ApiModel("角色表单对象")
@Data
public class RoleForm {
@ApiModelProperty("角色ID")
private Long id;
@ApiModelProperty("角色名称")
@NotBlank(message = "角色名称不能为空")
private String name;
@ApiModelProperty("角色编码")
@NotBlank(message = "角色编码不能为空")
private String code;
@ApiModelProperty("排序")
private Integer sort;
@ApiModelProperty("角色状态(1-正常0-停用)")
private Integer status;
}

View File

@@ -0,0 +1,31 @@
package com.youlai.system.pojo.form;
import lombok.Data;
import java.util.List;
/**
* 角色权限传输层对象
*
* @author haoxr
* @date 2021/12/19 11:46
*/
@Data
public class RolePermsForm {
/**
* 菜单ID
*/
private Long menuId;
/**
* 角色ID
*/
private Long roleId;
/**
* 权限ID集合
*/
private List<Long> permIds;
}

View File

@@ -0,0 +1,20 @@
package com.youlai.system.pojo.form;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@ApiModel("菜单资源表单")
@Data
public class RoleResourceForm {
@ApiModelProperty("菜单ID集合")
private List<Long> menuIds;
@ApiModelProperty("权限ID集合")
private List<Long> permIds;
}

View File

@@ -0,0 +1,55 @@
package com.youlai.system.pojo.form;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.Pattern;
import java.util.List;
/**
* 用户表单对象
*
* @author haoxr
* @date 2022/4/12 11:04
*/
@ApiModel
@Data
public class UserForm {
@ApiModelProperty("用户ID")
private Long id;
@ApiModelProperty("用户名")
@NotBlank(message = "用户名不能为空")
private String username;
@ApiModelProperty("昵称")
@NotBlank(message = "昵称不能为空")
private String nickname;
@Pattern(regexp = "^1(3\\d|4[5-9]|5[0-35-9]|6[2567]|7[0-8]|8\\d|9[0-35-9])\\d{8}$", message = "{phone.valid}")
private String mobile;
@ApiModelProperty("性别")
private Integer gender;
@ApiModelProperty("用户头像")
private String avatar;
@ApiModelProperty("邮箱")
private String email;
@ApiModelProperty("用户状态(1:正常;0:禁用)")
private Integer status;
@ApiModelProperty("部门ID")
private Long deptId;
@ApiModelProperty("角色ID集合")
@NotEmpty(message = "用户角色不能为空")
private List<Long> roleIds;
}

View File

@@ -0,0 +1,78 @@
package com.youlai.system.pojo.po;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.youlai.system.common.base.BaseEntity;
import com.youlai.system.common.enums.MenuTypeEnum;
import lombok.Data;
import java.util.List;
/**
* 路由
*/
@Data
public class RoutePO {
/**
*
*/
@TableId(type = IdType.AUTO)
private Long id;
/**
* 父菜单ID
*/
private Long parentId;
/**
* 菜单名称
*/
private String name;
/**
* 菜单类型(1-菜单2-目录3-外链4-按钮权限)
*/
private MenuTypeEnum type;
/**
* 路由路径(浏览器地址栏路径)
*/
private String path;
/**
* 组件路径(vue页面完整路径省略.vue后缀)
*/
private String component;
/**
* 权限标识
*/
private String perm;
/**
* 显示状态(1:显示;0:隐藏)
*/
private Integer visible;
/**
* 排序
*/
private Integer sort;
/**
* 菜单图标
*/
private String icon;
/**
* 外链路径
*/
private String redirectUrl;
/**
* 拥有路由的权限
*/
private List<String> roles;
}

View File

@@ -0,0 +1,33 @@
package com.youlai.system.pojo.po;
import lombok.Data;
import java.util.Set;
/**
* 用户认证信息
*
* @author haoxr
* @date 2022/10/22
*
*/
@Data
public class UserAuthInfo {
private Long userId;
private String username;
private String nickname;
private Long deptId;
private String password;
private Integer status;
private Set<String> roles;
private Set<String> perms;
}

View File

@@ -0,0 +1,66 @@
package com.youlai.system.pojo.po;
import lombok.Data;
import java.util.List;
/**
* user表单持久化对象
*
* @author haoxr
* @date 2022/6/10
*/
@Data
public class UserFormPO {
/**
* 用户ID
*/
private Long id;
/**
* 用户名
*/
private String username;
/**
* 用户昵称
*/
private String nickname;
/**
* 手机号
*/
private String mobile;
/**
* 性别(1:男;2:女)
*/
private Integer gender;
/**
* 用户头像
*/
private String avatar;
/**
* 用户邮箱
*/
private String email;
/**
* 状态(1:启用;0:禁用)
*/
private Integer status;
/**
* 部门ID
*/
private Long deptId;
/**
* 角色ID集合
*/
private List<Long> roleIds;
}

View File

@@ -0,0 +1,72 @@
package com.youlai.system.pojo.po;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
/**
* 用户持久化对象
*
* @author haoxr
* @date 2022/6/10
*/
@Data
public class UserPO {
/**
* 用户ID
*/
private Long id;
/**
* 账户名
*/
private String username;
/**
* 昵称
*/
private String nickname;
/**
* 手机号
*/
private String mobile;
/**
* 性别(1->男2->女)
*/
private Integer gender;
/**
* 头像URL
*/
private String avatar;
/**
* 邮箱
*/
private String email;
/**
* 状态: 1->启用;0->禁用
*/
private Integer status;
/**
* 部门名称
*/
private String deptName;
/**
* 角色名称,多个使用英文逗号(,)分割
*/
private String roleNames;
/**
* 创建时间
*/
@JsonFormat(pattern = "yyyy-MM-dd")
private Date createTime;
}

View File

@@ -0,0 +1,23 @@
package com.youlai.system.pojo.query;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 部门分页查询对象
*
* @author haoxr
* @date 2022/6/11
*/
@ApiModel("部门分页查询对象")
@Data
public class DeptQuery {
@ApiModelProperty("关键字(部门名称)")
private String keywords;
@ApiModelProperty("状态(1->正常0->禁用)")
private Integer status;
}

View File

@@ -0,0 +1,18 @@
package com.youlai.system.pojo.query;
import com.youlai.system.common.base.BasePageQuery;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ApiModel("字典数据项分页查询对象")
@Data
public class DictItemPageQuery extends BasePageQuery {
@ApiModelProperty("关键字(字典项名称)")
private String keywords;
@ApiModelProperty("字典类型编码")
private String typeCode;
}

View File

@@ -0,0 +1,16 @@
package com.youlai.system.pojo.query;
import com.youlai.system.common.base.BasePageQuery;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ApiModel("字典类型分页查询对象")
@Data
public class DictTypePageQuery extends BasePageQuery {
@ApiModelProperty("关键字(类型名称/类型编码)")
private String keywords;
}

View File

@@ -0,0 +1,24 @@
package com.youlai.system.pojo.query;
import com.youlai.system.common.base.BasePageQuery;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 权限分页查询对象
*
* @author haoxr
* @date 2022/1/14 22:22
*/
@Data
@ApiModel
public class PermPageQuery extends BasePageQuery {
@ApiModelProperty("权限名称")
private String name;
@ApiModelProperty("菜单ID")
private Long menuId;
}

View File

@@ -0,0 +1,19 @@
package com.youlai.system.pojo.query;
import com.youlai.system.common.base.BasePageQuery;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 角色分页查询实体
*
* @author haoxr
* @date 2022/6/3
*
*/
@Data
public class RolePageQuery extends BasePageQuery {
@ApiModelProperty("关键字(角色名称/角色编码)")
private String keywords;
}

View File

@@ -0,0 +1,27 @@
package com.youlai.system.pojo.query;
import com.youlai.system.common.base.BasePageQuery;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 用户分页查询对象
*
* @author haoxr
* @date 2022/1/14
*/
@ApiModel
@Data
public class UserPageQuery extends BasePageQuery {
@ApiModelProperty("关键字(用户名/昵称/手机号)")
private String keywords;
@ApiModelProperty("用户状态")
private Integer status;
@ApiModelProperty("部门ID")
private Long deptId;
}

View File

@@ -0,0 +1,27 @@
package com.youlai.system.pojo.vo.dept;
import com.youlai.system.common.base.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ApiModel("部门详情对象")
@Data
public class DeptDetailVO extends BaseEntity {
@ApiModelProperty("部门ID(编辑必填)")
private Long id;
@ApiModelProperty("部门名称")
private String name;
@ApiModelProperty("父部门ID")
private Long parentId;
@ApiModelProperty("状态")
private Integer status;
@ApiModelProperty("排序")
private Integer sort;
}

View File

@@ -0,0 +1,29 @@
package com.youlai.system.pojo.vo.dept;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.List;
@Data
public class DeptVO {
private Long id;
private Long parentId;
private String name;
private Integer sort;
private Integer status;
private List<DeptVO> children;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
private LocalDateTime createTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
private LocalDateTime updateTime;
}

View File

@@ -0,0 +1,24 @@
package com.youlai.system.pojo.vo.dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ApiModel("字典数据项分页对象")
@Data
public class DictItemPageVO {
@ApiModelProperty("数据项ID")
private Long id;
@ApiModelProperty("数据项名称")
private String name;
@ApiModelProperty("")
private String value;
@ApiModelProperty("类型状态1->启用;0->禁用")
private Integer status;
}

View File

@@ -0,0 +1,24 @@
package com.youlai.system.pojo.vo.dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ApiModel("字典类型")
@Data
public class DictTypePageVO {
@ApiModelProperty("字典类型ID")
private Long id;
@ApiModelProperty("类型名称")
private String name;
@ApiModelProperty("类型编码")
private String code;
@ApiModelProperty("类型状态1->启用;0->禁用")
private Integer status;
}

View File

@@ -0,0 +1,30 @@
package com.youlai.system.pojo.vo.menu;
import lombok.Data;
@Data
public class MenuDetailVO {
private Long id;
private Long parentId;
private String name;
private String icon;
private String routeName;
private String routePath;
private String component;
private Integer sort;
private Integer visible;
private String redirect;
private Integer type;
}

View File

@@ -0,0 +1,41 @@
package com.youlai.system.pojo.vo.menu;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.youlai.system.common.enums.MenuTypeEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@ApiModel("菜单视图对象")
@Data
public class MenuVO {
private Long id;
private Long parentId;
private String name;
private String icon;
private String routeName;
private String routePath;
private String component;
private Integer sort;
private Integer visible;
private String redirect;
@ApiModelProperty("菜单类型")
private MenuTypeEnum type;
@JsonInclude(value = JsonInclude.Include.NON_NULL)
private List<MenuVO> children;
}

View File

@@ -0,0 +1,26 @@
package com.youlai.system.pojo.vo.menu;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@ApiModel("资源(菜单+权限)视图对象")
@Data
public class ResourceVO {
@ApiModelProperty("选项的值")
private Long value;
@ApiModelProperty("选项的标签")
private String label;
@ApiModelProperty("子菜单")
@JsonInclude(value = JsonInclude.Include.NON_EMPTY)
private List<ResourceVO> children;
}

View File

@@ -0,0 +1,51 @@
package com.youlai.system.pojo.vo.menu;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;
import java.util.List;
/**
* 菜单路由视图对象
*
* @author haoxr
* @date 2020/11/28
*/
@Data
@JsonInclude(JsonInclude.Include.NON_EMPTY)
public class RouteVO {
private String path;
private String component;
private String redirect;
private String name;
private Meta meta;
@Data
public static class Meta {
private String title;
private String icon;
private Boolean hidden;
/**
* 如果设置为 true目录没有子节点也会显示
*/
private Boolean alwaysShow;
private List<String> roles;
/**
* 页面缓存开启状态
*/
private Boolean keepAlive;
}
private List<RouteVO> children;
}

View File

@@ -0,0 +1,35 @@
package com.youlai.system.pojo.vo.perm;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 权限视图对象
*
* @author haoxr
* @date 2021/10/30 10:54
*/
@ApiModel("权限视图对象")
@Data
public class PermPageVO {
@ApiModelProperty("权限ID")
private Long id;
@ApiModelProperty("权限名称")
private String name;
@ApiModelProperty("URL权限标识-服务名称")
private String serviceName;
@ApiModelProperty("URL权限标识-请求标识")
private String requestMethod;
@ApiModelProperty("URL权限标识-请求方式")
private String requestPath;
@ApiModelProperty("按钮权限标识")
private String btnPerm;
}

View File

@@ -0,0 +1,34 @@
package com.youlai.system.pojo.vo.role;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;
@ApiModel("角色分页视图对象")
@Data
public class RolePageVO {
@ApiModelProperty("角色ID")
private Long id;
@ApiModelProperty("角色名称")
private String name;
@ApiModelProperty("角色编码")
private String code;
@ApiModelProperty("角色状态")
private Integer status;
@ApiModelProperty("排序")
private Integer sort;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime updateTime;
}

View File

@@ -0,0 +1,49 @@
package com.youlai.system.pojo.vo.user;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* 用户表详情视图对象
*
* @author haoxr
* @date 2022/8/25
*/
@ApiModel
@Data
public class UserDetailVO {
@ApiModelProperty("用户ID")
private Long id;
@ApiModelProperty("用户名")
private String username;
@ApiModelProperty("昵称")
private String nickname;
@ApiModelProperty("")
private String mobile;
@ApiModelProperty("性别")
private Integer gender;
@ApiModelProperty("用户头像")
private String avatar;
@ApiModelProperty("邮箱")
private String email;
@ApiModelProperty("用户状态(1:正常;0:禁用)")
private Integer status;
@ApiModelProperty("部门ID")
private Long deptId;
@ApiModelProperty("角色ID集合")
private List<Long> roleIds;
}

View File

@@ -0,0 +1,44 @@
package com.youlai.system.pojo.vo.user;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import lombok.Data;
import java.time.LocalDateTime;
/**
* 用户导出视图对象
*
* @author haoxr
* @date 2022/4/11 8:46
*/
@Data
@ColumnWidth(20)
public class UserExportVO {
@ExcelProperty(value = "用户名")
private String username;
@ExcelProperty(value = "用户昵称")
private String nickname;
@ExcelProperty(value = "部门")
private String deptName;
@ExcelProperty(value = "性别")
private String gender;
@ExcelProperty(value = "手机号码")
private String mobile;
@ExcelProperty(value = "邮箱")
private String email;
@ExcelProperty(value = "创建时间")
@DateTimeFormat("yyyy/MM/dd HH:mm:ss")
private LocalDateTime createTime;
}

View File

@@ -0,0 +1,35 @@
package com.youlai.system.pojo.vo.user;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
import java.util.Set;
/**
* 用户登录视图对象
*
* @author haoxr
* @date 2022/1/14
*/
@ApiModel("当前登录用户视图对象")
@Data
public class UserLoginVO {
@ApiModelProperty("用户ID")
private Long userId;
@ApiModelProperty("用户昵称")
private String nickname;
@ApiModelProperty("头像地址")
private String avatar;
@ApiModelProperty("用户角色编码集合")
private Set<String> roles;
@ApiModelProperty("用户权限标识集合")
private Set<String> perms;
}

View File

@@ -0,0 +1,54 @@
package com.youlai.system.pojo.vo.user;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* 用户分页视图对象
*
* @author haoxr
* @date 2022/1/15 9:41
*/
@ApiModel("用户分页视图对象")
@Data
public class UserVO {
@ApiModelProperty("用户ID")
private Long id;
@ApiModelProperty("用户名")
private String username;
@ApiModelProperty("用户昵称")
private String nickname;
@ApiModelProperty("手机号")
private String mobile;
@ApiModelProperty("性别")
private String genderLabel;
@ApiModelProperty("用户头像地址")
private String avatar;
@ApiModelProperty("用户邮箱")
private String email;
@ApiModelProperty("用户状态(1:启用;0:禁用)")
private Integer status;
@ApiModelProperty("部门名称")
private String deptName;
@ApiModelProperty("角色名称,多个使用英文逗号(,)分割")
private String roleNames;
@ApiModelProperty("创建时间")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date createTime;
}