예제 #1
0
        /// <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);
        }
예제 #2
0
        /// <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);
        }