add 集成 EasyExcel 框架 完成业务功能切换

update 优化 Validation 校验框架功能
update 移除掉 StringUtils 语义不明确的api方法 使用特定工具替换
This commit is contained in:
疯狂的狮子li
2022-01-21 18:19:22 +08:00
parent f2b11d704b
commit 07ba70ec8c
101 changed files with 7990 additions and 8459 deletions

View File

@@ -1,62 +1,78 @@
package com.ruoyi.system.domain;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.annotation.Excel.ColumnType;
import com.ruoyi.common.core.web.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
/**
* 参数配置表 sys_config
*
* @author ruoyi
*/
@Data
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
@Accessors(chain = true)
public class SysConfig extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* 参数主键
*/
@Excel(name = "参数主键", cellType = ColumnType.NUMERIC)
private Long configId;
/**
* 参数名称
*/
@NotBlank(message = "参数名称不能为空")
@Size(min = 0, max = 100, message = "参数名称不能超过100个字符")
@Excel(name = "参数名称")
private String configName;
/**
* 参数键名
*/
@NotBlank(message = "参数键名长度不能为空")
@Size(min = 0, max = 100, message = "参数键名长度不能超过100个字符")
@Excel(name = "参数键名")
private String configKey;
/**
* 参数键值
*/
@NotBlank(message = "参数键不能为空")
@Size(min = 0, max = 500, message = "参数键长度不能超过500个字符")
@Excel(name = "参数键值")
private String configValue;
/**
* 系统内置Y是 N否
*/
@Excel(name = "系统内置", readConverterExp = "Y=是,N=否")
private String configType;
}
package com.ruoyi.system.domain;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.ruoyi.common.core.web.domain.BaseEntity;
import com.ruoyi.common.excel.annotation.ExcelDictFormat;
import com.ruoyi.common.excel.convert.ExcelDictConvert;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
/**
* 参数配置表 sys_config
*
* @author Lion Li
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@ExcelIgnoreUnannotated
@ApiModel("参数配置业务对象")
public class SysConfig extends BaseEntity {
/**
* 参数主键
*/
@ApiModelProperty(value = "参数主键")
@ExcelProperty(value = "参数主键")
private Long configId;
/**
* 参数名称
*/
@ApiModelProperty(value = "参数名称")
@ExcelProperty(value = "参数名称")
@NotBlank(message = "参数名称不能为空")
@Size(min = 0, max = 100, message = "参数名称不能超过100个字符")
private String configName;
/**
* 参数键名
*/
@ApiModelProperty(value = "参数键名")
@ExcelProperty(value = "参数键名")
@NotBlank(message = "参数键名长度不能为空")
@Size(min = 0, max = 100, message = "参数键长度不能超过100个字符")
private String configKey;
/**
* 参数键值
*/
@ApiModelProperty(value = "参数键值")
@ExcelProperty(value = "参数键值")
@NotBlank(message = "参数键值不能为空")
@Size(min = 0, max = 500, message = "参数键值长度不能超过500个字符")
private String configValue;
/**
* 系统内置Y是 N否
*/
@ApiModelProperty(value = "系统内置Y是 N否")
@ExcelProperty(value = "系统内置", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "sys_yes_no")
private String configType;
/**
* 备注
*/
@ApiModelProperty(value = "备注")
private String remark;
}

View File

