using System;
using System.Collections.Generic;
using System.Linq;
using Server.DB.Redis;
using System.Text;
using StackExchange.Redis;
using MrWu.Debug;
namespace GameDAL {
///
/// 竞技比赛的 禁止玩家游玩
///
public class ClubBankPlayerInGame {
public const int DbIdx = 6;
private ClubBankPlayerInGame() { }
static ClubBankPlayerInGame() {
instance = new ClubBankPlayerInGame();
}
public static ClubBankPlayerInGame instance {
get;
private set;
}
///
/// 数据库单项操作
///
public IDatabaseProxy dbp {
get {
return redisManager.Getdb(DbIdx);
}
}
///
/// 数据库操作
///
public IDatabase db {
get {
return redisManager.GetDataBase(DbStyle.main, DbIdx);
}
}
/*
* 数据结构
*
* ClubBankPlayers:clubid [243633,243663]
* ClubBankPlayers:clubid [243634,246338]
*
* */
public const string baseKey = "ClubBankPlayers";
///
/// 获取竞技比赛的 禁止同桌 所有集合的 key
///
///
///
public string GetClubBankKey(int clubid) {
return $"{baseKey}:{clubid}";
}
public List GetAll(int clubId)
{
string key = GetClubBankKey(clubId);
var values = dbp.SetMembers(key);
var ret = values.Select(x=>int.Parse(x)).ToList();
return ret;
}
///
/// 添加一个禁止游玩的玩家 (过期时间一年)
///
/// 竞技比赛id
/// 用户id
///
public bool Add(int clubId, int userId) {
string key = GetClubBankKey(clubId);
var isSuccess = dbp.SetAdd(key, userId);
db.KeyExpire(key, TimeSpan.FromDays(365));
return isSuccess;
}
///
/// 移除玩家限制
/// 竞技比赛id
/// 用户id
///
public bool Remove(int clubId, int userId) {
string key = GetClubBankKey(clubId);
var isSuccess = dbp.SetRemove(key, userId);
db.KeyExpire(key, TimeSpan.FromDays(365));
return isSuccess;
}
///
/// 移除
///
public bool Remove(int clubId) {
string key = GetClubBankKey(clubId);
var isSuccess = dbp.KeyDelete(key);
return isSuccess;
}
///
/// 是否包含玩家
/// 竞技比赛id
/// 用户id
///
public bool Contains(int clubId, int userId) {
string key = GetClubBankKey(clubId);
return dbp.SetContains(key, userId);
}
}
}