package auth import ( "SciencesServer/app/api/model" model2 "SciencesServer/app/common/model" ) type ( // Tree 权限信息 Tree struct { *model2.SysAuth KindTitle string `json:"kind_title"` Children []*Tree `json:"children"` } // TreeRole 角色权限信息 TreeRole struct { *model2.SysAuth KindTitle string `json:"kind_title"` Checked bool `json:"checked"` Children []*TreeRole `json:"children"` } // TreeChecked 角色选中状态 TreeChecked struct { *model2.SysAuth 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{ SysAuth: v, KindTitle: v.KindTitle(), 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{ SysAuth: v.SysAuth, Checked: v.SceneID > 0, Children: TreeCheckedFunc(src, v.ID), }) } } return out }