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