예제 #1
0
        /// <summary>
        /// 获得访客数
        /// </summary>
        /// <param name="articleId"></param>
        /// <returns></returns>
        public static int GetReadCntByArticleId(string articleId)
        {
            IMongoQuery x1          = Query.EQ(nameof(ArticleID), articleId);
            var         visitorList = MongoDbRepository.GetCacheRecList <Visitor>(x1);
            //结果去除各种爬虫的影响
            IEnumerable <Visitor> DistinctList = visitorList
                                                 .GroupBy(visitor => visitor.UserHostAddress)
                                                 .Select(group => group.First());

            return(DistinctList.Count());
        }
예제 #2
0
        /// <summary>
        /// 获得某个账号的观看文章列表
        /// </summary>
        /// <param name="accountId"></param>
        /// <returns></returns>
        public static List <Article> GetArticleByAccountId(string accountId)
        {
            IMongoQuery           x1           = Query.EQ(nameof(UserInfoId), accountId);
            var                   visitorList  = MongoDbRepository.GetCacheRecList <Visitor>(x1);
            IEnumerable <Visitor> filteredList = visitorList
                                                 .GroupBy(visitor => visitor.ArticleID)
                                                 .Select(group => group.First());
            var articleList = new List <Article>();

            foreach (var item in filteredList)
            {
                articleList.Add(Article.GetArticleBySn(item.ArticleID));
            }
            return(articleList);
        }