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(); } }
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); } } }