|
|
@@ -120,6 +120,80 @@ func (p PublicPlatoonUserRelationDb) PublicPlatoonUserRelationFindByParamsByPage |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
func (p PublicPlatoonUserRelationDb) agPublicPlatoonUserRelationGet(phone int, uid int64, inviteCode string) (mm *[]model.PublicPlatoonUserRelation, err error) { |
|
|
|
return |
|
|
|
func (p PublicPlatoonUserRelationDb) PublicPlatoonUserRelationFind(uid int64) ([]*model.PublicPlatoonUserRelation, error) { |
|
|
|
var head model.PublicPlatoonUserRelation |
|
|
|
if uid != 0 { |
|
|
|
has, err1 := p.Db.Where("uid = ?", uid).Get(&head) |
|
|
|
if err1 != nil { |
|
|
|
return nil, zhios_order_relate_logx.Error(err1) |
|
|
|
} |
|
|
|
if has == false { |
|
|
|
return nil, zhios_order_relate_logx.Error("未查询到数据") |
|
|
|
} |
|
|
|
} else { |
|
|
|
has, err2 := p.Db.Where("level1 = ?", 1).Get(&head) |
|
|
|
if err2 != nil { |
|
|
|
return nil, err2 |
|
|
|
} |
|
|
|
if has == false { |
|
|
|
return nil, zhios_order_relate_logx.Error("未查询到数据") |
|
|
|
} |
|
|
|
} |
|
|
|
relations, err3 := p.GetTreeBySmall(&head, 3) |
|
|
|
if err3 != nil { |
|
|
|
return nil, err3 |
|
|
|
} |
|
|
|
return relations, nil |
|
|
|
} |
|
|
|
|
|
|
|
func (p PublicPlatoonUserRelationDb) PublicPlatoonUserRelationFindByUid(uid int64) ([]*model.PublicPlatoonUserRelation, error) { |
|
|
|
var head model.PublicPlatoonUserRelation |
|
|
|
has, err1 := p.Db.Where("uid = ?", uid).Get(&head) |
|
|
|
if err1 != nil { |
|
|
|
return nil, zhios_order_relate_logx.Error(err1) |
|
|
|
} |
|
|
|
if has == false { |
|
|
|
return nil, zhios_order_relate_logx.Error("未查询到数据") |
|
|
|
} |
|
|
|
relations, err3 := p.GetTreeBySmall(&head, 0) |
|
|
|
if err3 != nil { |
|
|
|
return nil, err3 |
|
|
|
} |
|
|
|
return relations, nil |
|
|
|
} |
|
|
|
|
|
|
|
func (p PublicPlatoonUserRelationDb) PublicPlatoonUserRelationGetOneByUid(uid int64) (*model.PublicPlatoonUserRelation, error) { |
|
|
|
var parent model.PublicPlatoonUserRelation |
|
|
|
has, err := p.Db.Where("uid = ?", uid).Get(&parent) |
|
|
|
if err != nil { |
|
|
|
return nil, zhios_order_relate_logx.Error(err) |
|
|
|
} |
|
|
|
if has == false { |
|
|
|
return nil, zhios_order_relate_logx.Error("未查询到上级用户公排记录") |
|
|
|
} |
|
|
|
return &parent, nil |
|
|
|
} |
|
|
|
|
|
|
|
func (p PublicPlatoonUserRelationDb) GetTreeBySmall(head *model.PublicPlatoonUserRelation, leveLimit int) ([]*model.PublicPlatoonUserRelation, error) { |
|
|
|
if leveLimit == 0 { |
|
|
|
leveLimit = 1 |
|
|
|
} |
|
|
|
var res []*model.PublicPlatoonUserRelation |
|
|
|
var queue []*model.PublicPlatoonUserRelation |
|
|
|
queue = append(queue, head) |
|
|
|
for len(queue) > 0 { |
|
|
|
node := queue[0] |
|
|
|
queue = queue[1:] |
|
|
|
if node.Level1 > head.Level1+leveLimit { |
|
|
|
break |
|
|
|
} |
|
|
|
res = append(res, node) |
|
|
|
var son []*model.PublicPlatoonUserRelation |
|
|
|
err1 := p.Db.Where("father_uid1 = ?", node.Uid).Find(son) |
|
|
|
if err1 != nil { |
|
|
|
return nil, zhios_order_relate_logx.Error(err1) |
|
|
|
} |
|
|
|
res = append(res, son...) |
|
|
|
} |
|
|
|
return res, nil |
|
|
|
} |