Exemplo n.º 1
0
        /// <summary>
        /// 收入 --添加用户成长值
        /// 返回用户vip等级
        /// </summary>
        public int Payin_UserGrowth(string category, string orderId, string userId, int userGrowth, string summary)
        {
            if (userGrowth <= 0)
            {
                return(0);
            }

            var balanceManager = new LocalLoginBusiness();
            //var fundManager = new FundManager();
            var user                  = balanceManager.GetRegisterById(userId);
            var userBalance           = balanceManager.QueryUserBalanceInfo(userId);
            var Fund_UserGrowthDetail = new C_Fund_UserGrowthDetail()
            {
                OrderId       = orderId,
                UserId        = userId,
                Category      = category,
                CreateTime    = DateTime.Now,
                BeforeBalance = userBalance.UserGrowth,
                PayMoney      = userGrowth,
                PayType       = (int)PayType.Payin,
                Summary       = summary,
                AfterBalance  = userBalance.UserGrowth + userGrowth,
            };

            DB.GetDal <C_Fund_UserGrowthDetail>().Add(Fund_UserGrowthDetail);

            var payDetailList = new List <PayDetail>();

            payDetailList.Add(new PayDetail
            {
                AccountType = AccountType.UserGrowth,
                PayMoney    = userGrowth,
                PayType     = PayType.Payin,
            });

            var vipLevel = GetUserVipLevel(userBalance.UserGrowth + userGrowth);

            //更新成长值
            //userBalance.UserGrowth += userGrowth;
            //balanceManager.UpdateUserBalance(userBalance);
            PayToUserBalance(userId, payDetailList.ToArray());
            if (user.VipLevel < vipLevel)
            {
                for (int i = user.VipLevel + 1; i <= vipLevel; i++)
                {
                    //达到相应等级赠送红包
                    if (new int[] { 3, 4, 5, 6 }.Contains(i))
                    {
                        var redBag = 0M;
                        switch (i)
                        {
                        case 3:
                            redBag = 2M;
                            break;

                        case 4:
                            redBag = 10M;
                            break;

                        case 5:
                            redBag = 20M;
                            break;

                        case 6:
                            redBag = 88M;
                            break;

                        default:
                            break;
                        }
                        if (redBag > 0M)
                        {
                            Payin_To_Balance(AccountType.RedBag, FundCategory_UserLevelUp, userId, orderId, redBag, string.Format("用户等级提升到{0}级", i), RedBagCategory.UserUpLevel);
                        }
                    }
                }
                //修改vip等级
                user.VipLevel = vipLevel;
                DB.GetDal <C_User_Register>().Update(user);
            }

            return(user.VipLevel);
        }
Exemplo n.º 2
0
        public void RegisterUser(SystemUser user, UserRegInfo regInfo)
        {
            DB.Begin();
            try
            {
                var loginBiz = new LocalLoginBusiness();

                var register = new C_User_Register
                {
                    DisplayName = regInfo.DisplayName,
                    ComeFrom    = regInfo.ComeFrom,
                    RegType     = regInfo.RegType,
                    RegisterIp  = regInfo.RegisterIp,
                    Referrer    = regInfo.Referrer,
                    ReferrerUrl = regInfo.ReferrerUrl,
                    IsEnable    = true,
                    IsAgent     = false,
                    IsFillMoney = false,
                    AgentId     = regInfo.AgentId,
                    CreateTime  = DateTime.Now,
                    VipLevel    = 0,
                    UserId      = user.UserId,
                };
                try
                {
                    if (!string.IsNullOrEmpty(regInfo.AgentId))
                    {
                        var agentUser = loginBiz.GetRegisterById(regInfo.AgentId);
                        if (agentUser != null)
                        {
                            register.ParentPath = agentUser.ParentPath + "/" + agentUser.UserId;
                        }
                    }
                }
                catch { }

                var AuthUser = new C_Auth_Users
                {
                    UserId     = user.UserId,
                    RegFrom    = user.RegFrom,
                    AgentId    = regInfo.AgentId,
                    CreateTime = DateTime.Now,
                };


                DB.GetDal <C_User_Register>().Add(register);
                DB.GetDal <C_Auth_Users>().Add(AuthUser);

                var balance = new C_User_Balance
                {
                    BonusBalance      = 0M,
                    FreezeBalance     = 0M,
                    CommissionBalance = 0M,
                    ExpertsBalance    = 0M,
                    FillMoneyBalance  = 0M,
                    RedBagBalance     = 0M,
                    CurrentDouDou     = 0,
                    UserGrowth        = 0,
                    IsSetPwd          = false,
                    NeedPwdPlace      = string.Empty,
                    Password          = string.Empty,
                    UserId            = user.UserId,
                    Version           = 0,
                    AgentId           = regInfo.AgentId,
                };
                DB.GetDal <C_User_Balance>().Add(balance);

                DB.Commit();
            }
            catch (Exception ex)
            {
                DB.Rollback();
                throw ex;
            }
        }