示例#1
0
        public void UpdateAuthenticationEmail(string authFrom, string userId, string email, string updateBy)
        {
            using (var biz = new GameBiz.Business.GameBizBusinessManagement())
            {
                biz.BeginTran();
                using (var manager = new BettingPointManager())
                {
                    var entity    = manager.GetUserEmail(userId);
                    var emailInfo = manager.GetEmailInfoByEmail(email);
                    if (entity == null)
                    {
                        throw new ArgumentException("此用户从未进行过实名认证");
                    }
                    if (emailInfo != null && emailInfo.UserId != userId)
                    {
                        if (!string.IsNullOrEmpty(emailInfo.Email) && emailInfo.IsSettedEmail)
                        {
                            throw new Exception("当前邮箱已被他人占用!");
                        }
                    }
                    entity.AuthFrom      = authFrom;
                    entity.Email         = email;
                    entity.UpdateBy      = updateBy;
                    entity.IsSettedEmail = true;

                    manager.UpdateUserEmail(entity);
                }
                biz.CommitTran();
            }
        }
示例#2
0
        public void RequestAuthenticationEmail(string userId, string email, int delaySeconds, string delayDescription, int maxRequestTime, string createBy)
        {
            #region
            //using (var biz = new GameBiz.Business.GameBizBusinessManagement())
            //{
            //    biz.BeginTran();
            //    using (var manager = new BettingPointManager())
            //    {
            //        var other = manager.GetOtherUserEmail(email, userId);
            //        if (other != null && other.IsSettedEmail)
            //        {
            //            throw new ArgumentException(string.Format("此邮箱【{0}】已被其他用户认证。", email));
            //        }
            //        var entity = manager.GetUserEmail(userId);
            //        if (entity != null)
            //        {
            //            if (entity.IsSettedEmail)
            //            {
            //                throw new ArgumentException(string.Format("已于【{0:yyyy-MM-dd HH:mm:ss}】进行过邮箱认证。", entity.UpdateTime));
            //            }
            //            if (entity.RequestTimes >= maxRequestTime)
            //            {
            //                throw new ArgumentException(string.Format("已请求最大限制次数【{0}】次还未成功认证,请联系客服。", maxRequestTime));
            //            }
            //            if (email != entity.Email)
            //            {
            //                var span = entity.UpdateTime.AddSeconds(delaySeconds) - DateTime.Now;
            //                if (span.TotalSeconds > 0)
            //                {
            //                    throw new ArgumentException(string.Format("换邮箱再次认证必须在【{0}】后进行。", delayDescription));
            //                }
            //            }
            //            entity.UpdateBy = createBy;
            //            entity.RequestTimes++;
            //            entity.Email = email;

            //            manager.UpdateUserEmail(entity);
            //        }
            //        else
            //        {
            //            entity = new UserEmail
            //            {
            //                UserId = userId,
            //                User = manager.LoadUser(userId),
            //                AuthFrom = "LOCAL",
            //                Email = email,
            //                IsSettedEmail = false,
            //                CreateBy = createBy,
            //                UpdateBy = createBy,
            //            };
            //            manager.AddUserEmail(entity);
            //        }
            //    }
            //    biz.CommitTran();
            //}
            #endregion

            using (var manager = new BettingPointManager())
            {
                var entity = manager.GetEmailInfoByEmail(email);
                if (entity != null && entity.IsSettedEmail)
                {
                    throw new ArgumentException(string.Format("此邮箱【{0}】已被其他用户认证。", email));
                }
                //var entity = manager.GetUserEmail(userId);
                if (entity != null)
                {
                    if (entity.IsSettedEmail)
                    {
                        throw new ArgumentException(string.Format("已于【{0:yyyy-MM-dd HH:mm:ss}】进行过邮箱认证。", entity.UpdateTime));
                    }
                    if (entity.RequestTimes >= maxRequestTime)
                    {
                        throw new ArgumentException(string.Format("已请求最大限制次数【{0}】次还未成功认证,请联系客服。", maxRequestTime));
                    }
                    if (email != entity.Email)
                    {
                        var span = entity.UpdateTime.AddSeconds(delaySeconds) - DateTime.Now;
                        if (span.TotalSeconds > 0)
                        {
                            throw new ArgumentException(string.Format("换邮箱再次认证必须在【{0}】后进行。", delayDescription));
                        }
                    }
                    entity.UpdateBy = createBy;
                    entity.RequestTimes++;
                    entity.Email = email;

                    manager.UpdateUserEmail(entity);
                }
                else
                {
                    entity = new UserEmail
                    {
                        UserId        = userId,
                        User          = manager.LoadUser(userId),
                        AuthFrom      = "LOCAL",
                        Email         = email,
                        IsSettedEmail = false,
                        CreateBy      = createBy,
                        UpdateBy      = createBy,
                    };
                    manager.AddUserEmail(entity);
                }
            }
        }