12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- package eta_business
- import (
- "hongze/hz_crm_api/models/eta_business"
- )
- // GetMenuTreeRecursive 递归菜单树
- func GetMenuTreeRecursive(list []*eta_business.EtaBusinessMenuItem, parentId int) []*eta_business.EtaBusinessMenuItem {
- res := make([]*eta_business.EtaBusinessMenuItem, 0)
- for _, v := range list {
- if v.ParentId == parentId {
- v.Children = GetMenuTreeRecursive(list, v.MenuId)
- res = append(res, v)
- }
- }
- return res
- }
- // GetMenuChildrenIdsRecursive 遍历子菜单IDs
- func GetMenuChildrenIdsRecursive(list []*eta_business.EtaBusinessMenu, parentId int) []int {
- res := make([]int, 0)
- for _, v := range list {
- if v.ParentId == parentId {
- ids := GetMenuChildrenIdsRecursive(list, v.MenuId)
- res = append(res, v.MenuId)
- res = append(res, ids...)
- }
- }
- return res
- }
- // GetMenuParentsRecursive 遍历子菜单的所有父级菜单
- func GetMenuParentsRecursive(list []*eta_business.EtaBusinessMenu, parentId int) []*eta_business.EtaBusinessMenu {
- res := make([]*eta_business.EtaBusinessMenu, 0)
- for _, v := range list {
- if v.MenuId == parentId {
- res = append(res, v)
- parents := make([]*eta_business.EtaBusinessMenu, 0)
- if v.ParentId > 0 {
- parents = GetMenuParentsRecursive(list, v.ParentId)
- }
- res = append(res, parents...)
- }
- }
- return res
- }
|