Ejemplo n.º 1
0
        public async Task <IActionResult> Register([Bind("UserName,UserPwd,ComfirmPwd")] MoRegisterUser loginUser)
        {
            if (ModelState.IsValid)
            {
                #region 验证
                if (_context.ToUserInfo.Any(b => b.UserName.ToUpper() == loginUser.UserName.Trim().ToUpper()))
                {
                    this.MsgBox("已经存在相同的账号!");
                    return(View(loginUser));
                }
                #endregion

                #region 入库

                ToUserInfo userInfo = new ToUserInfo();

                userInfo.UserName   = loginUser.UserName.Trim();
                userInfo.UserPwd    = PublicClass._Md5(loginUser.UserPwd.Trim());
                userInfo.NickName   = userInfo.UserName;
                userInfo.Status     = (int)EnumHelper.EmUserStatus.启用;
                userInfo.CreateTime = DateTime.Now;
                userInfo.LevelNum   = (int)EmLevelNum.注册;

                userInfo.Ips       = this.GetUserIp();
                userInfo.HeadPhoto = "/images/ailiutu_user.png";
                userInfo.Sex       = false;

                _context.Add(userInfo);
                var result = await _context.SaveChangesAsync();

                if (result > 0)
                {
                    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 = DateTime.Now
                    };
                    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();

                    return(RedirectToAction(nameof(HomeController.Index), "home"));
                }
                #endregion

                this.MsgBox("注册失败,请稍后重试。");
                return(View(loginUser));
            }
            return(View(loginUser));
        }
        public async Task <IActionResult> UpPhoto([Bind("ModuleId,Name,Des,Status")] ToContent content)
        {
            if (ModelState.IsValid)
            {
                var module = _db.ToModule.Where(b => b.Status == (int)EnumHelper.EmModuleStatus.启用 && b.Id == content.ModuleId).SingleOrDefault();
                if (module == null)
                {
                    return(BadRequest());
                }
                ViewData["module"] = module;

                if (string.IsNullOrWhiteSpace(content.Name))
                {
                    this.MsgBox("描述名称必填!"); return(View(content));
                }

                //图片
                var files = Request.Form.Files.Where(b =>
                                                     b.Name == "myPhoto" &&
                                                     b.ContentType.Contains("image")).AsEnumerable();

                var size          = 1024 * 1024;
                var maxNum        = 10;
                var maxSize       = size * maxNum;
                var maxSingleNum  = 4;
                var maxSingleSize = size * maxSingleNum;

                if (files == null)
                {
                    this.MsgBox("请选择上传的图片!"); return(View(content));
                }
                else if (files.Count() >= 11)
                {
                    this.MsgBox("每次上传图片的数量不能超过10张!"); return(View(content));
                }
                else if (files.Sum(b => b.Length) >= maxSize)
                {
                    this.MsgBox($"每次上传图片的大小不能超过{maxNum}M!"); return(View(content));
                }
                else if (files.Any(b => b.Length >= maxSingleSize))
                {
                    this.MsgBox($"单张图片的大小不能超过{maxSingleNum}M!"); return(View(content));
                }

                //保存最小容量的一张
                var i           = 1;
                var file        = files.OrderBy(b => b.Length).FirstOrDefault();
                var fileExtend  = file.FileName.Substring(file.FileName.LastIndexOf('.'));
                var fileNewName = $"{DateTime.Now.ToString("yyyyMMddHHmmssfff")}{i}{fileExtend}";
                var path        = Path.Combine(_selfSetting.UpContentPhotoPath, fileNewName);
                using (var stream = new FileStream(path, FileMode.OpenOrCreate, FileAccess.ReadWrite))
                {
                    await file.CopyToAsync(stream);
                }

                //更新数据
                content.MaxPic     = $"{_selfSetting.ViewContentPhotoPath}/{fileNewName}";
                content.UserId     = _MyUserInfo.Id;
                content.CreateTime = DateTime.Now;

                _db.Add(content);

                //积分
                _db.ToUserLog.Add(new ToUserLog
                {
                    CodeId     = (int)EmLogCode.积分,
                    CreateTime = DateTime.Now,
                    Des        = $"【上传图片】  +{(int)EmLevelNum.上传图片}",
                    UserId     = _MyUserInfo.Id
                });

                var dbUser = _db.ToUserInfo.SingleOrDefault(b => b.Id == _MyUserInfo.Id);
                dbUser.LevelNum += (int)EmLevelNum.图片;

                //第一张保存在文件表中
                _db.ToContentFiles.Add(new ToContentFiles
                {
                    ContentId = content.Id,
                    MaxPic    = content.MaxPic,
                    MinPic    = content.MinPic,
                    ZanNum    = content.ZanNum
                });

                //保存其他图片到文件表中
                foreach (var item in files.Where(b => b.FileName != file.FileName).Distinct())
                {
                    i++;
                    var fileExtend01  = item.FileName.Substring(item.FileName.LastIndexOf('.'));
                    var fileNewName01 = $"{DateTime.Now.ToString("yyyyMMddHHmmssfff")}{i}{fileExtend01}";
                    var path01        = Path.Combine(_selfSetting.UpContentPhotoPath, fileNewName01);
                    using (var stream = new FileStream(path01, FileMode.OpenOrCreate, FileAccess.ReadWrite))
                    {
                        await item.CopyToAsync(stream);
                    }
                    _db.ToContentFiles.Add(new ToContentFiles
                    {
                        ContentId = content.Id,
                        MaxPic    = $"{_selfSetting.ViewContentPhotoPath}/{fileNewName01}",
                        MinPic    = null,
                        ZanNum    = 0
                    });
                }

                var result = await _db.SaveChangesAsync();

                if (result > 0)
                {
                    return(RedirectToAction(nameof(UserCenterController.Module), "usercenter", new { id = $"{module.Id}-1" }));
                }
                else
                {
                    this.MsgBox("保存失败,请稍后重试!");
                }
            }
            return(View(content));
        }