package projecttree import ( "context" "git.x2erp.com/qdy/go-base/ctx" "git.x2erp.com/qdy/go-base/logger" "git.x2erp.com/qdy/go-base/model/response" "git.x2erp.com/qdy/go-base/util" "git.x2erp.com/qdy/go-db/factory/database" ) // TreeNode 树节点结构 type TreeNode struct { ID string `json:"id"` Name string `json:"name"` Icon string `json:"icon,omitempty"` Type string `json:"type"` // root, category, project, agent, skill, tenant, role, user Route string `json:"route,omitempty"` Children []TreeNode `json:"children,omitempty"` Data map[string]interface{} `json:"data,omitempty"` // 额外数据 } // GetProjectTree 获取项目树结构 func GetProjectTree(ctx context.Context, dbFactory *database.DBFactory, reqCtx *ctx.RequestContext) *response.QueryResult[[]TreeNode] { logger.Debug("GetProjectTree-开始获取项目树") // 构建分组树节点 tree := []TreeNode{ { ID: "home", Name: "首页", Icon: "home", Type: "group", Children: []TreeNode{ { ID: "readme", Name: "说明", Icon: "document", Type: "page", Route: "/home/readme", }, }, }, { ID: "service-group", Name: "服务", Icon: "cpu", Type: "group", Children: []TreeNode{ { ID: "service-register", Name: "注册服务配置", Icon: "setting", Type: "page", Route: "/service/register-config", }, { ID: "service-management", Name: "微服务管理", Icon: "cpu", Type: "page", Route: "/service/management", }, { ID: "service-config", Name: "微服务配置管理", Icon: "setting", Type: "page", Route: "/service/config-management", }, { ID: "boot-config", Name: "微服务启动配置管理", Icon: "setting", Type: "page", Route: "/service/boot-config", }, }, }, { ID: "user-group", Name: "项目", Icon: "user", Type: "group", Children: []TreeNode{ { ID: "project", Name: "项目管理", Icon: "project", Type: "page", Route: "/project/list", }, { ID: "project", Name: "Agent", Icon: "project", Type: "page", Route: "/agent/list", }, { ID: "project", Name: "Skill", Icon: "project", Type: "page", Route: "/skill/list", }, }, }, { ID: "tenant-group", Name: "租户管理", Icon: "tenant", Type: "group", Children: []TreeNode{ { ID: "tenant-management", Name: "租户管理", Icon: "tenant", Type: "page", Route: "/tenant/list", }, { ID: "role-management", Name: "角色管理", Icon: "role", Type: "page", Route: "/role/list", }, { ID: "user-management", Name: "用户管理", Icon: "user", Type: "page", Route: "/user/list", }, }, }, } logger.Debug("返回项目树结构") return util.CreateSuccessResultData(tree, reqCtx) }