@@ -1,113 +1,116 @@
package com.ruoyi.system.domain;
import com.ruoyi.common.core.web.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.util.ArrayList;
import java.util.List;
/**
* 菜单权限表 sys_menu
*
* @author ruoyi
*/
@Data
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
@Accessors(chain = true)
public class SysMenu extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* 菜单ID
*/
private Long menuId;
/**
* 菜单名称
*/
@NotBlank(message = "菜单名称不能为空")
@Size(min = 0, max = 50, message = "菜单名称长度不能超过50个字符")
private String menuName;
/**
* 父菜单名称
*/
private String parentName;
/**
* 父菜单ID
*/
private Long parentId;
/**
* 显示顺序
*/
@NotBlank(message = "显示顺序不能为空")
private String orderNum;
/**
* 路由地址
*/
@Size(min = 0, max = 200, message = "路由地址不能超过200个字符")
private String path;
/**
* 组件路径
*/
@Size(min = 0, max = 200, message = "组件路径不能超过255个字符")
private String component;
/**
* 路由参数
*/
private String query;
/**
* 是否为外链0是 1否
*/
private String isFrame;
/**
* 是否缓存0缓存 1不缓存
*/
private String isCache;
/**
* 类型M目录 C菜单 F按钮
*/
@NotBlank(message = "菜单类型不能为空")
private String menuType;
/**
* 显示状态0显示 1隐藏
*/
private String visible;
/**
* 菜单状态0显示 1隐藏
*/
private String status;
/**
* 权限字符串
*/
@Size(min = 0, max = 100, message = "权限标识长度不能超过100个字符")
private String perms;
/**
* 菜单图标
*/
private String icon;
/**
* 子菜单
*/
private List<SysMenu> children = new ArrayList<SysMenu>();
}
package com.ruoyi.system.domain;
import com.ruoyi.common.core.web.domain.TreeEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
/**
* 菜单权限表 sys_menu
*
* @author Lion Li
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@ApiModel("菜单权限业务对象")
public class SysMenu extends TreeEntity {
/**
* 菜单ID
*/
@ApiModelProperty(value = "菜单ID")
private Long menuId;
/**
* 菜单名称
*/
@ApiModelProperty(value = "菜单名称")
@NotBlank(message = "菜单名称不能为空")
@Size(min = 0, max = 50, message = "菜单名称长度不能超过50个字符")
private String menuName;
/**
* 显示顺序
*/
@ApiModelProperty(value = "显示顺序")
@NotBlank(message = "显示顺序不能为空")
private String orderNum;
/**
* 路由地址
*/
@ApiModelProperty(value = "路由地址")
@Size(min = 0, max = 200, message = "路由地址不能超过200个字符")
private String path;
/**
* 组件路径
*/
@ApiModelProperty(value = "组件路径")
@Size(min = 0, max = 200, message = "组件路径不能超过255个字符")
private String component;
/**
* 路由参数
*/
@ApiModelProperty(value = "路由参数")
private String query;
/**
* 是否为外链0是 1否
*/
@ApiModelProperty(value = "是否为外链0是 1否")
private String isFrame;
/**
* 是否缓存0缓存 1不缓存
*/
@ApiModelProperty(value = "是否缓存0缓存 1不缓存")
private String isCache;
/**
* 类型M目录 C菜单 F按钮
*/
@ApiModelProperty(value = "类型M目录 C菜单 F按钮")
@NotBlank(message = "菜单类型不能为空")
private String menuType;
/**
* 显示状态0显示 1隐藏
*/
@ApiModelProperty(value = "显示状态0显示 1隐藏")
private String visible;
/**
* 菜单状态0显示 1隐藏
*/
@ApiModelProperty(value = "菜单状态0显示 1隐藏")
private String status;
/**
* 权限字符串
*/
@ApiModelProperty(value = "权限字符")
@Size(min = 0, max = 100, message = "权限标识长度不能超过100个字符")
private String perms;
/**
* 菜单图标
*/
@ApiModelProperty(value = "菜单图标")
private String icon;
/**
* 备注
*/
@ApiModelProperty(value = "备注")
private String remark;
}

View File

