本文整理汇总了Golang中github.com/varding/wetalk/modules/models.User.FollowingUsers方法的典型用法代码示例。如果您正苦于以下问题:Golang User.FollowingUsers方法的具体用法?Golang User.FollowingUsers怎么用?Golang User.FollowingUsers使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/varding/wetalk/modules/models.User
的用法示例。
在下文中一共展示了User.FollowingUsers方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: UserFollow
func UserFollow(user *models.User, theUser *models.User) {
if theUser.Read() == nil {
var mutual bool
tFollow := models.Follow{User: theUser, FollowUser: user}
if err := tFollow.Read("User", "FollowUser"); err == nil {
mutual = true
}
follow := models.Follow{User: user, FollowUser: theUser, Mutual: mutual}
if err := follow.Insert(); err == nil && mutual {
tFollow.Mutual = mutual
tFollow.Update("Mutual")
}
if nums, err := user.FollowingUsers().Count(); err == nil {
user.Following = int(nums)
user.Update("Following")
}
if nums, err := theUser.FollowerUsers().Count(); err == nil {
theUser.Followers = int(nums)
theUser.Update("Followers")
}
}
}
示例2: UserUnFollow
func UserUnFollow(user *models.User, theUser *models.User) {
num, _ := user.FollowingUsers().Filter("FollowUser", theUser.Id).Delete()
if num > 0 {
theUser.FollowingUsers().Filter("FollowUser", user.Id).Update(orm.Params{
"Mutual": false,
})
if nums, err := user.FollowingUsers().Count(); err == nil {
user.Following = int(nums)
user.Update("Following")
}
if nums, err := theUser.FollowerUsers().Count(); err == nil {
theUser.Followers = int(nums)
theUser.Update("Followers")
}
}
}
示例3: getFollows
func (this *UserRouter) getFollows(user *models.User, following bool) []map[string]interface{} {
limit := 20
var qs orm.QuerySeter
if following {
qs = user.FollowingUsers()
} else {
qs = user.FollowerUsers()
}
nums, _ := qs.Count()
pager := this.SetPaginator(limit, nums)
qs = qs.Limit(limit, pager.Offset())
var follows []*models.Follow
if following {
qs.RelatedSel("FollowUser").All(&follows, "FollowUser")
} else {
qs.RelatedSel("User").All(&follows, "User")
}
if len(follows) == 0 {
return nil
}
ids := make([]int, 0, len(follows))
for _, follow := range follows {
if following {
ids = append(ids, follow.FollowUser.Id)
} else {
ids = append(ids, follow.User.Id)
}
}
var eids orm.ParamsList
this.User.FollowingUsers().Filter("FollowUser__in", ids).ValuesFlat(&eids, "FollowUser__Id")
var fids map[int]bool
if len(eids) > 0 {
fids = make(map[int]bool)
for _, id := range eids {
tid, _ := utils.StrTo(utils.ToStr(id)).Int()
if tid > 0 {
fids[tid] = true
}
}
}
users := make([]map[string]interface{}, 0, len(follows))
for _, follow := range follows {
IsFollowed := false
var u *models.User
if following {
u = follow.FollowUser
} else {
u = follow.User
}
if fids != nil {
IsFollowed = fids[u.Id]
}
users = append(users, map[string]interface{}{
"User": u,
"IsFollowed": IsFollowed,
})
}
return users
}