// Team ...
type Team struct {
//Core
ID int64 `json:"id,string" db:"id"`
ClusterID int64 `json:"clusterId,string" db:"cluster_id"`
ParentID int64 `json:"parentId,string" db:"parent_id"`
CreatedAt int64 `json:"createdAt,string" db:"created_at"`
UpdatedAt int64 `json:"updatedAt,string" db:"updated_at"`
Creator int64 `json:"creator,string" db:"creator"`
Updator int64 `json:"updator,string" db:"updator"`
SyncVersion int64 `json:"syncVersion,string" db:"sync_version"`
SourceID int64 `json:"sourceId,string" db:"source_id"`
SyncClusterID int64 `json:"syncClusterId,string" db:"sync_cluster_id"`
SyncFlag int32 `json:"syncFlag,string" db:"sync_flag"`
TeamType int32 `json:"teamType,string" db:"team_type"`
SourceType int32 `json:"sourceType,string" db:"source_type"`
Sequence int32 `json:"sequence,string" db:"sequence"`
Root bool `json:"root"`
Name string `json:"name" db:"name"`
Description string `json:"description" db:"description"`
}
// ListToTree ...
func ListToTree(stack map[int64]*Team, teams []*Team, parent int64, depth, target int) map[int64]*Team {
if len(stack) == 0 {
stack = make(map[int64]*api.Team)
}
for _, r := range teams {
if r.ParentID == parent {
if depth == target {
stack[r.ID] = r
}
result := ListToTree(stack, teams, r.ID, depth+1, target)
for k := range result {
stack[k] = result[k]
}
}
}
return stack
}