private async Task <int> CheckHisLogin(HisLoginViewModel model) { var login = CheckHisLogin_PwdCheck(model); await SignInProcess(login, model.StationId, findDepartId(login.DoctorId.Value, model.StationId), model.LoginExtMobile); return(login.CustomerId.Value); }
//修改接诊科室 public Task <IActionResult> ChangeDepart(int departId) { Models.ViewModel.HisLoginViewModel model = new HisLoginViewModel() { DepartId = departId, StationId = UserSelf.StationId }; return(ReLogin(model)); }
private vwCHIS_Sys_Login CheckHisLogin_PwdCheck(HisLoginViewModel model, bool pwdEncrypt = true) { var login = GetLoginInfoName(model.LoginName); if (login == null) { throw new Exception("没有找到该登录信息。"); } if (model.IsPasswordVCode) //验证码登录 { if (model.LoginName.GetStringType().IsMobile) { var vcode = _db.CHIS_DataTemp_SMS.AsNoTracking() .Where(m => m.PhoneCode == model.LoginName && m.VCodeProp == "DPWD" && m.CreatTime > DateTime.Now.AddMinutes(-10)) .OrderByDescending(m => m.CreatTime).FirstOrDefault(); if (vcode == null) { throw new Exception("没有获取到动态密码的信息"); } if ((DateTime.Now - vcode.CreatTime.Value).TotalSeconds > 240) { throw new Exception("验证动态密码超时"); } if (model.LoginPassword != (pwdEncrypt ? Ass.Data.Secret.MD5(vcode.VCode) : vcode.VCode)) { throw new Exception("验证动态密码错误!"); } } else if (model.LoginName.GetStringType().IsEmail) { var vcode = _db.CHIS_DataTemp_SendMailVCode.AsNoTracking() .Where(m => m.EmailAddress == model.LoginName && m.VCodeProp == "DPWD" && m.CreatTime > DateTime.Now.AddMinutes(-10)) .OrderByDescending(m => m.CreatTime).FirstOrDefault(); if (vcode == null) { throw new Exception("没有获取到动态密码的信息"); } if ((DateTime.Now - vcode.CreatTime.Value).TotalSeconds > 120) { throw new Exception("验证动态密码超时"); } if (model.LoginPassword != (pwdEncrypt ? Ass.Data.Secret.MD5(vcode.VCode) : vcode.VCode)) { throw new Exception("验证动态密码错误!"); } } else { throw new Exception("非手机号码或邮箱,不能使用动态密码登录。"); } } else { //密码是明码,后续改成md5加密码 if (login.LoginPassword.IsEmpty()) { throw new Exception("没有设置密码"); } if ((pwdEncrypt ? Ass.Data.Secret.MD5(login.LoginPassword) : login.LoginPassword) != model.LoginPassword) { throw new Exception("密码错误!"); } } return(login); }