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 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 getChildren() { return children; } public void setChildren(List children) { this.children = children; } }