在初始认证基础上,新增完整的 RBAC 权限模型(角色、权限、菜单三级管理), 集成审计日志、接口限流、登录失败锁定、Refresh Token 机制、Redis 分布式缓存与锁、 RocketMQ 消息队列,并引入 Flyway 数据库版本管理,同时补充项目文档与使用示例
229 lines
4.3 KiB
Java
229 lines
4.3 KiB
Java
package com.aisi.template.domain.vo;
|
||
|
||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||
|
||
import java.time.LocalDateTime;
|
||
import java.util.List;
|
||
|
||
/**
|
||
* 菜单视图对象
|
||
* 用于返回菜单信息给前端
|
||
*
|
||
* 主要字段:
|
||
* 1. 基本信息:菜单ID、父菜单ID、菜单名称、菜单类型
|
||
* 2. 菜单配置:路径、组件、图标、排序
|
||
* 3. 显示控制:可见性、启用状态
|
||
* 4. 权限控制:权限编码
|
||
* 5. 子菜单:子菜单列表(树形结构)
|
||
* 6. 时间信息:创建时间、更新时间
|
||
*
|
||
* @author Claude
|
||
* @since 2024-04-09
|
||
*/
|
||
public class MenuVo {
|
||
|
||
/**
|
||
* 菜单ID
|
||
*/
|
||
private Long id;
|
||
|
||
/**
|
||
* 父菜单ID
|
||
* - 0 或 null:根菜单
|
||
* - 其他值:子菜单
|
||
*/
|
||
private Long parentId;
|
||
|
||
/**
|
||
* 菜单名称
|
||
*/
|
||
private String menuName;
|
||
|
||
/**
|
||
* 菜单类型
|
||
* - 1:目录(DIRECTORY)
|
||
* - 2:菜单(MENU)
|
||
* - 3:按钮(BUTTON)
|
||
*/
|
||
private Integer menuType;
|
||
|
||
/**
|
||
* 菜单路径
|
||
* - 用于前端路由
|
||
*/
|
||
private String menuPath;
|
||
|
||
/**
|
||
* 组件路径
|
||
* - 前端组件文件路径
|
||
*/
|
||
private String component;
|
||
|
||
/**
|
||
* 菜单图标
|
||
* - 图标名称
|
||
*/
|
||
private String icon;
|
||
|
||
/**
|
||
* 排序字段
|
||
* - 数值越小越靠前
|
||
*/
|
||
private Integer sortOrder;
|
||
|
||
/**
|
||
* 可见性
|
||
* - 1:可见
|
||
* - 0:不可见
|
||
*/
|
||
private Integer visible;
|
||
|
||
/**
|
||
* 菜单状态
|
||
* - 1:启用
|
||
* - 0:禁用
|
||
*/
|
||
private Integer status;
|
||
|
||
/**
|
||
* 权限编码
|
||
* - 用于控制菜单的访问权限
|
||
*/
|
||
private String permissionCode;
|
||
|
||
/**
|
||
* 创建时间
|
||
*/
|
||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
|
||
private LocalDateTime createdAt;
|
||
|
||
/**
|
||
* 更新时间
|
||
*/
|
||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
|
||
private LocalDateTime updatedAt;
|
||
|
||
/**
|
||
* 子菜单列表
|
||
* - 用于构建菜单树形结构
|
||
* - 递归结构
|
||
*/
|
||
private List<MenuVo> children;
|
||
|
||
public MenuVo() {
|
||
}
|
||
|
||
// Getters and Setters
|
||
public Long getId() {
|
||
return id;
|
||
}
|
||
|
||
public void setId(Long id) {
|
||
this.id = id;
|
||
}
|
||
|
||
public Long getParentId() {
|
||
return parentId;
|
||
}
|
||
|
||
public void setParentId(Long parentId) {
|
||
this.parentId = parentId;
|
||
}
|
||
|
||
public String getMenuName() {
|
||
return menuName;
|
||
}
|
||
|
||
public void setMenuName(String menuName) {
|
||
this.menuName = menuName;
|
||
}
|
||
|
||
public Integer getMenuType() {
|
||
return menuType;
|
||
}
|
||
|
||
public void setMenuType(Integer menuType) {
|
||
this.menuType = menuType;
|
||
}
|
||
|
||
public String getMenuPath() {
|
||
return menuPath;
|
||
}
|
||
|
||
public void setMenuPath(String menuPath) {
|
||
this.menuPath = menuPath;
|
||
}
|
||
|
||
public String getComponent() {
|
||
return component;
|
||
}
|
||
|
||
public void setComponent(String component) {
|
||
this.component = component;
|
||
}
|
||
|
||
public String getIcon() {
|
||
return icon;
|
||
}
|
||
|
||
public void setIcon(String icon) {
|
||
this.icon = icon;
|
||
}
|
||
|
||
public Integer getSortOrder() {
|
||
return sortOrder;
|
||
}
|
||
|
||
public void setSortOrder(Integer sortOrder) {
|
||
this.sortOrder = sortOrder;
|
||
}
|
||
|
||
public Integer getVisible() {
|
||
return visible;
|
||
}
|
||
|
||
public void setVisible(Integer visible) {
|
||
this.visible = visible;
|
||
}
|
||
|
||
public Integer getStatus() {
|
||
return status;
|
||
}
|
||
|
||
public void setStatus(Integer status) {
|
||
this.status = status;
|
||
}
|
||
|
||
public String getPermissionCode() {
|
||
return permissionCode;
|
||
}
|
||
|
||
public void setPermissionCode(String permissionCode) {
|
||
this.permissionCode = permissionCode;
|
||
}
|
||
|
||
public LocalDateTime getCreatedAt() {
|
||
return createdAt;
|
||
}
|
||
|
||
public void setCreatedAt(LocalDateTime createdAt) {
|
||
this.createdAt = createdAt;
|
||
}
|
||
|
||
public LocalDateTime getUpdatedAt() {
|
||
return updatedAt;
|
||
}
|
||
|
||
public void setUpdatedAt(LocalDateTime updatedAt) {
|
||
this.updatedAt = updatedAt;
|
||
}
|
||
|
||
public List<MenuVo> getChildren() {
|
||
return children;
|
||
}
|
||
|
||
public void setChildren(List<MenuVo> children) {
|
||
this.children = children;
|
||
}
|
||
}
|