package service import ( "hospital-admin-api/api/dao" "hospital-admin-api/api/responses/menuResponse" ) type MenuService struct{} // GetMenuList 获取菜单列表 func (r *MenuService) GetMenuList() ([]*menuResponse.GetMenuList, error) { // 获取全部菜单 AdminMenuDao := dao.AdminMenuDao{} adminMenu, _ := AdminMenuDao.GetAdminMenuListSortOrderNum() if adminMenu == nil { return nil, nil } menuMap := make(map[int64]*menuResponse.GetMenuList) var menuTree []*menuResponse.GetMenuList for _, menu := range adminMenu { node := &menuResponse.GetMenuList{ MenuId: menu.MenuId, MenuName: menu.MenuName, MenuTitle: menu.MenuTitle, ParentId: menu.ParentId, MenuStatus: menu.MenuStatus, MenuType: menu.MenuType, Permission: menu.Permission, OrderNum: menu.OrderNum, Icon: menu.Icon, Path: menu.Path, Component: menu.Component, Children: nil, } menuMap[menu.MenuId] = node } // 构建菜单树 for _, menu := range adminMenu { if menu.ParentId == 0 { menuTree = append(menuTree, menuMap[menu.MenuId]) } else if parent, ok := menuMap[menu.ParentId]; ok { parent.Children = append(parent.Children, menuMap[menu.MenuId]) } } return menuTree, nil }