/// <summary> /// 添加会员 /// 规则1:如果是后台添加的会员,不设置注册IP,注册设备 /// </summary> /// <param name="user"></param> /// <param name="inviteCode">邀请码(可以是会员也可以是代理的邀请码)|手动创建账号不需要填邀请码,但是需要指定AgentID</param> /// <returns></returns> protected bool AddUser(Site site, User user, string inviteCode, Language language = Language.CHN) { if (!WebAgent.IsUserName(user.UserName, 2, 16)) { return(this.FaildMessage("用户名格式错误", language)); } int userId = this.GetUserID(user.SiteID, user.UserName); if (userId != 0) { return(this.FaildMessage("用户名已存在", language)); } if (!string.IsNullOrEmpty(inviteCode)) { UserInvite invite = this.GetInviteInfo(site.ID, inviteCode); if (invite == null) { return(this.FaildMessage("邀请码错误", language)); } User inviteUser = this.GetUserInfo(site.ID, invite.UserID); if (inviteUser.Type == User.UserType.Member) { user.AgentID = inviteUser.AgentID; } else { user.AgentID = invite.UserID; } } // 上级 if (user.AgentID != 0) { User parent = this.GetUserInfo(site.ID, user.AgentID); if (parent == null) { return(this.FaildMessage("上级错误", language)); } switch (parent.Type) { case User.UserType.Partner: user.Type = User.UserType.Agent; break; case User.UserType.Agent: user.Type = User.UserType.Broker; break; case User.UserType.Broker: user.Type = User.UserType.Member; break; } } else { // 股东账号 user.Type = User.UserType.Partner; } #region ======== 默认值设定 ======== user.SiteID = site.ID; user.CreateAt = DateTime.Now; user.Currency = site.Currency; user.Language = site.Language; UserDetail detail = new UserDetail(); #endregion using (DbExecutor db = NewExecutor(IsolationLevel.ReadUncommitted)) { user.AddIdentity(db); detail.UserID = user.ID; detail.Add(db); db.ExecuteNonQuery(new usr_CreateDepth(user.SiteID, user.AgentID, user.ID)); // 邀请码注册人数增加 if (!string.IsNullOrEmpty(inviteCode)) { db.UpdatePlus(new UserInvite() { Member = 1 }, t => t.SiteID == site.ID && t.ID == inviteCode); } db.Commit(); } return(true); }