/// <summary> ///通过用户编号或用户名称获取用户信息 /// </summary> /// <param name="userID">用户编号</param> /// <param name="username">用户名称</param> /// <param name="isOnline">是否在线:修改LastActiveTime</param> /// <param name="useCache">是否从缓存读取</param> /// <returns>用户信息</returns> public static User GetUser(int userID, string username, bool isOnline, bool useCache) { User user = null; string cacheKey = (userID > 0) ? CacheKeyManager.GetUserKey(userID) : CacheKeyManager.GetUserKey(username); if (useCache) { if (HttpContext.Current != null) { user = HttpContext.Current.Items[cacheKey] as User; } if (user != null) { return(user); } user = HHCache.Instance.Get(cacheKey) as User; } if (user == null) { user = CommonDataProvider.Instance.GetUser(userID, username, isOnline); if (!useCache) { return(user); } if (HttpContext.Current != null) { HttpContext.Current.Items[cacheKey] = user; } AddCachedUser(user); } return(user); }
/// <summary> /// 添加用户到缓存 /// </summary> /// <param name="user"></param> internal static void AddCachedUser(User user) { if (user != null) { HHCache.Instance.Insert(CacheKeyManager.GetUserKey(user.UserID), user); HHCache.Instance.Insert(CacheKeyManager.GetUserKey(user.UserName), user); } }
/// <summary> /// 刷新用户缓存信息 /// </summary> /// <param name="user"></param> internal static void RefreshCachedUser(User user) { if (user != null) { HHCache.Instance.Remove(CacheKeyManager.GetUserKey(user.UserID)); HHCache.Instance.Remove(CacheKeyManager.GetUserKey(user.UserName)); } HHCache.Instance.Remove(CacheKeyManager.UserListPrefix); }