/// <summary> /// 获取 排行的博客 新闻 /// </summary> /// <returns></returns> private async Task TopBlog() { // 最新 10 的新闻 var topNewList = MemoryCacheTool.GetCacheValue("TOPNews"); if (topNewList == null) { var obj = await this._newsService.GetTopNewsByCount(10, "Sort,CreateDate desc"); MemoryCacheTool.SetChacheValue("TOPNews", obj, TimeSpan.FromMinutes(10)); TempData["TOPNews"] = obj; } else { TempData["TOPNews"] = topNewList; } //浏览最多的博客 var topReadBlog = MemoryCacheTool.GetCacheValue("TOPReadBlog"); if (topReadBlog == null) { var obj = await this._blogService.GetTopBlogByCount(0, 10, "VisitCount desc"); MemoryCacheTool.SetChacheValue("TOPReadBlog", obj, TimeSpan.FromMinutes(10)); TempData["TOPReadBlog"] = obj; } else { TempData["TOPReadBlog"] = topReadBlog; } }
/// <summary> /// 获取一条新闻 浏览数增加 /// </summary> /// <param name="newsId"></param> /// <returns></returns> public async Task <NewsDto> GetOneBlogByBlogIdAsync(int newsId, string userIP) { var newsDto = await this.GetOneNewsByNewsIdAsync(newsId); if (MemoryCacheTool.GetCacheValue(userIP) == null)//同一个IP一个小时后读取才增加一次 { await UpdateVistNum(newsId, 1); MemoryCacheTool.SetChacheValue(userIP, userIP, TimeSpan.FromHours(1)); } return(newsDto); }
public async Task <IActionResult> ShowBlog(int id) { //获取客户端IP string userIP = HttpContext.GetUserIp(); this._logger.LogInformation($"查看用户IP: {userIP}"); //获取具体的博客 BlogDto blogDto = await this._blogService.GetOneBlogByBlogIdAsync(id, userIP, true); ViewBag.BlogDto = blogDto; //获取用户博客的信息(博客分类 博客信息) UserDto userDto = await this._userService.GetOneUserByUserIdAsync(blogDto.UserId); DetailContentLayoutViewModel.UserDto = userDto; ViewBag.DetailContentLayoutViewModel = DetailContentLayoutViewModel; TempData["Title"] = $"{this._webStaticConfig.WebName}-{blogDto.Title}"; TempData["KeyWord"] = blogDto.KeyWord; TempData["Description"] = blogDto.Description; var userBlogCommentList = MemoryCacheTool.GetCacheValue("UserBlogCommentList"); if (userBlogCommentList != null) { TempData["UserBlogCommentList"] = (List <BlogCommentDto>)userBlogCommentList; } else { DataResultDto <List <BlogCommentDto> > dataResultDto = await this._blogCommentService.GetBlogCommentByUserId(10); if (dataResultDto.Code == 0) { TempData["UserBlogCommentList"] = dataResultDto.DataList; } MemoryCacheTool.SetChacheValue("UserBlogCommentList", dataResultDto.DataList, TimeSpan.FromMinutes(30)); } var claim = GetClaim(HttpContext.User.Claims, ClaimTypes.Sid); if (claim != null) { UserDto userDtoLogin = new UserDto(); userDtoLogin.UserId = int.Parse(claim.Value); claim = GetClaim(HttpContext.User.Claims, ClaimTypes.Name); userDtoLogin.UserName = claim.Value; TempData["LoginUser"] = userDtoLogin; } return(View()); }
public async Task <IActionResult> LookNews(int id) { //获取客户端IP string userIP = HttpContext.GetUserIp(); //获取具体的博客 NewsDto newsDto = await this._newsService.GetOneNewsByNewsIdAsync(id, userIP, false); ViewBag.NewsDto = newsDto; //获取用户博客的信息(博客分类 博客信息) UserDto userDto = await this._userService.GetOneUserByUserIdAsync(this._webStaticConfig.BlogBackUserId); DetailContentLayoutViewModel.UserDto = userDto; ViewBag.DetailContentLayoutViewModel = DetailContentLayoutViewModel; TempData["Title"] = $"{this._webStaticConfig.WebName}-{newsDto.Title}"; TempData["KeyWord"] = newsDto.KeyWord; TempData["Description"] = newsDto.Description; TempData["IsNews"] = true; var userNewsCommentList = MemoryCacheTool.GetCacheValue("UserNewsCommentList"); if (userNewsCommentList != null) { TempData["UserNewsCommentList"] = (List <NewsCommentDto>)userNewsCommentList; } else { DataResultDto <List <NewsCommentDto> > dataResultDto = await this._newsCommentService.GetNewsCommentByUserId(10); if (dataResultDto.Code == 0) { TempData["UserNewsCommentList"] = dataResultDto.DataList; } MemoryCacheTool.SetChacheValue("UserNewsCommentList", dataResultDto.DataList, TimeSpan.FromMinutes(30)); } var claim = GetClaim(HttpContext.User.Claims, ClaimTypes.Sid); if (claim != null) { UserDto userDtoLogin = new UserDto(); userDtoLogin.UserId = int.Parse(claim.Value); claim = GetClaim(HttpContext.User.Claims, ClaimTypes.Name); userDtoLogin.UserName = claim.Value; TempData["LoginUser"] = userDtoLogin; } return(View("~/Views/News/NewDetails.cshtml")); }
/// <summary> /// 获取一条博客 浏览数增加 /// </summary> /// <param name="blogId"></param> /// <returns></returns> public async Task <BlogDto> GetOneBlogByBlogIdAsync(long blogId, string userIP, bool isAddVistNum = true) { var blogDto = await this.GetOneBlogByBlogIdAsync(blogId); if (MemoryCacheTool.GetCacheValue(userIP) == null)//同一个IP一个小时后读取才增加一次 { if (isAddVistNum) { await UpdateVistNum(blogId, 1); } MemoryCacheTool.SetChacheValue(userIP, userIP, TimeSpan.FromHours(1)); } return(blogDto); }
/// <summary> /// 获取统计数据 /// </summary> private async Task StatisticsCount() { //获取用户数量 var userCount = MemoryCacheTool.GetCacheValue("UserCount"); if (userCount != null) { TempData["UserCount"] = (int)userCount; } else { int qUserCount = await this._userService.StatisticsUserCount(); TempData["UserCount"] = qUserCount; MemoryCacheTool.SetChacheValue("UserCount", qUserCount, TimeSpan.FromMinutes(30)); } //获取博客数量 var blogCount = MemoryCacheTool.GetCacheValue("BlogCount"); if (userCount != null) { TempData["BlogCount"] = (int)blogCount; } else { int qBlogCount = await this._blogService.StatisticsBlogCount();; TempData["BlogCount"] = qBlogCount; MemoryCacheTool.SetChacheValue("BlogCount", qBlogCount, TimeSpan.FromMinutes(30)); } TempData["CmmentCount"] = 0;//this._userService.StatisticsUserCount(); //获取用户数量 var cmmentCount = MemoryCacheTool.GetCacheValue("CmmentCount"); if (userCount != null) { TempData["CmmentCount"] = (int)cmmentCount; } else { int qCmmentCount = await this._blogCommentService.StatisticsCommentCount(); TempData["CmmentCount"] = qCmmentCount; MemoryCacheTool.SetChacheValue("CmmentCount", qCmmentCount, TimeSpan.FromMinutes(30)); } //获取开源项目数量 var openSourceCount = MemoryCacheTool.GetCacheValue("OpenSourceCount"); if (userCount != null) { TempData["OpenSourceCount"] = (int)openSourceCount; } else { int qOpenSourceCount = await this._openSourceService.StatisticsOpenSourceCount(); TempData["OpenSourceCount"] = qOpenSourceCount; MemoryCacheTool.SetChacheValue("OpenSourceCount", qOpenSourceCount, TimeSpan.FromMinutes(30)); } }
public async Task <IActionResult> Index(int?id, int?categoryId) { UserDto userDtoLogin = new UserDto(); if (categoryId != null && categoryId != 0) { userDtoLogin = await this._userService.GetOneUserByCategoryIDAsync((int)categoryId); } else { if (id == null) { var claim = GetClaim(HttpContext.User.Claims, ClaimTypes.Sid); if (claim != null) { userDtoLogin.UserId = int.Parse(claim.Value); claim = GetClaim(HttpContext.User.Claims, ClaimTypes.Name); userDtoLogin.UserName = claim.Value; TempData["LoginUser"] = userDtoLogin; } } else { userDtoLogin = await this._userService.GetOneUserByUserIdAsync((int)id); var claim = GetClaim(HttpContext.User.Claims, ClaimTypes.Sid); if (claim != null) { TempData["LoginUser"] = userDtoLogin; } } } ViewBag.UserId = userDtoLogin.UserId; ViewBag.categoryId = categoryId == null ? 0 : (int)categoryId; DetailContentLayoutViewModel.UserDto = userDtoLogin; ViewBag.DetailContentLayoutViewModel = DetailContentLayoutViewModel; DetailContentLayoutViewModel.UserDto = userDtoLogin; ViewBag.DetailContentLayoutViewModel = DetailContentLayoutViewModel; TempData["Title"] = $"{this._webStaticConfig.WebName}-{userDtoLogin.UserName}"; TempData["KeyWord"] = _webStaticConfig.WebKeyWord; TempData["Description"] = _webStaticConfig.WebDescription; var userBlogCommentList = MemoryCacheTool.GetCacheValue("UserBlogCommentList"); if (userBlogCommentList != null) { TempData["UserBlogCommentList"] = (List <BlogCommentDto>)userBlogCommentList; } else { DataResultDto <List <BlogCommentDto> > dataResultDto = await this._blogCommentService.GetBlogCommentByUserId(10); if (dataResultDto.Code == 0) { TempData["UserBlogCommentList"] = dataResultDto.DataList; } MemoryCacheTool.SetChacheValue("UserBlogCommentList", dataResultDto.DataList, TimeSpan.FromMinutes(30)); } return(View()); }
public async Task <IActionResult> Register(UserDto userDto) { DataResultDto <string> dataResultDto = new DataResultDto <string>(); try { if (!ModelState.IsValid) { dataResultDto.Code = 1; dataResultDto.Msg = "输入的格式不对"; dataResultDto.DataList = string.Empty; return(Json(dataResultDto)); } //string vCode = HttpContext.Session.GetString("LoginValidateCode"); //if (string.IsNullOrEmpty(vCode)) //{ // dataResultDto.Code = 1; // dataResultDto.Msg = "验证码已过期,请重新刷新!"; // dataResultDto.DataList = string.Empty; // return Json(dataResultDto); //} //if (vCode.ToUpper().Trim() != userDto.ChcekCode.ToUpper().Trim()) //{ // dataResultDto.Code = 1; // dataResultDto.Msg = "验证码不正确,请重新输入!"; // dataResultDto.DataList = string.Empty; // return Json(dataResultDto); //} if (await this._userService.CheckLoginNameAsync(userDto.LoginName)) { dataResultDto.Code = 1; dataResultDto.Msg = "登陆用户名已经存在,请重新输入!"; dataResultDto.DataList = string.Empty; return(Json(dataResultDto)); } userDto.LoginName = userDto.LoginName.Trim(); string userIP = HttpContext.GetUserIp(); var mObj = MemoryCacheTool.GetCacheValue(userIP); if (mObj == null) { var userRegister = new UserRegister(); mObj = userRegister; MemoryCacheTool.SetChacheValue(userIP, userRegister, TimeSpan.FromMinutes(120)); } else { var ur = (UserRegister)mObj; if (ur.RegisterCount > MaxCount && DateTime.Now.Subtract(ur.RegisterTime).TotalMinutes <= MaxMinute) { dataResultDto.Code = 1; dataResultDto.Msg = "你的IP注册次数过多!"; dataResultDto.DataList = string.Empty; return(Json(dataResultDto)); } } if (await this._userService.AddUserAsync(userDto)) { userDto = await this._userService.GetUserByLoginNameAsync(userDto.LoginName); if (userDto == null) { dataResultDto.Code = 1; dataResultDto.Msg = "注册程序异常,请联系管理员!"; return(Json(dataResultDto)); } var ur = (UserRegister)mObj; ur.ClientIP = userIP; ur.RegisterCount++; ur.RegisterTime = DateTime.Now; var identity = new ClaimsIdentity(CookieAuthenticationDefaults.AuthenticationScheme); identity.AddClaim(new Claim(ClaimTypes.Sid, userDto.UserId.ToString())); identity.AddClaim(new Claim(ClaimTypes.Name, userDto.UserName)); identity.AddClaim(new Claim(ClaimTypes.Role, "User")); await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, new ClaimsPrincipal(identity)); dataResultDto.Code = 0; dataResultDto.Msg = "注册成功!"; dataResultDto.DataList = "/User/Home/Index"; } else { dataResultDto.Code = 1; dataResultDto.Msg = "注册失败!"; } } catch (Exception ex) { logger.LogError("注册失败", ex); dataResultDto.Code = 1; dataResultDto.Msg = "注册程序异常,请联系管理员!"; } return(Json(dataResultDto)); }