public int TelCodeGet(int cserverID, int czoneID, int croleID, string tel) { int result; if (!this.IsAgent(cserverID)) { result = -5; } else { KFSpreadKey ckey = KFSpreadKey.Get(czoneID, croleID); KFSpreadVerifyData verifyData = null; if (!this._spreadVerifyDataDic.TryGetValue(ckey, out verifyData)) { result = -10; } else { bool isTelBind = SpreadPersistence.Instance.DBSpreadTelBind(tel); if (isTelBind) { result = -32; } else { KFSpreadTelTotal totalData = this.GetTelTotalData(tel, true); if (totalData.IsStop) { result = -36; } else { KFSpreadRoleTotal roleTotalData = this.GetRoleTotalData(cserverID, czoneID, croleID, true); if (roleTotalData.IsStop) { result = -16; } else { verifyData.Tel = tel; verifyData.TelCode = this.GetTelCodeRandom(); verifyData.TelTime = TimeUtil.NowDateTime(); if (!SpreadPersistence.Instance.DBSpreadTelCodeAdd(verifyData.PZoneID, verifyData.PRoleID, czoneID, croleID, tel, verifyData.TelCode)) { result = -33; } else { result = 1; } } } } } } return(result); }
public int TelCodeGet(int cserverID, int czoneID, int croleID, string tel) { if (!IsAgent(cserverID)) { return((int)ESpreadState.EServer); } KFSpreadKey ckey = KFSpreadKey.Get(czoneID, croleID); KFSpreadVerifyData verifyData = null; if (!_spreadVerifyDataDic.TryGetValue(ckey, out verifyData)) { return((int)ESpreadState.EVerifyNo); } //手机号绑定 bool isTelBind = SpreadPersistence.Instance.DBSpreadTelBind(tel); if (isTelBind) { return((int)ESpreadState.ETelBind); } //手机验证统计 KFSpreadTelTotal totalData = GetTelTotalData(tel, true); if (totalData.IsStop) { return((int)ESpreadState.ETelMore); } //角色验证统计 KFSpreadRoleTotal roleTotalData = GetRoleTotalData(cserverID, czoneID, croleID, true); if (roleTotalData.IsStop) { return((int)ESpreadState.EVerifyMore); } verifyData.Tel = tel; verifyData.TelCode = GetTelCodeRandom(); verifyData.TelTime = DateTime.Now; bool result = SpreadPersistence.Instance.DBSpreadTelCodeAdd(verifyData.PZoneID, verifyData.PRoleID, czoneID, croleID, tel, verifyData.TelCode); if (!result) { return((int)ESpreadState.ETelCodeGet); } return((int)ESpreadState.Success); }
private KFSpreadTelTotal GetTelTotalData(string tel, bool isAddCount = false) { KFSpreadTelTotal data = null; if (!_telTotalDic.TryGetValue(tel, out data)) { data = new KFSpreadTelTotal() { Tel = tel, }; _telTotalDic.TryAdd(tel, data); } int spanSecond = TimeSpanSecond(data.LogTime, DateTime.Now); if (data.IsStop) { if (spanSecond > Consts.TelTimeStop) { data.LogTime = DateTime.Now; data.Count = 0; data.IsStop = false; } return(data); } if (spanSecond > Consts.TelTimeLimit) { data.LogTime = DateTime.Now; data.Count = 0; } if (isAddCount) { data.AddCount(); } if (data.Count > Consts.TelMaxCount) { data.IsStop = true; } return(data); }
private KFSpreadTelTotal GetTelTotalData(string tel, bool isAddCount = false) { KFSpreadTelTotal data = null; if (!this._telTotalDic.TryGetValue(tel, out data)) { data = new KFSpreadTelTotal { Tel = tel }; this._telTotalDic.TryAdd(tel, data); } int spanSecond = this.TimeSpanSecond(data.LogTime, TimeUtil.NowDateTime()); KFSpreadTelTotal result; if (data.IsStop) { if (spanSecond > Consts.TelTimeStop) { data.LogTime = TimeUtil.NowDateTime(); data.Count = 0; data.IsStop = false; } result = data; } else { if (spanSecond > Consts.TelTimeLimit) { data.LogTime = TimeUtil.NowDateTime(); data.Count = 0; } if (isAddCount) { data.AddCount(); } if (data.Count > Consts.TelMaxCount) { data.IsStop = true; } result = data; } return(result); }