//回复:此方法名。郑伟定的。等我问问郑伟。
        /// <summary>
        /// 变更用户邀请码配额
        /// </summary>
        /// <param name="userId">用户Id</param>
        /// <param name="userInvitationCodeUnUsedCount">用户未使用邀请码配额增量(若减少请使用负数)</param>
        /// <param name="userInvitationCodeUsedCount">用户使用的邀请码配额增量(若减少请使用负数)</param>
        /// <param name="userInvitationCodeBuyedCount">用户购买的邀请码配额增量(若减少请使用负数)</param>
        /// <returns>是否更新成功</returns>
        public bool ChangeUserInvitationCodeCount(long userId, int userInvitationCodeUnUsedCount, int userInvitationCodeUsedCount, int userInvitationCodeBuyedCount)
        {
            InvitationCodeStatistic invitationCodeStatistic = Get(userId);

            if (invitationCodeStatistic == null)
            {
                IInviteFriendSettingsManager inviteFriendSettingsManager = DIContainer.Resolve <IInviteFriendSettingsManager>();
                InviteFriendSettings         inviteFriendSettings        = inviteFriendSettingsManager.Get();
                invitationCodeStatistic = new InvitationCodeStatistic
                {
                    CodeBuyedCount  = 0,
                    CodeUnUsedCount = inviteFriendSettings.DefaultUserInvitationCodeCount,
                    CodeUsedCount   = 0,
                    UserId          = userId
                };
                Insert(invitationCodeStatistic);
            }
            invitationCodeStatistic.CodeBuyedCount  += userInvitationCodeBuyedCount;
            invitationCodeStatistic.CodeUnUsedCount += userInvitationCodeUnUsedCount;
            invitationCodeStatistic.CodeUsedCount   += userInvitationCodeUsedCount;
            //done:bianchx by libsh,怎么能防止这些统计数被减到负数
            //回复:在业务逻辑类中做了拦截,请查看业务逻辑类中的ChangeUserInvitationCodeCount方法
            var sql_Update = PetaPoco.Sql.Builder
                             .Append("update tn_InvitationCodeStatistics set CodeUnUsedCount=CodeUnUsedCount+@0,CodeUsedCount=CodeUsedCount+@1,CodeBuyedCount=CodeBuyedCount+@2 where UserId=@3", userInvitationCodeUnUsedCount, userInvitationCodeUsedCount, userInvitationCodeBuyedCount, userId);
            //done:bianchx by libsh,应该先做数据库操作再处理缓存
            //回复:修改了执行顺序
            int affectedCount = CreateDAO().Execute(sql_Update);

            OnUpdated(invitationCodeStatistic);
            return(affectedCount > 0);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 转换为InviteFriendSettings用于数据库存储
        /// </summary>
        /// <returns></returns>
        public InviteFriendSettings AsInviteFriendSettings()
        {
            InviteFriendSettings inviteFriendSettings = DIContainer.Resolve <IInviteFriendSettingsManager>().Get();

            inviteFriendSettings.AllowInvitationCodeUseOnce     = AllowInvitationCodeUseOnce;
            inviteFriendSettings.InvitationCodeTimeLiness       = InvitationCodeTimeLiness;
            inviteFriendSettings.InvitationCodeUnitPrice        = InvitationCodeUnitPrice;
            inviteFriendSettings.DefaultUserInvitationCodeCount = DefaultUserInvitationCodeCount;
            return(inviteFriendSettings);
        }
Ejemplo n.º 3
0
        public TestForUserEditModel GetUserSettings()
        {
            //根据站点配置设置用户属性

            UserSettings         userSettings         = DIContainer.Resolve <ISettingsManager <UserSettings> >().Get();
            InviteFriendSettings inviteFriendSettings = DIContainer.Resolve <ISettingsManager <InviteFriendSettings> >().Get();

            return(new TestForUserEditModel
            {
                registrationMode = userSettings.RegistrationMode,
                EnableNotActivatedUsersToLogin = userSettings.EnableNotActivatedUsersToLogin,
                MyHomePageAsSiteEntry = userSettings.MyHomePageAsSiteEntry,
                AllowInvitationCodeUseOnce = inviteFriendSettings.AllowInvitationCodeUseOnce,
                UserPasswordFormat = userSettings.UserPasswordFormat
            });
        }
Ejemplo n.º 4
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="userProfileSettings">用户资料设置</param>
 /// <param name="userSettings">用户设置</param>
 /// <param name="inviteFriendSettings">邀请朋友设置</param>
 public UserSettingsEditModel(UserProfileSettings userProfileSettings, UserSettings userSettings, InviteFriendSettings inviteFriendSettings)
 {
     if (userSettings != null)
     {
         RegistrationMode  = userSettings.RegistrationMode;
         AccountActivation = userSettings.AccountActivation;
         EnableNotActivatedUsersToLogin = userSettings.EnableNotActivatedUsersToLogin;
         EnableTrackAnonymous           = userSettings.EnableTrackAnonymous;
         UserOnlineTimeWindow           = userSettings.UserOnlineTimeWindow;
         UserPasswordFormat             = userSettings.UserPasswordFormat;
         AutomaticModerated             = userSettings.AutomaticModerated;
         NoModeratedUserPoint           = userSettings.NoModeratedUserPoint;
         EnableNickname        = userSettings.EnableNickname;
         DisplayNameType       = userSettings.DisplayNameType;
         DisallowedUserNames   = userSettings.DisallowedUserNames;
         MyHomePageAsSiteEntry = userSettings.MyHomePageAsSiteEntry;
     }
     if (userProfileSettings != null)
     {
         Avatar              = userProfileSettings.IntegrityProportions[0];
         Birthday            = userProfileSettings.IntegrityProportions[1];
         NowArea             = userProfileSettings.IntegrityProportions[2];
         HomeArea            = userProfileSettings.IntegrityProportions[3];
         IM                  = userProfileSettings.IntegrityProportions[4];
         Mobile              = userProfileSettings.IntegrityProportions[5];
         EducationExperience = userProfileSettings.IntegrityProportions[6];
         WorkExperience      = userProfileSettings.IntegrityProportions[7];
         Introduction        = userProfileSettings.IntegrityProportions[8];
         MaxPersonTag        = userProfileSettings.MaxPersonTag;
         MinIntegrity        = userProfileSettings.MinIntegrity;
     }
     if (inviteFriendSettings != null)
     {
         AllowInvitationCodeUseOnce     = inviteFriendSettings.AllowInvitationCodeUseOnce;
         InvitationCodeTimeLiness       = inviteFriendSettings.InvitationCodeTimeLiness;
         InvitationCodeUnitPrice        = inviteFriendSettings.InvitationCodeUnitPrice;
         DefaultUserInvitationCodeCount = inviteFriendSettings.DefaultUserInvitationCodeCount;
     }
 }
Ejemplo n.º 5
0
 /// <summary>
 /// 保存设置
 /// </summary>
 /// <param name="inviteFriendSettings">设置</param>
 public void Save(InviteFriendSettings inviteFriendSettings)
 {
     repository.Save(inviteFriendSettings);
 }