Ejemplo n.º 1
0
        /// <summary>
        /// 更新用户个人信息
        /// </summary>
        /// <param name="userInfo">用户个人信息</param>
        public static void UpdateUserInfo(UserInfo userInfo)
        {
            //更新个人信息
            UserData.UpdateUserInfo(userInfo);

            //第一次更新个人信息
            UserInfoUpdateLog log = new UserInfoUpdateLog {
                UserId = userInfo.UserId, InfoType = 2
            };
            bool isFirst = LogsBiz.IsFirstUpdateSelfInfoByUser(log);

            if (isFirst)
            {
                UserConfig userConfig = UserConfigs.GetUserConfigCache();
                if (userConfig.SetPersonalExpChanged != 0)
                {
                    UpdateUserExp(userInfo.UserId, userConfig.SetPersonalExpChanged, "设置个人信息");
                }

                if (userConfig.SetPersonalCoinChanged != 0)
                {
                    UpdateUserCoin(userInfo.UserId, userConfig.SetPersonalCoinChanged, "设置个人信息");
                }
            }

            //记录个人信息更新日志
            log.Comment    = "更新个人信息";
            log.CreateDate = DateTime.Now;
            LogsBiz.CreateLogs <UserInfoUpdateLog>(log);

            //重置用户缓存
            SetUserCacheInfo(userInfo.UserId);
        }
Ejemplo n.º 2
0
 /// <summary>
 /// 获取指定用户、指定个人信息类型的更新次数
 /// </summary>
 /// <param name="log">日志内容(用于指定用户编号和更新的个人信息类型)</param>
 /// <returns>曾经更新的次数</returns>
 public static int UserUpdateSelfInfoCount(UserInfoUpdateLog log)
 {
     using (DbCommander cmd = new DbCommander(DbConn.WriteDb, "SP_Logs_GetUserInfoUpdatesCount", CommandType.StoredProcedure))
     {
         cmd.AddInputParameters("UserId, InfoType", log.UserId, log.InfoType);
         return(Convert.ToInt32(cmd.ExecuteScalar()));
     }
 }
Ejemplo n.º 3
0
        /// <summary>
        /// 设置用户个人信息背景图片
        /// </summary>
        /// <param name="userId">用户编号</param>
        /// <param name="iconData">背景图片文件数据</param>
        /// <param name="fileExtName">图片扩展名</param>
        /// <returns>头像图片文件访问的HTTP路径</returns>
        public static string SetUserBackIcon(int userId, byte[] iconData, string fileExtName)
        {
            string iconUrl = iconData.SaveMediaFile(FileTarget.User, userId, MediaType.Image, fileExtName);

            if (!string.IsNullOrEmpty(iconUrl))
            {
                //更新用户背景图片
                UserData.UpdateUserIcon(userId, iconUrl, 1);

                //第一次更新背景图片
                UserInfoUpdateLog log = new UserInfoUpdateLog {
                    UserId = userId, InfoType = 0
                };
                bool isFirst = LogsBiz.IsFirstUpdateSelfInfoByUser(log);
                if (isFirst)
                {
                    UserConfig userConfig = UserConfigs.GetUserConfigCache();
                    if (userConfig.SetBackIconExpChanged != 0)
                    {
                        UpdateUserExp(userId, userConfig.SetBackIconExpChanged, "设置背景图片");
                    }

                    if (userConfig.SetBackIconCoinChanged != 0)
                    {
                        UpdateUserCoin(userId, userConfig.SetBackIconCoinChanged, "设置背景图片");
                    }
                }

                //记录背景图片更新日志
                log.Comment    = "更新背景图片";
                log.CreateDate = DateTime.Now;
                LogsBiz.CreateLogs <UserInfoUpdateLog>(log);

                //重置用户缓存
                SetUserCacheInfo(userId);

                //返回补全的背景图片HTTP路径
                return(iconUrl.ImageUrlFixed(480, 240));
            }
            return(iconUrl);
        }
Ejemplo n.º 4
0
 /// <summary>
 /// 判断用户是否第一次更新指定类型的个人信息(异步)
 /// </summary>
 /// <param name="log">日志内容(用户编号和更新类型字段)</param>
 /// <returns>判断结果</returns>
 public static bool IsFirstUpdateSelfInfoByUser(UserInfoUpdateLog log)
 {
     return(LogsData.UserUpdateSelfInfoCount(log) == 0);
 }