namespace WIDESEAWCS_RedisService.Leaderboard
|
{
|
public interface ILeaderboardService
|
{
|
/// <summary>
|
/// 添加或更新成员分数
|
/// </summary>
|
bool AddOrUpdate(string boardName, string member, double score);
|
|
/// <summary>
|
/// 增加成员分数
|
/// </summary>
|
double IncrementScore(string boardName, string member, double increment);
|
|
/// <summary>
|
/// 获取排名(从高到低,0开始)
|
/// </summary>
|
long? GetRank(string boardName, string member);
|
|
/// <summary>
|
/// 获取成员分数
|
/// </summary>
|
double? GetScore(string boardName, string member);
|
|
/// <summary>
|
/// 获取排行榜(从高到低)
|
/// </summary>
|
List<LeaderboardEntry> GetTopN(string boardName, int count);
|
|
/// <summary>
|
/// 获取指定排名范围
|
/// </summary>
|
List<LeaderboardEntry> GetRange(string boardName, long start, long stop);
|
|
/// <summary>
|
/// 移除成员
|
/// </summary>
|
bool Remove(string boardName, string member);
|
|
/// <summary>
|
/// 获取排行榜总人数
|
/// </summary>
|
long GetCount(string boardName);
|
}
|
|
public class LeaderboardEntry
|
{
|
public string Member { get; set; } = string.Empty;
|
public double Score { get; set; }
|
public long Rank { get; set; }
|
}
|
}
|