Exemple #1
0
        /// <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;
            }
        }
Exemple #2
0
        /// <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);
        }
Exemple #3
0
        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());
        }
Exemple #4
0
        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"));
        }
Exemple #5
0
        /// <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);
        }
Exemple #6
0
        /// <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));
            }
        }
Exemple #7
0
        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());
        }
Exemple #8
0
        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));
        }