package eta_training_video import ( "hongze/hz_crm_api/models/eta_training_video" ) // GetClassifyTreeRecursive 递归菜单树 func GetClassifyTreeRecursive(list []*eta_training_video.EtaTrainingVideoClassifyItem, parentId int) []*eta_training_video.EtaTrainingVideoClassifyItem { res := make([]*eta_training_video.EtaTrainingVideoClassifyItem, 0) for _, v := range list { if v.ParentId == parentId { v.Children = GetClassifyTreeRecursive(list, v.ClassifyId) res = append(res, v) } } return res } // GetClassifyChildrenIdsRecursive 遍历子菜单IDs func GetClassifyChildrenIdsRecursive(list []*eta_training_video.EtaTrainingVideoClassify, parentId int) []int { res := make([]int, 0) for _, v := range list { if v.ParentId == parentId { ids := GetClassifyChildrenIdsRecursive(list, v.EtaTrainingVideoClassifyId) res = append(res, v.EtaTrainingVideoClassifyId) res = append(res, ids...) } } return res } // GetClassifyParentsRecursive 遍历子分类的所有父级分类 func GetClassifyParentsRecursive(list []*eta_training_video.EtaTrainingVideoClassify, parentId int) []*eta_training_video.EtaTrainingVideoClassify { res := make([]*eta_training_video.EtaTrainingVideoClassify, 0) for _, v := range list { if v.EtaTrainingVideoClassifyId == parentId { res = append(res, v) parents := make([]*eta_training_video.EtaTrainingVideoClassify, 0) if v.ParentId > 0 { parents = GetClassifyParentsRecursive(list, v.ParentId) } res = append(res, parents...) } } return res }