51 lines
1.2 KiB
Go
51 lines
1.2 KiB
Go
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 []*menuResponse.GetMenuList{}, 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
|
|
}
|