Files
springboot-template/src/main/java/com/aisi/template/domain/vo/MenuVo.java
shenjianZ 40c85c3c1f feat: 实现完整的 RBAC 权限管理系统与基础设施增强
在初始认证基础上,新增完整的 RBAC 权限模型(角色、权限、菜单三级管理),
  集成审计日志、接口限流、登录失败锁定、Refresh Token 机制、Redis 分布式缓存与锁、
  RocketMQ 消息队列,并引入 Flyway 数据库版本管理,同时补充项目文档与使用示例
2026-04-10 10:58:22 +08:00

229 lines
4.3 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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;
}
}