refactor: 项目结构合理性优化

This commit is contained in:
haoxr
2023-06-03 11:03:12 +08:00
parent 808c33789c
commit 532b632ccc
124 changed files with 419 additions and 414 deletions

View File

@@ -0,0 +1,39 @@
package com.youlai.system.model.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.List;
@Schema(description = "部门视图对象")
@Data
public class DeptVO {
@Schema(description = "部门ID")
private Long id;
@Schema(description = "父部门ID")
private Long parentId;
@Schema(description = "部门名称")
private String name;
@Schema(description = "排序")
private Integer sort;
@Schema(description = "状态(1:启用0:禁用)")
private Integer status;
@Schema(description = "子部门")
private List<DeptVO> children;
@Schema(description = "创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
private LocalDateTime createTime;
@Schema(description = "修改时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
private LocalDateTime updateTime;
}

View File

@@ -0,0 +1,23 @@
package com.youlai.system.model.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Schema(description ="字典分页对象")
@Data
public class DictPageVO {
@Schema(description="字典ID")
private Long id;
@Schema(description="字典名称")
private String name;
@Schema(description="字典值")
private String value;
@Schema(description="状态(1:启用;0:禁用)")
private Integer status;
}

View File

@@ -0,0 +1,23 @@
package com.youlai.system.model.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Schema(description ="字典类型分页对象")
@Data
public class DictTypePageVO {
@Schema(description="字典类型ID")
private Long id;
@Schema(description="类型名称")
private String name;
@Schema(description="类型编码")
private String code;
@Schema(description="状态1:启用;0:禁用")
private Integer status;
}

View File

@@ -0,0 +1,51 @@
package com.youlai.system.model.vo;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.youlai.system.common.enums.MenuTypeEnum;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.List;
@Schema(description ="菜单视图对象")
@Data
public class MenuVO {
@Schema(description = "菜单ID")
private Long id;
@Schema(description = "父菜单ID")
private Long parentId;
@Schema(description = "菜单名称")
private String name;
@Schema(description="菜单类型")
private MenuTypeEnum type;
@Schema(description = "路由路径")
private String path;
@Schema(description = "组件路径")
private String component;
@Schema(description = "菜单排序(数字越小排名越靠前)")
private Integer sort;
@Schema(description = "菜单是否可见(1:显示;0:隐藏)")
private Integer visible;
@Schema(description = "ICON")
private String icon;
@Schema(description = "跳转路径")
private String redirect;
@Schema(description="按钮权限标识")
private String perm;
@Schema(description = "子菜单")
@JsonInclude(value = JsonInclude.Include.NON_NULL)
private List<MenuVO> children;
}

View File

@@ -0,0 +1,33 @@
package com.youlai.system.model.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
@Schema(description ="角色分页对象")
@Data
public class RolePageVO {
@Schema(description="角色ID")
private Long id;
@Schema(description="角色名称")
private String name;
@Schema(description="角色编码")
private String code;
@Schema(description="角色状态")
private Integer status;
@Schema(description="排序")
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,57 @@
package com.youlai.system.model.vo;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.List;
/**
* 菜单路由视图对象
*
* @author haoxr
* @since 2020/11/28
*/
@Schema(description = "路由对象")
@Data
@JsonInclude(JsonInclude.Include.NON_EMPTY)
public class RouteVO {
@Schema(description = "路由路径", example = "user")
private String path;
@Schema(description = "组件路径", example = "system/user/index")
private String component;
@Schema(description = "跳转链接", example = "https://www.youlai.tech")
private String redirect;
@Schema(description = "路由名称")
private String name;
@Schema(description = "路由属性")
private Meta meta;
@Schema(description = "路由属性类型")
@Data
public static class Meta {
@Schema(description = "路由title")
private String title;
@Schema(description = "ICON")
private String icon;
@Schema(description = "是否隐藏", example = "true")
private Boolean hidden;
@Schema(description = "拥有路由权限的角色编码", example = "['ADMIN','ROOT']")
private List<String> roles;
@Schema(description = "是否开启缓存", example = "true")
private Boolean keepAlive;
}
@Schema(description = "子路由列表")
private List<RouteVO> children;
}

View File

@@ -0,0 +1,44 @@
package com.youlai.system.model.vo;
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
* @since 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,33 @@
package com.youlai.system.model.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
/**
* 用户导入对象
*
* @author haoxr
* @since 2022/4/10
*/
@Data
public class UserImportVO {
@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;
@ExcelProperty("角色")
private String roleCodes;
}

View File

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

View File

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