示例#1
0
        /// <summary>
        /// 增加点赞或浏览次数
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public async Task <JsonResult> PicZanOrRead(int?id, int?tId)
        {
            var data = new MoLoveData();

            try
            {
                if (id == null || id <= 0 ||
                    tId == null || tId <= 0)
                {
                    data.Msg = "操作失败!"; return(Json(data));
                }

                var user = HttpContext.Session.Get <MoUserInfo>(HttpContext.Session.SessionKey());
                if (user == null)
                {
                    data.Msg = "请先登录!"; return(Json(data));
                }

                var content = _db.ToContent.SingleOrDefault(b => b.Id == id && b.Status == (int)EnumHelper.EmContentStatus.公有);
                if (content == null)
                {
                    data.Msg = "操作失败。"; return(Json(data));
                }

                if (content.UserId == user.Id)
                {
                    data.Msg = "不能操作自己的图"; return(Json(data));
                }

                if (tId == 1)
                {
                    //点赞
                    content.ZanNum += 1;
                    data.Data       = content.ZanNum;
                    if (content.ZanNum >= 1000000)
                    {
                        data.Msg = "操作成功。"; data.IsOk = true; return(Json(data));
                    }
                }
                else if (tId == 2)
                {
                    //浏览
                    content.ReadNum += 1;
                    data.Data        = content.ReadNum;
                    if (content.ReadNum >= 1000000)
                    {
                        data.Msg = "操作成功。"; data.IsOk = true; return(Json(data));
                    }
                }

                data.IsOk = await _db.SaveChangesAsync() > 0;

                data.Msg = data.IsOk ? "操作成功!" : "操作失败!";
                if (data.IsOk && tId == 1)
                {
                    //增加积分
                    _db.ToUserLog.Add(new ToUserLog
                    {
                        CodeId     = (int)EmLogCode.积分,
                        CreateTime = DateTime.Now,
                        Des        = $"图:{content.Name.FomartSubStr(15)},被【点赞】  +{(int)EmLevelNum.点赞}",
                        UserId     = user.Id
                    });
                    var dbUser = _db.ToUserInfo.SingleOrDefault(b => b.Id == user.Id);
                    dbUser.LevelNum += (int)EmLevelNum.点赞;

                    var result = await _db.SaveChangesAsync();

                    if (result > 0)
                    {
                        user.LevelNum = dbUser.LevelNum;
                    }
                }
            }
            catch (Exception ex)
            {
            }
            return(Json(data));
        }
        public async Task <IActionResult> Login([Bind("UserName,UserPwd,ReturnUrl")] MoLoginUser loginUser)
        {
            if (ModelState.IsValid)
            {
                #region 验证
                var md5Pwd   = PublicClass._Md5(loginUser.UserPwd.Trim());
                var userInfo = await _context.ToUserInfo.SingleOrDefaultAsync(b =>
                                                                              b.UserName.Equals(loginUser.UserName, StringComparison.CurrentCultureIgnoreCase) &&
                                                                              b.UserPwd.Equals(md5Pwd));

                if (userInfo == null)
                {
                    this.MsgBox("账号或密码错误!");
                    return(View(loginUser));
                }
                else if (userInfo.Status == (int)EnumHelper.EmUserStatus.禁用)
                {
                    this.MsgBox("该账号已被禁用,或许你可以尝试重新注册一个账号!");
                    return(View(loginUser));
                }
                #endregion

                #region 更新登录信息
                userInfo.Ips       = this.GetUserIp();
                userInfo.LoginTime = DateTime.Now;
                userInfo.LevelNum += (int)EmLevelNum.登录;

                //记录session
                var moUserInfo = new MoUserInfo
                {
                    Id       = userInfo.Id,
                    UserName = userInfo.UserName,
                    NickName = userInfo.NickName,
                    Addr     = userInfo.Addr,
                    Birthday = userInfo.Birthday,

                    Blog       = userInfo.Blog,
                    CreateTime = userInfo.CreateTime,
                    Email      = userInfo.Email,
                    HeadPhoto  = userInfo.HeadPhoto,
                    Introduce  = userInfo.Introduce,

                    Ips      = userInfo.Ips,
                    LevelNum = userInfo.LevelNum,
                    Sex      = userInfo.Sex,
                    Tel      = userInfo.Tel,
                    Status   = userInfo.Status,

                    LoginTime = Convert.ToDateTime(userInfo.LoginTime)
                };
                HttpContext.Session.Set <MoUserInfo>(HttpContext.Session.SessionKey(), moUserInfo);

                if (!string.IsNullOrWhiteSpace(moUserInfo.Ips))
                {
                    _context.ToUserLog.Add(new ToUserLog
                    {
                        CodeId     = (int)EmLogCode.登录,
                        CreateTime = DateTime.Now,
                        Des        = $"IP:{moUserInfo.Ips},登录时间:{moUserInfo.LoginTime.ToString("yyyy-MM-dd HH:mm")}",
                        UserId     = userInfo.Id
                    });
                }

                _context.ToUserLog.Add(new ToUserLog
                {
                    CodeId     = (int)EmLogCode.积分,
                    CreateTime = DateTime.Now,
                    Des        = $"【登录】  +{(int)EmLevelNum.登录}",
                    UserId     = userInfo.Id
                });

                await _context.SaveChangesAsync();

                if (string.IsNullOrWhiteSpace(loginUser.ReturnUrl))
                {
                    return(RedirectToAction(nameof(HomeController.Index), "Home"));
                }
                else
                {
                    return(Redirect(loginUser.ReturnUrl));
                }
                #endregion
            }
            return(View(loginUser));
        }
        public async Task <IActionResult> UpHeadPhoto([Bind("Id")] MoUserInfo moUserInfo)
        {
            var file = Request.Form.Files.Where(b =>
                                                b.Name == "myHeadPhoto" &&
                                                b.ContentType.Contains("image")).
                       SingleOrDefault();

            if (file == null)
            {
                this.MsgBox("请选择上传的头像图片!"); return(View(_MyUserInfo));
            }

            var maxSize = 1024 * 1024 * 4;

            if (file.Length > maxSize)
            {
                this.MsgBox("头像图片不能大于4M!"); return(View(_MyUserInfo));
            }

            var fileExtend  = file.FileName.Substring(file.FileName.LastIndexOf('.'));
            var fileNewName = $"{DateTime.Now.ToString("yyyyMMddHHmmssfff")}{fileExtend}";
            var path        = Path.Combine(_selfSetting.UpHeadPhotoPath, fileNewName);

            using (var stream = new FileStream(path, FileMode.OpenOrCreate, FileAccess.ReadWrite))
            {
                await file.CopyToAsync(stream);
            }

            //更新数据
            var viewPath = $"{_selfSetting.ViewHeadPhotoPath}/{fileNewName}";

            var user = _db.ToUserInfo.Where(b => b.Id == _MyUserInfo.Id).SingleOrDefault();

            if (user == null)
            {
                this.MsgBox("上传失败,请稍后重试!"); return(View(_MyUserInfo));
            }
            user.HeadPhoto = viewPath;
            user.LevelNum += (int)EmLevelNum.修改头像;
            var result = await _db.SaveChangesAsync();

            if (result > 0)
            {
                _MyUserInfo.HeadPhoto = viewPath;
                _MyUserInfo.LevelNum  = user.LevelNum;
                HttpContext.Session.Set <MoUserInfo>(HttpContext.Session.SessionKey(), _MyUserInfo);
                this.MsgBox("上传成功!");

                _db.ToUserLog.Add(new ToUserLog
                {
                    CodeId     = (int)EmLogCode.积分,
                    CreateTime = DateTime.Now,
                    Des        = $"【修改头像】  +{(int)EmLevelNum.修改头像}",
                    UserId     = _MyUserInfo.Id
                });
                await _db.SaveChangesAsync();
            }
            else
            {
                this.MsgBox("上传失败,请稍后重试!");
            }
            return(View(_MyUserInfo));
        }