mirror of
				https://github.com/songquanpeng/one-api.git
				synced 2025-11-04 07:43:41 +08:00 
			
		
		
		
	feat: add user list sorting and pagination enhancements (#1178)
* feat: add user list sorting and pagination enhancements * feat: add user list sorting for THEME=air * feat: add token list sorting and pagination enhancements * feat: add token list sorting for THEME=air
This commit is contained in:
		@@ -25,10 +25,21 @@ type Token struct {
 | 
			
		||||
	UsedQuota      int64  `json:"used_quota" gorm:"bigint;default:0"` // used quota
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func GetAllUserTokens(userId int, startIdx int, num int) ([]*Token, error) {
 | 
			
		||||
func GetAllUserTokens(userId int, startIdx int, num int, order string) ([]*Token, error) {
 | 
			
		||||
	var tokens []*Token
 | 
			
		||||
	var err error
 | 
			
		||||
	err = DB.Where("user_id = ?", userId).Order("id desc").Limit(num).Offset(startIdx).Find(&tokens).Error
 | 
			
		||||
	query := DB.Where("user_id = ?", userId)
 | 
			
		||||
	
 | 
			
		||||
	switch order {
 | 
			
		||||
	case "remain_quota":
 | 
			
		||||
		query = query.Order("unlimited_quota desc, remain_quota desc")
 | 
			
		||||
	case "used_quota":
 | 
			
		||||
		query = query.Order("used_quota desc")
 | 
			
		||||
	default:
 | 
			
		||||
		query = query.Order("id desc")
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	err = query.Limit(num).Offset(startIdx).Find(&tokens).Error
 | 
			
		||||
	return tokens, err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -40,9 +40,22 @@ func GetMaxUserId() int {
 | 
			
		||||
	return user.Id
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func GetAllUsers(startIdx int, num int) (users []*User, err error) {
 | 
			
		||||
	err = DB.Order("id desc").Limit(num).Offset(startIdx).Omit("password").Where("status != ?", common.UserStatusDeleted).Find(&users).Error
 | 
			
		||||
	return users, err
 | 
			
		||||
func GetAllUsers(startIdx int, num int, order string) (users []*User, err error) {
 | 
			
		||||
    query := DB.Limit(num).Offset(startIdx).Omit("password").Where("status != ?", common.UserStatusDeleted)
 | 
			
		||||
    
 | 
			
		||||
    switch order {
 | 
			
		||||
    case "quota":
 | 
			
		||||
        query = query.Order("quota desc")
 | 
			
		||||
    case "used_quota":
 | 
			
		||||
        query = query.Order("used_quota desc")
 | 
			
		||||
    case "request_count":
 | 
			
		||||
        query = query.Order("request_count desc")
 | 
			
		||||
    default:
 | 
			
		||||
        query = query.Order("id desc")
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    err = query.Find(&users).Error
 | 
			
		||||
    return users, err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func SearchUsers(keyword string) (users []*User, err error) {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user