@@ -1,53 +1,63 @@
package com.ruoyi.system.domain;
import com.ruoyi.common.core.web.domain.BaseEntity;
import com.ruoyi.common.core.xss.Xss;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
/**
* 通知公告表 sys_notice
*
* @author ruoyi
*/
@Data
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
@Accessors(chain = true)
public class SysNotice extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* 公告ID
*/
private Long noticeId;
/**
* 公告标题
*/
@Xss(message = "公告标题不能包含脚本字符")
@NotBlank(message = "公告标题不能为空")
@Size(min = 0, max = 50, message = "公告标题不能超过50个字符")
private String noticeTitle;
/**
* 公告类型1通知 2公告
*/
private String noticeType;
/**
* 公告内容
*/
private String noticeContent;
/**
* 公告状态0正常 1关闭
*/
private String status;
}
package com.ruoyi.system.domain;
import com.ruoyi.common.core.web.domain.BaseEntity;
import com.ruoyi.common.core.xss.Xss;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
/**
* 通知公告表 sys_notice
*
* @author Lion Li
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
public class SysNotice extends BaseEntity {
/**
* 公告ID
*/
@ApiModelProperty(value = "公告ID")
private Long noticeId;
/**
* 公告标题
*/
@Xss(message = "公告标题不能包含脚本字符")
@ApiModelProperty(value = "公告标题")
@NotBlank(message = "公告标题不能为空")
@Size(min = 0, max = 50, message = "公告标题不能超过50个字符")
private String noticeTitle;
/**
* 公告类型1通知 2公告
*/
@ApiModelProperty(value = "公告类型1通知 2公告")
private String noticeType;
/**
* 公告内容
*/
@ApiModelProperty(value = "公告内容")
private String noticeContent;
/**
* 公告状态0正常 1关闭
*/
@ApiModelProperty(value = "公告状态0正常 1关闭")
private String status;
/**
* 备注
*/
@ApiModelProperty(value = "备注")
private String remark;
}

View File

@@ -1,66 +1,83 @@
package com.ruoyi.system.domain;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.annotation.Excel.ColumnType;
import com.ruoyi.common.core.web.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
/**
* 岗位表 sys_post
*
* @author ruoyi
*/
@Data
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
@Accessors(chain = true)
public class SysPost extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* 岗位序号
*/
@Excel(name = "岗位序号", cellType = ColumnType.NUMERIC)
private Long postId;
/**
* 岗位编码
*/
@NotBlank(message = "岗位编码不能为空")
@Size(min = 0, max = 64, message = "岗位编码长度不能超过64个字符")
@Excel(name = "岗位编码")
private String postCode;
/**
* 岗位名称
*/
@NotBlank(message = "岗位名称不能为空")
@Size(min = 0, max = 50, message = "岗位名称长度不能超过50个字符")
@Excel(name = "岗位名称")
private String postName;
/**
* 岗位排序
*/
@NotBlank(message = "显示顺序不能为空")
@Excel(name = "岗位排序")
private String postSort;
/**
* 状态0正常 1停用
*/
@Excel(name = "状态", readConverterExp = "0=正常,1=停用")
private String status;
/**
* 用户是否存在此岗位标识 默认不存在
*/
private boolean flag = false;
}
package com.ruoyi.system.domain;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.ruoyi.common.core.web.domain.BaseEntity;
import com.ruoyi.common.excel.annotation.ExcelDictFormat;
import com.ruoyi.common.excel.convert.ExcelDictConvert;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
/**
* 岗位表 sys_post
*
* @author Lion Li
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@ExcelIgnoreUnannotated
@ApiModel("岗位信息业务对象")
public class SysPost extends BaseEntity {
/**
* 岗位序号
*/
@ApiModelProperty(value = "岗位序号")
@ExcelProperty(value = "岗位序号")
private Long postId;
/**
* 岗位编码
*/
@ApiModelProperty(value = "岗位编码")
@ExcelProperty(value = "岗位编码")
@NotBlank(message = "岗位编码不能为空")
@Size(min = 0, max = 64, message = "岗位编码长度不能超过64个字符")
private String postCode;
/**
* 岗位名称
*/
@ApiModelProperty(value = "岗位名称")
@ExcelProperty(value = "岗位名称")
@NotBlank(message = "岗位名称不能为空")
@Size(min = 0, max = 50, message = "岗位名称长度不能超过50个字符")
private String postName;
/**
* 岗位排序
*/
@ApiModelProperty(value = "岗位排序")
@ExcelProperty(value = "岗位排序")
@NotBlank(message = "显示顺序不能为空")
private String postSort;
/**
* 状态0正常 1停用
*/
@ApiModelProperty(value = "状态0正常 1停用")
@ExcelProperty(value = "状态", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "sys_common_status")
private String status;
/**
* 备注
*/
@ApiModelProperty(value = "备注")
private String remark;
/**
* 用户是否存在此岗位标识 默认不存在
*/
@ApiModelProperty(value = "用户是否存在此岗位标识 默认不存在")
private boolean flag = false;
}

