public async Task <ActionResult> GetInitData() { IndexInitDataDTO obj = await RedisHelper.GetAsync <IndexInitDataDTO>("ZswBlog:Index:InitData"); if (obj != null) { return(Ok(obj)); } else { //首页的数据初始化数据 List <Article> articles = await articleService.GetArticlesByPageAndIsShowAsync(3, 1, true); List <ArticleDTO> articleDTOs = await articleMapper.MapperToDTOsAsync(articles); List <Message> messages = (await messageService.GetMessagesOnNotReplyAsyncByPageAsync(10, 1)).ToList(); List <MessageDTO> messageDTOs = new List <MessageDTO>(); foreach (var item in messages) { User user = await userService.GetUserByIdAsync(item.UserId); MessageDTO messageDTO = await messageMapper.MapperToSingleDTOAsync(item, user); messageDTOs.Add(messageDTO); } DateTime date1 = DateTime.Parse("2019-10-08 00:00:00"); DateTime date2 = DateTime.Now; TimeSpan sp = date2.Subtract(date1); int tagCount = (await tagService.GetAllTagsAsync()).Count(); int timeCount = sp.Days; int articleCount = (await articleService.GetAllArticlesAsync()).Count(); int visitCount = await GetVisit(); IndexInitDataDTO initDataDTO = new IndexInitDataDTO() { DataCount = new CountData() { VisitsCount = visitCount, TagsCount = tagCount, RunDays = timeCount, ArticleCount = articleCount }, Articles = articleDTOs.ToList(), Messages = messageDTOs }; await RedisHelper.SetAsync("ZswBlog:Index:InitData", initDataDTO, 3600); return(Ok(initDataDTO)); } }
public async Task <ActionResult> GetInitData() { //首页的数据初始化数据 var initDataDto = await RedisHelper.GetAsync <IndexInitDataDTO>("ZswBlog:Common:InitData"); if (initDataDto != null) { return(Ok(initDataDto)); } var articles = await _articleService.GetArticlesByNearSaveAsync(3); var messages = await _messageService.GetMessageOnNearSaveAsync(10); var date1 = DateTime.Parse("2019-10-08 00:00:00"); var date2 = DateTime.Now; var sp = date2.Subtract(date1); var tagCount = await _tagService.GetAllSiteTagsCountAsync(); var timeCount = sp.Days; var articleCount = await _articleService.GetEntitiesCountAsync(); var visitCount = await GetVisit(); initDataDto = new IndexInitDataDTO() { DataCount = new CountData() { VisitsCount = visitCount, TagsCount = tagCount, RunDays = timeCount, ArticleCount = articleCount }, Articles = articles, Messages = messages }; await RedisHelper.SetAsync("ZswBlog:Common:InitData", initDataDto, 60 * 60 * 3); return(Ok(initDataDto)); }