@ -598,15 +598,29 @@ func (org *User) GetUserRepositories(userID int64, page, pageSize int) ([]*Repos
if page <= 0 {
if page <= 0 {
page = 1
page = 1
}
}
repos := make ( [ ] * Repository , 0 , pageSize )
repos := make ( [ ] * Repository , 0 , pageSize )
if err := x . Select ( "`repository`.*" ) .
if err := x .
Select ( "`repository`.id" ) .
Join ( "INNER" , "team_repo" , "`team_repo`.repo_id=`repository`.id" ) .
Join ( "INNER" , "team_repo" , "`team_repo`.repo_id=`repository`.id" ) .
Where ( cond ) .
Where ( cond ) .
GroupBy ( "`repository`.id" ) .
GroupBy ( "`repository`.id,`repository`.updated_unix " ) .
OrderBy ( "updated_unix DESC" ) .
OrderBy ( "updated_unix DESC" ) .
Limit ( pageSize , ( page - 1 ) * pageSize ) .
Limit ( pageSize , ( page - 1 ) * pageSize ) .
Find ( & repos ) ; err != nil {
Find ( & repos ) ; err != nil {
return nil , 0 , fmt . Errorf ( "get repository ids: %v" , err )
}
repoIDs := make ( [ ] int64 , pageSize )
for i := range repos {
repoIDs [ i ] = repos [ i ] . ID
}
if err := x .
Select ( "`repository`.*" ) .
Where ( builder . In ( "`repository`.id" , repoIDs ) ) .
Find ( & repos ) ; err != nil {
return nil , 0 , fmt . Errorf ( "get repositories: %v" , err )
return nil , 0 , fmt . Errorf ( "get repositories: %v" , err )
}
}