View File

@@ -1,27 +1,31 @@
package com.ruoyi.system.domain;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
/**
* 角色和部门关联 sys_role_dept
*
* @author ruoyi
*/
@Data
@NoArgsConstructor
@Accessors(chain = true)
public class SysRoleDept {
/**
* 角色ID
*/
private Long roleId;
/**
* 部门ID
*/
private Long deptId;
}
package com.ruoyi.system.domain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* 角色和部门关联 sys_role_dept
*
* @author Lion Li
*/
@Data
@Accessors(chain = true)
@ApiModel("角色和部门关联")
public class SysRoleDept {
/**
* 角色ID
*/
@ApiModelProperty(value = "角色ID")
private Long roleId;
/**
* 部门ID
*/
@ApiModelProperty(value = "部门ID")
private Long deptId;
}

View File

@@ -1,27 +1,31 @@
package com.ruoyi.system.domain;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
/**
* 角色和菜单关联 sys_role_menu
*
* @author ruoyi
*/
@Data
@NoArgsConstructor
@Accessors(chain = true)
public class SysRoleMenu {
/**
* 角色ID
*/
private Long roleId;
/**
* 菜单ID
*/
private Long menuId;
}
package com.ruoyi.system.domain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* 角色和菜单关联 sys_role_menu
*
* @author Lion Li
*/
@Data
@Accessors(chain = true)
@ApiModel("角色和菜单关联")
public class SysRoleMenu {
/**
* 角色ID
*/
@ApiModelProperty(value = "角色ID")
private Long roleId;
/**
* 菜单ID
*/
@ApiModelProperty(value = "角色ID")
private Long menuId;
}

View File

@@ -1,52 +1,67 @@
package com.ruoyi.system.domain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
/**
* 当前在线会话
*
* @author ruoyi
* @author Lion Li
*/
@Data
@NoArgsConstructor
@Accessors(chain = true)
@ApiModel("当前在线会话业务对象")
public class SysUserOnline {
/**
* 会话编号
*/
@ApiModelProperty(value = "会话编号")
private String tokenId;
/**
* 部门名称
*/
@ApiModelProperty(value = "部门名称")
private String deptName;
/**
* 用户名称
*/
@ApiModelProperty(value = "用户名称")
private String userName;
/**
* 登录IP地址
*/
@ApiModelProperty(value = "登录IP地址")
private String ipaddr;
/**
* 登录地址
*/
@ApiModelProperty(value = "登录地址")
private String loginLocation;
/**
* 浏览器类型
*/
@ApiModelProperty(value = "浏览器类型")
private String browser;
/**
* 操作系统
*/
@ApiModelProperty(value = "操作系统")
private String os;
/**
* 登录时间
*/
@ApiModelProperty(value = "登录时间")
private Long loginTime;
}

View File

@@ -1,27 +1,31 @@
package com.ruoyi.system.domain;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
/**
* 用户和岗位关联 sys_user_post
*
* @author ruoyi
*/
@Data
@NoArgsConstructor
@Accessors(chain = true)
public class SysUserPost {
/**
* 用户ID
*/
private Long userId;
/**
* 岗位ID
*/
private Long postId;
}
package com.ruoyi.system.domain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* 用户和岗位关联 sys_user_post
*
* @author Lion Li
*/
@Data
@Accessors(chain = true)
@ApiModel("用户和岗位关联")
public class SysUserPost {
/**
* 用户ID
*/
@ApiModelProperty(value = "用户ID")
private Long userId;
/**
* 岗位ID
*/
@ApiModelProperty(value = "岗位ID")
private Long postId;
}

View File

@@ -1,27 +1,31 @@
package com.ruoyi.system.domain;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
/**
* 用户和角色关联 sys_user_role
*
* @author ruoyi
*/
@Data
@NoArgsConstructor
@Accessors(chain = true)
public class SysUserRole {
/**
* 用户ID
*/
private Long userId;
/**
* 角色ID
*/
private Long roleId;
}
package com.ruoyi.system.domain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* 用户和角色关联 sys_user_role
*
* @author Lion Li
*/
@Data
@Accessors(chain = true)
@ApiModel("用户和角色关联")
public class SysUserRole {
/**
* 用户ID
*/
@ApiModelProperty(value = "用户ID")
private Long userId;
/**
* 角色ID
*/
@ApiModelProperty(value = "角色ID")
private Long roleId;
}

