https://www.itdaan.com/blog/2017/07/20/b9f11fc96541481358cc658cfe43036b.html
func (appc *AppCate) AppCateArr(pid int64) []*AppCateNode { apc := new([]*AppCate)
db.GetEngine().Where("parent_id=?", pid).Find(apc)
if apc == nil {
return nil
}
apc_node := []*AppCateNode{}
for _, v := range *apc {
chd := appc.AppCateArr(v.Id)
node := &AppCateNode{
Id: v.Id,
Name: v.Name,
}
node.Sub = chd
apc_node = append(apc_node, node)
}
return apc_node
}