mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 16:40:24 +08:00 
			
		
		
		
	improve FindProjects (#23085)
I found `FindAndCount` which can `Find` and `Count` in the same time Maybe it is better to use it in `FindProjects` --------- Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
This commit is contained in:
		@@ -217,16 +217,8 @@ func CountProjects(ctx context.Context, opts SearchOptions) (int64, error) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
// FindProjects returns a list of all projects that have been created in the repository
 | 
					// FindProjects returns a list of all projects that have been created in the repository
 | 
				
			||||||
func FindProjects(ctx context.Context, opts SearchOptions) ([]*Project, int64, error) {
 | 
					func FindProjects(ctx context.Context, opts SearchOptions) ([]*Project, int64, error) {
 | 
				
			||||||
	e := db.GetEngine(ctx)
 | 
						e := db.GetEngine(ctx).Where(opts.toConds())
 | 
				
			||||||
	projects := make([]*Project, 0, setting.UI.IssuePagingNum)
 | 
						projects := make([]*Project, 0, setting.UI.IssuePagingNum)
 | 
				
			||||||
	cond := opts.toConds()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	count, err := e.Where(cond).Count(new(Project))
 | 
					 | 
				
			||||||
	if err != nil {
 | 
					 | 
				
			||||||
		return nil, 0, fmt.Errorf("Count: %w", err)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	e = e.Where(cond)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if opts.Page > 0 {
 | 
						if opts.Page > 0 {
 | 
				
			||||||
		e = e.Limit(setting.UI.IssuePagingNum, (opts.Page-1)*setting.UI.IssuePagingNum)
 | 
							e = e.Limit(setting.UI.IssuePagingNum, (opts.Page-1)*setting.UI.IssuePagingNum)
 | 
				
			||||||
@@ -243,7 +235,8 @@ func FindProjects(ctx context.Context, opts SearchOptions) ([]*Project, int64, e
 | 
				
			|||||||
		e.Asc("created_unix")
 | 
							e.Asc("created_unix")
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return projects, count, e.Find(&projects)
 | 
						count, err := e.FindAndCount(&projects)
 | 
				
			||||||
 | 
						return projects, count, err
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// NewProject creates a new Project
 | 
					// NewProject creates a new Project
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user