feat: 支持主列表选择每页条数 (#242)
This commit is contained in:
+10
-4
@@ -23,8 +23,14 @@ type UserListResult struct {
|
||||
TotalPages int
|
||||
}
|
||||
|
||||
// ListUsers 搜索并分页。用户页沿用全站统一的每页 20 条规则。
|
||||
// ListUsers 使用默认页容量搜索并分页。
|
||||
func ListUsers(db *sql.DB, actor *model.User, keyword string, status model.UserStatus, requestedPage int) (*UserListResult, error) {
|
||||
return ListUsersWithPageSize(db, actor, keyword, status, requestedPage, DefaultPageSize)
|
||||
}
|
||||
|
||||
// ListUsersWithPageSize 按白名单页容量搜索并分页。
|
||||
func ListUsersWithPageSize(db *sql.DB, actor *model.User, keyword string, status model.UserStatus, requestedPage, pageSize int) (*UserListResult, error) {
|
||||
pageSize = NormalizePageSize(pageSize)
|
||||
if actor == nil || !actor.IsAdmin() {
|
||||
return nil, ErrAdminRequired
|
||||
}
|
||||
@@ -36,15 +42,15 @@ func ListUsers(db *sql.DB, actor *model.User, keyword string, status model.UserS
|
||||
if page < 1 {
|
||||
page = 1
|
||||
}
|
||||
rows, total, err := repository.ListUsers(db, keyword, status, PageSize, (page-1)*PageSize)
|
||||
rows, total, err := repository.ListUsers(db, keyword, status, pageSize, (page-1)*pageSize)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
totalPages := TotalPages(total)
|
||||
totalPages := TotalPages(total, pageSize)
|
||||
clampedPage := ClampPage(page, totalPages)
|
||||
if clampedPage != page {
|
||||
page = clampedPage
|
||||
rows, _, err = repository.ListUsers(db, keyword, status, PageSize, (page-1)*PageSize)
|
||||
rows, _, err = repository.ListUsers(db, keyword, status, pageSize, (page-1)*pageSize)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user