/// <summary> /// 向正在上机表插入学生信息 /// </summary> /// <param name="studentOnLien"></param> /// <returns></returns> private int InserStudentOnlien(StudentOnLine studentOnLien) { //调用接口实例化,D层查询类 LoginIDAL idal = (LoginIDAL)fact.CreateUser("LoginDal"); //接收接口的返回值 int Result =idal.InsertStudentOnLie(studentOnLien); return Result; }
/// <summary> /// 向值班表插入用户数据 /// </summary> /// <param name="insertonwork">值班人员</param> /// <returns>整数</returns> private int InserUserOnWork(UserOnWork insertonwork) { //调用接口实例化,D层查询类 LoginIDAL idal = (LoginIDAL)fact.CreateUser("LoginDal"); //接收接口的返回值 int Result = idal.InsertUser(insertonwork); return(Result); }
/// <summary> /// 用户登录 /// </summary> /// <param name="userlevel">用户</param> /// <returns>是否登录成功!</returns> public override string UserLogin(UserLevel userlevel, Form form) { //返回信息 string StrMesg = ""; //调用接口实例化D层查询类 LoginIDAL idal = (LoginIDAL)fact.CreateUser("LoginDal"); //实例化管理者实体和赋值 Managerial Manageria = new Managerial(); Manageria.ManId = userlevel.UserID;//登录id赋值给管理者ID //接受管理者信息 DataTable ManTable = idal.SelectState(Manageria); //判断账号是否使用 if (ManTable.Rows[0][3].ToString().Trim() == "使用") { #region 判断管理者是否已经登录 //实例化值班实体与赋值 UserOnWork userOnWork = new UserOnWork(); userOnWork.ManId = userlevel.UserID;//值班实体的管理者id赋值 //接受接口的返回值,返回整个值班表的信息。 DataTable OnWorkTable = idal.SelectOnUser(userOnWork); //判断管理者是否已经登录 if (OnWorkTable.Rows.Count == 0) //没有登录 { form.Hide(); //隐藏窗体 #region 向值班表插入信息 //给值班实体赋值 userOnWork.Level = userlevel.Userlevel; //管理者级别 userOnWork.Name = ManTable.Rows[0][1].ToString().Trim(); //管理者姓名 userOnWork.Ondate = DateTime.Now.Date; //登录日期 userOnWork.OnTime = DateTime.Parse(DateTime.Now.ToShortTimeString()); //登录时间 userOnWork.Computer = Computer.GetMachineName(); //计算机名 //调用插入方法 InserUserOnWork(userOnWork); #endregion //给全局ID赋值 UserLevel.UserIdall = userlevel.UserID; StrMesg = "登录成功!"; //显示管理员窗体 Form CreatForm = CreatfactForm.CreatFrom("AdminMain"); //实例化管理员窗体 CreatForm.Show(); //显示窗体 } else { StrMesg = "此账号已登录!"; } #endregion } else { StrMesg = "此账号未使用,请激活使用!"; }//end if return(StrMesg); }
/// <summary> /// 登录 /// </summary> /// <param name="userlevel">用户</param> /// <returns>是否上机成功!</returns> public override string UserLogin(UserLevel userlevel,Form form) { #region 实例化与赋值 string StrMsg="";//要返回的信息 LoginIDAL idal = (LoginIDAL)fact.CreateUser("LoginDal"); //调用接口实例化,D层查询类 RegistrationCardno RegisCardno = new RegistrationCardno(); //实例化实体 RegisCardno.StudentCardno = userlevel.UserID;//给卡号赋值 #endregion DataTable StuCardnoTable = idal.SelectStuCardno(RegisCardno);//接受卡号信息 RegisCardno.Studentbalance = double.Parse(StuCardnoTable.Rows[0][1].ToString());//给余额赋值 DataTable BasitInfoTable = idal.SelectBasitInfo();//接受基础信息 #region 判断卡号状态 //判断卡号状态 if (StuCardnoTable.Rows[0][4].ToString()=="已激活") { //判断余额是否充足 if (RegisCardno.Studentbalance >=double.Parse(BasitInfoTable.Rows[0][0].ToString())) { //实例化上机表实体与赋值 StudentOnLine stuOnLine = new StudentOnLine(); stuOnLine.StudentCardno = userlevel.UserID;//给卡号赋值 //获取上机表信息 DataTable OnWorkTable = idal.SelectOnStudent(stuOnLine); //查询卡号是否已经登录 if (OnWorkTable.Rows.Count==0)//没有登录 { form.Hide();//隐藏窗体 #region 给上机实体赋值 stuOnLine.StudentLevel = StuCardnoTable.Rows[0][3].ToString();//卡号类型赋值 stuOnLine.OnDate = DateTime.Now.Date;//上机日期 stuOnLine.OnTime = DateTime.Now.ToShortTimeString();//上机时间 stuOnLine.NowCash =RegisCardno.Studentbalance;//当前余额 stuOnLine.Computer = Computer.GetMachineName();//电脑名称 #endregion InserStudentOnlien(stuOnLine);//向上机表插入信息 UserLevel.UserIdall = userlevel.UserID; //给全局ID赋值 StrMsg = "上机成功!"; Form CreatForm = CreatfactForm.CreatFrom("StudentMain");//实例化学生窗体 CreatForm.Show();//显示窗体 } else { StrMsg = "此卡号已登录!"; }//end if } else { StrMsg = "余额不足,请充值"; }//end if } else { StrMsg = "此卡号未激活,请激活使用!"; }//end if #endregion return StrMsg;//返回登录信息 }
/// <summary> /// 登录业务 /// </summary> /// <param name="userid">用户id</param> /// <param name="pwd">密码</param> /// <returns>是否登录成功</returns> public string loginFacade(string userid, string pwd, Form form) { //用于返回信息 string strMsger = ""; //接受判空返回值,判断文本框是否为空。 string isNull = IsNull.isNull(form); //接受是不是数字的判断返回值 bool isNumber = IsNull.IsNumber(userid); //判断文本框是否为空 if (isNull == "")//没有返回值说明文本框不为空! { //判断UserID是不是数字 if (isNumber == true)//等于true,说明输入的是数字! { #region 赋值与转化实体 //转换为实体 UserLevel user = new UserLevel(); user.UserID = Convert.ToInt32(userid); user.UserPwd = pwd; #endregion #region 调用D层登录查询 //利用反射,实例化D层登录查询类 LoginIDAL idal = (LoginIDAL)fact.CreateUser("LoginDal"); //获取D层返回值 UserTable = idal.SelectUserLevel(user); #endregion #region 判断用户是否存在 //判断账号是否存在 if (UserTable.Rows.Count != 0) { //给级别赋值 user.Userlevel = UserTable.Rows[0][1].ToString().Trim(); #region 设置继续处理者 Level.LoginAdmin admin = new Level.LoginAdmin("管理员"); Level.LoginOpetion operation = new Level.LoginOpetion("操作员"); Level.LoginStudnet student = new Level.LoginStudnet("学生"); #endregion #region 级别判断 //判断级别 if (user.Userlevel == "管理员") { //继续处理者,跳转到对应的职责链 admin.SetSupertior(operation); admin.SetSupertior(student); strMsger = admin.UserLogin(user, form); } else if (user.Userlevel == "操作员") { //继续处理者,跳转到对应的职责链 operation.SetSupertior(admin); operation.SetSupertior(student); strMsger = operation.UserLogin(user, form); } else if (user.Userlevel == "学生") { //继续处理者,跳转到对应的职责链 student.SetSupertior(admin); student.SetSupertior(operation); strMsger = student.UserLogin(user, form); } #endregion } else { strMsger = "账号不存在,或密码错误!"; } //end if #endregion } else { //输入值不是数字 strMsger = "登录账号请输入数字!"; } } else { //文本框为空! strMsger = isNull;//把返回结果赋值给strMsger返回给U层 } return(strMsger); }