package auth import ( "SciencesServer/app/api/admin/model" model2 "SciencesServer/app/common/model" ) type ( // Tree 权限信息 Tree struct { ID string `json:"id"` *model2.SysAuth Children []*Tree `json:"children"` } // TreeChecked 角色选中状态 TreeChecked struct { ID string `json:"id"` *model.SysAuthScene Checked bool `json:"checked"` Children []*TreeChecked `json:"children"` } ) // tree 树状筛选 func tree(src []*model2.SysAuth, parentID uint64) []*Tree { out := make([]*Tree, 0) for _, v := range src { if v.ParentID == parentID { out = append(out, &Tree{ ID: v.GetEncodeID(), SysAuth: v, Children: tree(src, v.ID), }) } } return out } // TreeCheckedFunc 树状筛选 func TreeCheckedFunc(src []*model.SysAuthScene, parentID uint64) []*TreeChecked { out := make([]*TreeChecked, 0) for _, v := range src { if v.ParentID == parentID { out = append(out, &TreeChecked{ ID: v.GetEncodeID(), SysAuthScene: v, Checked: v.SceneID > 0, Children: TreeCheckedFunc(src, v.ID), }) } } return out }