/// <summary> /// 获得指定时间内评分最高的文章 /// </summary> /// <param name="ArticleCnt"></param> /// <param name="Hours"></param> /// <returns></returns> public static AsideColumnBody HotArticle(int ArticleCnt, int Hours) { //评分规则在ArticleListManager编写 var articles = Article.GetHoursFirstPageArticleList(Hours); var articleBodys = new List <ArticleBody>(); foreach (var art in articles) { articleBodys.Add(ArticleListManager.GetArticleBodyById(art.Sn)); } var firstpage = articleBodys.OrderByDescending((x) => { return(x.Score); }); var titlelist = new AsideColumnBody() { Title = Hours + "小时热门文章", DetailItem = new List <GenericItem>(), HrefBase = "/ArticlePage/Index?ArticleId=" }; int xCnt = 0; foreach (var item in firstpage) { titlelist.DetailItem.Add(new GenericItem() { Display = item.ArticleInfo.Title, Cnt = item.Score, KeyId = item.ArticleInfo.Sn }); xCnt++; if (xCnt == ArticleCnt) { break; } } return(titlelist); }
/// <summary> /// 获得用户BODY /// </summary> /// <param name="accountId"></param> /// <returns></returns> public static UserBody GetUserBody(string accountId) { IMongoQuery x = Query.EQ(nameof(UserBody.AccountId), accountId); var cache = MongoDbRepository.GetFirstCacheRec <UserBody>(x); if (cache != null) { return(cache); } UserBody u = new UserBody(); u.AccountId = accountId; u.UserInfo = UserInfo.GetUserInfoBySn(accountId); switch (u.UserInfo.RegisterMethod) { case GithubAccount.Github: u.GitInfo = GithubAccount.GetGithubAccountBySn(u.UserInfo.RegisterAccountID); break; case QQAccount.QQ: u.QQInfo = QQAccount.GetQQAccountBySn(u.UserInfo.RegisterAccountID); break; default: break; } //获得用户文章列表 u.ArticleList = new List <ArticleItemBody>(); var alist = Article.GetListByOwnerId(accountId); foreach (var item in alist) { u.ArticleList.Add(ArticleListManager.GetArticleItemBodyById(item.Sn)); } //关注的人 u.FocusList = new List <UserInfo>(); var focuslist = Focus.GetFocus(accountId); foreach (var item in focuslist) { u.FocusList.Add(UserInfo.GetUserInfoBySn(item)); } //跟随的人 u.FollowList = new List <UserInfo>(); var followlist = Focus.GetFollow(accountId); foreach (var item in followlist) { u.FollowList.Add(UserInfo.GetUserInfoBySn(item)); } //收藏 u.StockList = new List <ArticleItemBody>(); var slist = OwnerTableOperator.GetRecListByOwnerId <Stock>(accountId); foreach (var item in slist) { u.StockList.Add(ArticleListManager.GetArticleItemBodyById(item.ArticleID)); } UserBody.InsertUserBody(u); return(u); }