예제 #1
0
        public IActionResult Index([FromForm] UnitAddEditPostModel model)
        {
            //    var validationRules = new UnitValidation();
            //    var result = validationRules.Validate(model);
            if (!ModelState.IsValid)
            {
                return(Json(new AjaxResult()
                {
                    Status = "error", ErrorMsg = MvcHelper.GetValidMsg(ModelState)
                }));
            }

            var id = _unitSvc.AddOrEdit(model.Id, model.Name, model.Address, model.LinkMan, model.Tel, model.PhoneNum);

            if (id <= 0)
            {
                return(Json(new AjaxResult()
                {
                    Status = "error", ErrorMsg = "已存在相同的单位名称"
                }));
            }
            return(Json(new AjaxResult()
            {
                Status = "ok"
            }));
        }
예제 #2
0
        public IActionResult Index([FromForm] MenuAddEditPostModel model)
        {
            if (!ModelState.IsValid)
            {
                return(Json(new AjaxResult()
                {
                    Status = "error", ErrorMsg = MvcHelper.GetValidMsg(ModelState)
                }));
            }

            var dto = new MenuDTO()
            {
                Id          = model.Id,
                DisplayName = model.DisplayName,
                Name        = model.Name,
                IconUrl     = model.IconUrl,
                LinkUrl     = model.LinkUrl,
                ParentId    = model.ParentId,
                Permission  = model.Permission,
                Sort        = model.Sort
            };
            var id = _menuService.AddOrEdit(dto);

            if (id <= 0)
            {
                return(Json(new AjaxResult()
                {
                    Status = "error", ErrorMsg = "已存在相同的菜单名称"
                }));
            }
            return(Json(new AjaxResult()
            {
                Status = "ok"
            }));
        }
예제 #3
0
        public IActionResult DeviceIndex([FromForm] UnitDeviceAddEditPostModel model)
        {
            if (!ModelState.IsValid)
            {
                return(Json(new AjaxResult()
                {
                    Status = "error", ErrorMsg = MvcHelper.GetValidMsg(ModelState)
                }));
            }
            var id           = User.Claims.FirstOrDefault(t => t.Type == "Id")?.Value;
            var unitDeviceId = _unitSvc.AddOrEdit(model.Id, model.UnitId, model.DeviceId, Convert.ToInt64(id), model.SNCode);

            if (unitDeviceId <= 0)
            {
                return(Json(new AjaxResult()
                {
                    Status = "error", ErrorMsg = "已存在相同的SN码"
                }));
            }

            return(Json(new AjaxResult()
            {
                Status = "ok"
            }));
        }
예제 #4
0
        public IActionResult ForgetPwdStepThree(PwdForgetStepThreePostModel model)
        {
            if (!ModelState.IsValid)
            {
                return(Json(new AjaxResult()
                {
                    Status = "error", ErrorMsg = MvcHelper.GetValidMsg(ModelState)
                }));
            }

            var account = (string)TempData["Account"];

            if (string.IsNullOrEmpty(account))
            {
                return(Json(new AjaxResult()
                {
                    Status = "error", ErrorMsg = "账号信息查找失败"
                }));
            }
            _userSvc.ChangePwd(account, model.Password);
            return(Json(new AjaxResult()
            {
                Status = "ok"
            }));
        }
예제 #5
0
        public IActionResult Register(RegisterPostModel model)
        {
            if (!ModelState.IsValid)
            {
                return(Json(new AjaxResult {
                    Status = "error", ErrorMsg = MvcHelper.GetValidMsg(ModelState)
                }));
            }
            //验证码
            var serverCaptcha = (string)HttpContext.Session.GetString("CaptchaStr");

            if (string.IsNullOrEmpty(serverCaptcha) || serverCaptcha.ToLower() != model.Captcha.ToLower())//不区分大小写,一律转换成小写再去比较
            {
                return(Json(new AjaxResult {
                    Status = "error", ErrorMsg = "验证码错误。"
                }));
            }

            //
            var id = _userSvc.AddNew(model.PhoneNum, model.Email, model.Name, model.Password, model.RoleId, true);

            if (id == -1)
            {
                return(Json(new AjaxResult {
                    Status = "error", ErrorMsg = "电子邮箱或者手机号已经存在。"
                }));
            }
            return(Json(new AjaxResult {
                Status = "ok"
            }));
        }
예제 #6
0
        public async Task <IActionResult> ForgetPwdStepOne(PwdForgetStepOnePostModel model)
        {
            if (!ModelState.IsValid)
            {
                return(Json(new AjaxResult()
                {
                    Status = "error", ErrorMsg = MvcHelper.GetValidMsg(ModelState)
                }));
            }
            //验证码
            var serverCaptcha = (string)TempData["CaptchaStr"];

            if (string.IsNullOrEmpty(serverCaptcha) || serverCaptcha.ToLower() != model.Captcha.ToLower())//不区分大小写,一律转换成小写再去比较
            {
                return(Json(new AjaxResult {
                    Status = "error", ErrorMsg = "验证码错误。"
                }));
            }
            //账户号是否存在
            var user = _userSvc.GetUser(model.Account);

            if (user == null)
            {
                return(Json(new AjaxResult {
                    Status = "error", ErrorMsg = "账号不存在。"
                }));
            }

            //发送验证码
            try
            {
                //生成验证码
                var code = VerifyCodeHelper.GetSingleObj()
                           .CreateVerifyCode(VerifyCodeHelper.VerifyCodeType.NumberVerifyCode, 6);
                TempData["PwdForgetCaptcha"] = code;
                TempData["Account"]          = model.Account;
                await _emailSender.SendEmailAsync(model.Account, EmailType.Captcha, $"验证码:{code},请在5分钟内验证。如非本人操作,请忽略。");

                //sender.SendEmail(model.Account, EmailType.Captcha, $"验证码:{code},请在5分钟内验证。如非本人操作,请忽略。");
                _logger.LogInformation("邮件发送:To" + model.Account + ",类型:" + EmailType.Captcha);
            }
            catch (Exception e)
            {
                _logger.LogError("邮箱验证码发送失败", e);
                return(Json(new AjaxResult {
                    Status = "error", ErrorMsg = "邮箱验证码发送失败"
                }));
            }
            return(Json(new AjaxResult {
                Status = "ok"
            }));
        }
