/// <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); }
/// <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())); } }
/// <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); }
/// <summary> /// 判断用户是否第一次更新指定类型的个人信息(异步) /// </summary> /// <param name="log">日志内容(用户编号和更新类型字段)</param> /// <returns>判断结果</returns> public static bool IsFirstUpdateSelfInfoByUser(UserInfoUpdateLog log) { return(LogsData.UserUpdateSelfInfoCount(log) == 0); }