コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }