/// <summary> /// 获得用户信息 /// </summary> /// <param name="accountId"></param> /// <returns></returns> public static UserItemBody GetUserItemBody(string accountId) { IMongoQuery x = Query.EQ(nameof(UserItemBody.UserInfo) + "." + MongoDbRepository.MongoKeyField, accountId); var cache = MongoDbRepository.GetFirstCacheRec <UserItemBody>(x); if (cache != null) { return(cache); } var u = new UserItemBody(); u.UserInfo = UserInfo.GetUserInfoBySn(accountId); u.ArticleCnt = Article.GetListByOwnerId(accountId).Count; u.StockCnt = Stock.GetStockCntByAccount(accountId); u.FocusCnt = Focus.GetFoucsCnt(accountId); u.FollwersCnt = Focus.GetFollowCnt(accountId); UserItemBody.InsertUserItemBody(u); return(u); }
/// <summary> /// 根据文章序列号获得表示用文章信息组合 /// </summary> /// <returns></returns> public static ArticleBody GetArticleBodyById(string ArticleId) { IMongoQuery x = Query.EQ(nameof(ArticleBody.ArticleInfo) + "." + MongoDbRepository.MongoKeyField, ArticleId); var cache = MongoDbRepository.GetFirstCacheRec <ArticleBody>(x); if (cache != null) { return(cache); } var articlebody = new ArticleBody(); Article Article = Article.GetArticleBySn(ArticleId); UserInfo account = UserInfo.GetUserInfoBySn(Article.OwnerId); articlebody.ArticleInfo = Article; articlebody.AuthorInfo = account; //作者 articlebody.FocusCnt = Focus.GetFoucsCnt(account.Sn); articlebody.FollowCnt = Focus.GetFollowCnt(account.Sn); articlebody.AuthorStockCnt = Stock.GetStockCntByAccount(account.Sn); //文章 articlebody.CollectionTitle = Collection.GetCollectionBySn(Article.CollectionID).Title; articlebody.CommentCnt = Article.GetCommentCnt(); articlebody.CommentAccountCnt = Article.GetCommentAccountCnt(); articlebody.ReadCnt = Article.GetReadCnt(); //关联文章 articlebody.NextArticleInCollection = Article.GetArticleInCollection(true); articlebody.PreviousArticleInCollection = Article.GetArticleInCollection(false); //收藏者列表 articlebody.StockAccountList = Stock.GetStockAccountByArticleId(ArticleId); articlebody.StockCnt = articlebody.StockAccountList.Count; //文章综合评分 if (articlebody.ArticleInfo.IsPrivate) { articlebody.Score = 0; } else { articlebody.Score = Article.EvaluateScore(articlebody.ReadCnt, articlebody.CommentCnt, articlebody.CommentAccountCnt, articlebody.StockCnt); } articlebody.MarkDownAnlyze = MarkDownAnlyzer.Anlyze(ArticleContent.GetMarkDownString(ArticleId, RevisionType.Current)); ArticleBody.InsertArticleBody(articlebody); return(articlebody); }