예제 #7
0
        public IActionResult Index([FromForm] UserAddEditPostModel model)
        {
            if (!ModelState.IsValid)
            {
                return(Json(new AjaxResult()
                {
                    Status = "error", ErrorMsg = MvcHelper.GetValidMsg(ModelState)
                }));
            }

            if (model.Id <= 0)//新增
            {
                var pwd = model.PhoneNum.Substring(5);
                var id  = _userSvc.AddNew(model.PhoneNum, model.Email, model.UserName, pwd, model.RoleId, model.IsLock);
                if (id <= 0)
                {
                    return(Json(new AjaxResult()
                    {
                        Status = "error", ErrorMsg = "已存在相同的手机号或者邮箱"
                    }));
                }

                return(Json(new AjaxResult()
                {
                    Status = "ok"
                }));
            }
            else//修改
            {
                var id = _userSvc.Update(model.Id, model.PhoneNum, model.Email, model.UserName, model.RoleId);
                if (id <= 0)
                {
                    return(Json(new AjaxResult()
                    {
                        Status = "error", ErrorMsg = "已存在相同的手机号或者邮箱"
                    }));
                }

                return(Json(new AjaxResult()
                {
                    Status = "ok"
                }));
            }
        }
예제 #8
0
        public IActionResult Index([FromForm] RoleAddEditPostModel model)
        {
            if (!ModelState.IsValid)
            {
                return(Json(new AjaxResult()
                {
                    Status = "error", ErrorMsg = MvcHelper.GetValidMsg(ModelState)
                }));
            }

            try
            {
                using (var tran = new TransactionScope())
                {
                    var roleId = _roleService.AddOrEdit(model.Id, model.Name, model.Remark);
                    if (roleId <= 0)
                    {
                        return(Json(new AjaxResult()
                        {
                            Status = "error", ErrorMsg = "已存在相同的角色名称"
                        }));
                    }

                    _menuService.AddMenuIds(roleId, model.MenuIds);
                    tran.Complete();
                }
            }
            catch (Exception e)
            {
                _logger.LogError(e.Message);
                return(Json(new AjaxResult()
                {
                    Status = "error", ErrorMsg = "出错了,详见错误日志"
                }));
            }


            return(Json(new AjaxResult()
            {
                Status = "ok"
            }));
        }
예제 #9
0
        public IActionResult Index([FromForm] DeviceAddEditPostModel model)
        {
            if (!ModelState.IsValid)
            {
                return(Json(new AjaxResult()
                {
                    Status = "error", ErrorMsg = MvcHelper.GetValidMsg(ModelState)
                }));
            }

            var id = _deviceService.AddOrEdit(model.Id, model.Name, model.Version, model.Maker);

            if (id <= 0)
            {
                return(Json(new AjaxResult()
                {
                    Status = "error", ErrorMsg = "已存在相同名称和型号的设备"
                }));
            }
            return(Json(new AjaxResult()
            {
                Status = "ok"
            }));
        }
예제 #10
0
        public async Task <IActionResult> LoginAsync(LoginPostModel model)
        {
            //ViewData["ReturnUrl"] = returnUrl;
            if (!ModelState.IsValid)
            {
                return(Json(new AjaxResult {
                    Status = "error", ErrorMsg = MvcHelper.GetValidMsg(ModelState)
                }));
            }

            #region 验证码
            var serverCaptcha = (string)HttpContext.Session.GetString("CaptchaStr");

            if (string.IsNullOrEmpty(serverCaptcha) || serverCaptcha.ToLower() != model.Captcha.ToLower())//不区分大小写,一律转换成小写再去比较
            {
                return(Json(new AjaxResult {
                    Status = "error", ErrorMsg = "验证码错误。"
                }));
            }
            #endregion
            //账号密码的验证


            var ip = HttpContext.GetClientUserIp();

            //账号密码
            var user = _userSvc.Login(model.Account, model.Password, ip);
            if (user == null)
            {
                return(Json(new AjaxResult {
                    Status = "error", ErrorMsg = "账号或密码错误。"
                }));
            }

            //账号状态
            if (user.IsLock)
            {
                return(Json(new AjaxResult {
                    Status = "error", ErrorMsg = "该账号未审核或已被锁定"
                }));
            }

            var claims = new List <Claim>()
            {
                new Claim(ClaimTypes.Name, user.Name),              //姓名
                new Claim(ClaimTypes.MobilePhone, user.PhoneNum),   //手机号
                new Claim(ClaimTypes.Email, user.Email),            //邮箱
                new Claim(ClaimTypes.Role, user.RoleId.ToString()), //角色
                new Claim("Id", user.Id.ToString()),
                new Claim("SigninCount", user.SigninCount.ToString()),
                new Claim("LastSigninTime", user.LastSigninTimeStr),
                new Claim("LastSigninIP", user.LastSigninIP)
            };
            var claimsIdentity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme);

            await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme,
                                          new ClaimsPrincipal(claimsIdentity));

            return(Json(new AjaxResult {
                Status = "ok"
            }));
        }