package main
type Depart struct {
ID uint `json:"id"`
ParentID uint `json:"parent_id"`
Name string `json:"name"`
Level int `son:"level"`
Children []*Depart `json:"children"`
}
func main() {
var list, data []*Depart
//从数据库查询数据
//sql := c.Db.Model(&rbac.PermissionModel{})
//err = sql.Where("system_code = ?", params.SystemCode).Find(&list).Error
//if err != nil {
// return
//}
//切片转map
listMap := make(map[uint]*Depart, len(list))
for _, v := range list {
listMap[v.ID] = v
}
//分类数据处理
for _, v := range listMap {
if v.ParentID == 0 {
data = append(data, v)
} else {
v.Level = listMap[v.ParentID].Level + 1
listMap[v.ParentID].Children = append(listMap[v.ParentID].Children, v)
}
}
return
}
02-14
1346
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
01-15
476
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
06-01
608
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
05-17
497
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)