View File

@@ -0,0 +1,93 @@
package com.ruoyi.system.domain.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.ruoyi.common.excel.annotation.ExcelDictFormat;
import com.ruoyi.common.excel.convert.ExcelDictConvert;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
/**
* 用户对象导出VO
*
* @author Lion Li
*/
@Data
@NoArgsConstructor
@Accessors(chain = true)
public class SysUserExportVo implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 用户ID
*/
@ExcelProperty(value = "用户序号")
private Long userId;
/**
* 用户账号
*/
@ExcelProperty(value = "登录名称")
private String userName;
/**
* 用户昵称
*/
@ExcelProperty(value = "用户名称")
private String nickName;
/**
* 用户邮箱
*/
@ExcelProperty(value = "用户邮箱")
private String email;
/**
* 手机号码
*/
@ExcelProperty(value = "手机号码")
private String phonenumber;
/**
* 用户性别
*/
@ExcelProperty(value = "用户性别", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "sys_user_sex")
private String sex;
/**
* 帐号状态0正常 1停用
*/
@ExcelProperty(value = "帐号状态", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "sys_common_status")
private String status;
/**
* 最后登录IP
*/
@ExcelProperty(value = "最后登录IP")
private String loginIp;
/**
* 最后登录时间
*/
@ExcelProperty(value = "最后登录时间")
private Date loginDate;
/**
* 部门名称
*/
@ExcelProperty(value = "部门名称")
private String deptName;
/**
* 负责人
*/
@ExcelProperty(value = "部门负责人")
private String leader;
}

View File

@@ -0,0 +1,73 @@
package com.ruoyi.system.domain.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.ruoyi.common.excel.annotation.ExcelDictFormat;
import com.ruoyi.common.excel.convert.ExcelDictConvert;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* 用户对象导入VO
*
* @author Lion Li
*/
@Data
@NoArgsConstructor
// @Accessors(chain = true) // 导入不允许使用 会找不到set方法
public class SysUserImportVo implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 用户ID
*/
@ExcelProperty(value = "用户序号")
private Long userId;
/**
* 部门ID
*/
@ExcelProperty(value = "部门编号")
private Long deptId;
/**
* 用户账号
*/
@ExcelProperty(value = "登录名称")
private String userName;
/**
* 用户昵称
*/
@ExcelProperty(value = "用户名称")
private String nickName;
/**
* 用户邮箱
*/
@ExcelProperty(value = "用户邮箱")
private String email;
/**
* 手机号码
*/
@ExcelProperty(value = "手机号码")
private String phonenumber;
/**
* 用户性别
*/
@ExcelProperty(value = "用户性别", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "sys_user_sex")
private String sex;
/**
* 帐号状态0正常 1停用
*/
@ExcelProperty(value = "帐号状态", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "sys_normal_disable")
private String status;
}

View File

@@ -1,53 +0,0 @@
package com.ruoyi.system.domain.vo;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.ruoyi.system.api.domain.SysDept;
import com.ruoyi.system.domain.SysMenu;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.List;
import java.util.stream.Collectors;
/**
* Treeselect树结构实体类
*
* @author ruoyi
*/
@Data
@NoArgsConstructor
@Accessors(chain = true)
public class TreeSelect implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 节点ID
*/
private Long id;
/**
* 节点名称
*/
private String label;
/**
* 子节点
*/
@JsonInclude(JsonInclude.Include.NON_EMPTY)
private List<TreeSelect> children;
public TreeSelect(SysDept dept) {
this.id = dept.getDeptId();
this.label = dept.getDeptName();
this.children = dept.getChildren().stream().map(TreeSelect::new).collect(Collectors.toList());
}
public TreeSelect(SysMenu menu) {
this.id = menu.getMenuId();
this.label = menu.getMenuName();
this.children = menu.getChildren().stream().map(TreeSelect::new).collect(Collectors.toList());
}
}