From c832f0eef7a114bc2ee4fae22b959a9ed90e2a18 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Wed, 7 Aug 2019 12:22:41 +0800 Subject: [PATCH] Fix approvals counting (#7757) * fix approvals counting * fix tests * fmt --- models/org_team.go | 9 ++++++--- models/org_team_test.go | 6 +++--- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/models/org_team.go b/models/org_team.go index 1786376d02c..799716679c4 100644 --- a/models/org_team.go +++ b/models/org_team.go @@ -760,11 +760,14 @@ func IsUserInTeams(userID int64, teamIDs []int64) (bool, error) { } // UsersInTeamsCount counts the number of users which are in userIDs and teamIDs -func UsersInTeamsCount(userIDs []int64, teamIDs []int64) (count int64, err error) { - if count, err = x.In("uid", userIDs).In("team_id", teamIDs).Count(new(TeamUser)); err != nil { +func UsersInTeamsCount(userIDs []int64, teamIDs []int64) (int64, error) { + var ids []int64 + if err := x.In("uid", userIDs).In("team_id", teamIDs). + Table("team_user"). + Cols("uid").GroupBy("uid").Find(&ids); err != nil { return 0, err } - return + return int64(len(ids)), nil } // ___________ __________ diff --git a/models/org_team_test.go b/models/org_team_test.go index a81f9c07497..06ab4637d8c 100644 --- a/models/org_team_test.go +++ b/models/org_team_test.go @@ -370,7 +370,7 @@ func TestUsersInTeamsCount(t *testing.T) { assert.Equal(t, expected, count) } - test([]int64{2}, []int64{1, 2, 3, 4}, 2) - test([]int64{1, 2, 3, 4, 5}, []int64{2, 5}, 2) - test([]int64{1, 2, 3, 4, 5}, []int64{2, 3, 5}, 3) + test([]int64{2}, []int64{1, 2, 3, 4}, 1) // only userid 2 + test([]int64{1, 2, 3, 4, 5}, []int64{2, 5}, 2) // userid 2,4 + test([]int64{1, 2, 3, 4, 5}, []int64{2, 3, 5}, 3) // userid 2,4,5 }