/// <summary> /// 激活卡号 /// </summary> /// <param name="Cardno">卡号</param> /// <param name="form">操作员窗体</param> /// <returns>返回是否激活成功!</returns> public string ActicateCardnoInfo(string Cardno, Form form) { //用于返回信息 string strMsger = ""; //接受判空返回值,判断文本框是否为空。 string isNull = IsNull.isNull(form); //接受是不是数字的判断返回值 bool isNumber = IsNull.IsNumber(Cardno); //判断卡号是否为空 if (isNull == "")//没有返回值,说明不为空。 { //判断卡号是否位数字 if (isNumber == true)//是数字 { #region 激活卡号 //调用激活卡号的数据层接口和创建DAL层工厂,实例化具体的DAL层类 ActivateCardIDAL activaIDAL = (ActivateCardIDAL)fact.CreateUser("ActivateCardDAL"); //转换为实体 RegistrationCardno registCardno = new RegistrationCardno(); registCardno.StudentCardno = int.Parse(Cardno);//给实体卡号赋值 //获取卡号信息 DataTable CardnoInfoTable = activaIDAL.SelectRegistartCardnoInfo(registCardno); //判断卡号是否存在 if (CardnoInfoTable.Rows.Count != 0)//说明卡号存在 { //判断卡号目前的使用状态,是否已经被激活。 if (CardnoInfoTable.Rows[0][4].ToString() == "已激活") { strMsger = "此卡号已经被激活,请勿重复操作!"; } else { //更新卡号状态为,已激活。 registCardno.State = "已激活"; //给卡号状态从新赋值 activaIDAL.UpdateCardnoState(registCardno); //更新卡号状态 strMsger = "卡号激活成功!"; } } else { //说明卡号不存在 strMsger = "卡号不存在,请从新输入!"; } #endregion } else { strMsger = "卡号请输入数字!"; } } else { //否则为空 strMsger = isNull; } return(strMsger); }
/// <summary> /// 查询卡号信息 /// </summary> /// <param name="registarCardno">卡号实体</param> /// <returns>卡号信息:以DataTable形式返回</returns> public DataTable SelectRegistartCardnoInfo(RegistrationCardno registarCardno) { //定义参数 SqlParameter[] sqlpams = { new SqlParameter("@StudentCardno", registarCardno.StudentCardno) }; //定义SQL语句 string sql = @"select * from RegistrationCardno where StudentCardno=@StudentCardno"; DataTable CardnoInfoTable = sqlHelper.ExecuteQuery(sql, sqlpams, CommandType.Text); //接受查询结果 return(CardnoInfoTable); //返回查询结果 }
/// <summary> /// 查询卡号信息 /// </summary> /// <param name="CardnoState">卡号实体</param> /// <returns>卡号信息</returns> public DataTable SelectRegistCardno(RegistrationCardno CardnoState) { //定义参数 SqlParameter[] sqlpams = { new SqlParameter("@StudentCardno", CardnoState.StudentCardno) }; //定义SQL语句 string sql = @"select * from RegistrationCardno where StudentCardno=@StudentCardno"; //接受出现结果 DataTable UserTable = sqlHelper.ExecuteQuery(sql, sqlpams, CommandType.Text); return(UserTable);//返回查询结果 }
/// <summary> /// 更新卡号状态 /// </summary> /// <param name="registarCardno">卡号实体</param> /// <returns> 受影响行数</returns> public int UpdateCardnoState(RegistrationCardno registarCardno) { //定义参数 SqlParameter[] sqlpams = { new SqlParameter("@StudentCardno", registarCardno.StudentCardno), new SqlParameter("@State", registarCardno.State) }; //定义SQL语句 string sql = @" update RegistrationCardno set State=@State where StudentCardno=@StudentCardno"; int Relust = sqlHelper.ExecuteNonQuery(sql, sqlpams, CommandType.Text); //受影响行数 return(Relust); //返回受影响行数 }
/// <summary> /// 查询卡号是否存在 /// </summary> /// <param name="regisCardno">卡号实体</param> /// <returns>返回卡号信息</returns> public DataTable SelectRegisCardnoInfo(RegistrationCardno regisCardno) { //定义参数 SqlParameter[] sqlamps = { new SqlParameter("@StudentCardno", regisCardno.StudentCardno) }; //定义SQL语句 string sql = @"select * from RegistrationCardno where StudentCardno=@StudentCardno"; //接受查询结果 DataTable RegisCardnoInfo = sqlHelper.ExecuteQuery(sql, sqlamps, CommandType.Text); return(RegisCardnoInfo); }
/// <summary> /// 向报表插入信息 /// </summary> /// <param name="SellCash">售卡金额</param> /// <param name="CanCash">退卡金额</param> /// <param name="RecCAsh">充值金额</param> /// <param name="NowCash">本期金额</param> /// <param name="Opertion">操作员</param> /// <param name="Date">结账日期</param> /// <returns></returns> public string InsertRecheck(string SellCash, string CanCash, string RecCAsh, string NowCash, string Opertion, string Date, Form form, string admin) { string Strms = ""; string isnull = IsNull.isNull(form);//判断文本框是否为空 string isGroupNumber = IsNull.GroupIsNumber(form); //判断文本框是否为空 if (isnull == "") //没有返回值说明不为空 { //判断文本内容是否是数字 if (isGroupNumber == "")//没有返回值,说明都是数字 { SettleAccountsIDAL settAccoutIDAL = (SettleAccountsIDAL)fact.CreateUser("SettleAccountsDAL"); //转成售卡实体 RegistrationCardno regist = new RegistrationCardno(); regist.OpertionID = int.Parse(Opertion); regist.AccountsState = "已结账"; settAccoutIDAL.UpdateRegistrationCardno(regist);//更新售卡结账状态 //转成充值实体 Recharge recharge = new Recharge(); recharge.OpertionID = int.Parse(Opertion); recharge.State = "已结账"; settAccoutIDAL.UpdateRecharge(recharge);//更新充值结账状态 //转成退卡实体 CanceCard cancardno = new CanceCard(); cancardno.OperationID = int.Parse(Opertion); cancardno.State = "已结账"; settAccoutIDAL.UpdateCancelCard(cancardno);//更新退卡结账状态 //向报表插入信息 //转成报表实体 Recheck recheck = new Recheck(); recheck.SallCash = double.Parse(SellCash); recheck.RechargeCash = double.Parse(RecCAsh); recheck.CanCash = double.Parse(CanCash); recheck.Currentincome = double.Parse(NowCash); recheck.Opertion = int.Parse(admin); recheck.CheckDate = DateTime.Parse(Date); settAccoutIDAL.InsertRecheck(recheck); Strms = "结账成功!"; } else { Strms = isGroupNumber; } } else { Strms = isnull; } return(Strms); }
/// <summary> /// 删除卡号表卡号信息 /// </summary> /// <param name="regisCardno">卡号实体</param> /// <returns>受影响行数</returns> public int DeleteRegiscardnoInfo(RegistrationCardno regisCardno) { //定义参数 SqlParameter[] sqlamps = { new SqlParameter("@StudentCardno", regisCardno.StudentCardno) }; //定义SQL语句 string sql = @"delete RegistrationCardno where StudentCardno=@StudentCardno"; //接受受影响行数 int Relust = sqlHelper.ExecuteNonQuery(sql, sqlamps, CommandType.Text); return(Relust); }
/// <summary> /// 查询余额 /// </summary> /// <param name="regiCardnoCash">余额</param> /// <returns>卡号信息</returns> public DataTable SelectCash(RegistrationCardno regiCardnoCash) { //定义参数 SqlParameter[] sqlams = { new SqlParameter("@StudentCardno", regiCardnoCash.StudentCardno) }; //定义SQL语句 string sql = @"select Studentbalance from RegistrationCardno where StudentCardno=@StudentCardno"; //获取查询结果 DataTable SelectCash = sqlHelper.ExecuteQuery(sql, sqlams, CommandType.Text); return(SelectCash);//返回查询结果 }
/// <summary> /// 查询卡号是否存在 /// </summary> /// <param name="StudentCardno">卡号实体</param> /// <returns>整个卡号信息表</returns> public DataTable SelectStudentCardno(RegistrationCardno StudentCardno) { //定义参数 SqlParameter[] sqlams = { new SqlParameter("@StudentCardno", StudentCardno.StudentCardno) }; //定义SQL语句 string sql = @"select * from RegistrationCardno where StudentCardno=@StudentCardno"; //执行SQL语句 DataTable RegistraTable = sqlHelper.ExecuteQuery(sql, sqlams, CommandType.Text); return(RegistraTable);//返回查询结果 }
/// <summary> /// 更新卡号使用状态 /// </summary> /// <param name="CardnoState">卡号使用状态</param> /// <returns>受影响的行数</returns> public int UpdateCardnoState(RegistrationCardno CardnoState) { //定义参数 SqlParameter[] sqlparms = { new SqlParameter("@StudentCardno", CardnoState.StudentCardno), //卡号 new SqlParameter("@State", CardnoState.State) }; //卡号使用状态 //定义SQL语句 string sql = @"update RegistrationCardno set State=@State where StudentCardno=@StudentCardno"; //接受受影响行数 int Relust = sqlHelper.ExecuteNonQuery(sql, sqlparms, CommandType.Text); return(Relust);//返回受影响的行数 }
/// <summary> /// 更新卡号表结账状态 /// </summary> /// <param name="registration">注册表实体</param> /// <returns>受影响行数</returns> public int UpdateRegistrationCardno(RegistrationCardno registration) { //定义参数 SqlParameter[] sqlpams = { new SqlParameter("@OpertionID", registration.OpertionID), new SqlParameter("@AccountsState", registration.AccountsState) }; //定义查询参数 string sql = @"update RegistrationCardno set AccountsState=@AccountsState where OpertionID=@OpertionID and AccountsState='未结账'"; //接受受影响行数 int Relust = sqlHelper.ExecuteNonQuery(sql, sqlpams, CommandType.Text); return(Relust); }
/// <summary> /// 卡号信息查询 /// </summary> /// <param name="registration">注册卡号实体</param> /// <returns></returns> public DataTable SelectRegistrationCardno(RegistrationCardno registration) { //定义参数 SqlParameter[] sqlpams = { new SqlParameter("@OpertionID", registration.OpertionID), new SqlParameter("@AccountsState", registration.AccountsState) }; //定义SQL语句 string sql = @"select * from RegistrationCardno where OpertionID=@OpertionID and AccountsState=@AccountsState"; //接受查询的返回值 DataTable SelectRegistrationCardnoTable = sqlHelper.ExecuteQuery(sql, sqlpams, CommandType.Text); return(SelectRegistrationCardnoTable); }
/// <summary> /// 更新卡号余额 /// </summary> /// <param name="StudentCash">卡号余额</param> /// <returns>受影响行数</returns> public int UpdateCardnoCash(RegistrationCardno StudentCash) { //定义参数 SqlParameter[] sqlams = { new SqlParameter("@StudentCardno", StudentCash.StudentCardno), new SqlParameter("@Studentbalance", StudentCash.Studentbalance) }; //定义SQL语句 string sql = @"update RegistrationCardno set Studentbalance=@Studentbalance where StudentCardno=@StudentCardno"; //执行SQL语句 int Relust = sqlHelper.ExecuteNonQuery(sql, sqlams, CommandType.Text); return(Relust);//返回受影响行数 }
/// <summary> /// 更新卡号余额和使用方法 /// </summary> /// <param name="studentCsh">余额实体</param> /// <returns>受影响行数</returns> public int UpdateRegiCardno(RegistrationCardno studentCsh) { //定义参数 SqlParameter[] sqlParms = { new SqlParameter("@Studentbalance", studentCsh.Studentbalance), new SqlParameter("@StudentCardno", studentCsh.StudentCardno), new SqlParameter("@State", studentCsh.State) }; //定义SQL语句 string sql = @"update RegistrationCardno set Studentbalance=@Studentbalance,State=@State where StudentCardno=@StudentCardno"; //接受查询结果 int Relust = sqlHelper.ExecuteNonQuery(sql, sqlParms, CommandType.Text); return(Relust);//返回结果 }
/// <summary> /// 向卡号表插入卡号信息 /// </summary> /// <param name="Cardno">卡号实体</param> /// <returns></returns> public int InsertCarndo(RegistrationCardno Cardno) { //定义参数 SqlParameter[] sqlparms = { new SqlParameter("@StudentCardno", Cardno.StudentCardno), //卡号 new SqlParameter("@Studentbalance", Cardno.Studentbalance), //余额 new SqlParameter("@Initialamount", Cardno.Initialamount), //开卡金额 new SqlParameter("@StudentLeve", Cardno.StudentLeve), //卡号类型 new SqlParameter("@State", Cardno.State), //卡号使用状态 new SqlParameter("@OpertionID", Cardno.OpertionID), new SqlParameter("@AccountsState", Cardno.AccountsState) }; //结账状态 //定义SQL语句 string sql = @"insert into RegistrationCardno values(@StudentCardno,@Studentbalance,@Initialamount,@StudentLeve,@State,@OpertionID,@AccountsState)"; //接受受影响行数 int Relust = sqlHelper.ExecuteNonQuery(sql, sqlparms, CommandType.Text); return(Relust);//返回受影响的行数 }
/// <summary> /// 查询余额 /// </summary> /// <param name="Cardno">卡号</param> /// <returns>余额</returns> public string SelectCash(string Cardno, Form form) { //用于返回信息 string strMsger = ""; //接受判空返回值,判断文本框是否为空。 string isNull = IsNull.isNull(form); //接受是不是数字的判断返回值 bool isNumber = IsNull.IsNumber(Cardno); //判断文本框是否为空 if (isNull == "")//没有返回值,说明不为空。 { //判断卡号是否是数字 if (isNumber == true)//是数字 { //调用查询余额数据层接口和实例化DAL数据层工厂,实例化具体的DAL层类 QueryCashIDAL queryIDAL = (QueryCashIDAL)fact.CreateUser("QueryCashDAL"); //转换成卡号实体 RegistrationCardno regCardno = new RegistrationCardno(); regCardno.StudentCardno = int.Parse(Cardno); //获取卡号余额 DataTable SelectStuCash = queryIDAL.SelectCash(regCardno); //判断卡号是否存在 if (SelectStuCash.Rows.Count == 0)//卡号不存在 { strMsger = "卡号不存在,请从新输入!"; } else { strMsger = SelectStuCash.Rows[0][0].ToString();//返回余额 } } else { strMsger = "卡号请输入数字!"; } } else { strMsger = isNull; } return(strMsger); }
/// <summary> /// 查询卡号信息记录 /// </summary> /// <param name="OpertionID">操作员ID</param> /// <param name="Sate">结账状态</param> /// <returns></returns> public DataTable SelectCardnoInfo(string OpertionID, out string StrMsg) { bool IsNumber = IsNull.IsNumber(OpertionID); DataTable CardnoTable = new DataTable();//返回表信息 //调用接口和工厂创建DAL层具体类 SettleAccountsIDAL setteAcounIDAL = (SettleAccountsIDAL)fact.CreateUser("SettleAccountsDAL"); //判断操作员ID是否为空 if (OpertionID.Trim() == "")//说明操作员ID为空 { StrMsg = "操作员ID不能为空"; } else { //判断操作员ID是否是数字 if (IsNumber == true)//是数字 { #region 查询卡号信息 RegistrationCardno registarCardno = new RegistrationCardno(); registarCardno.OpertionID = int.Parse(OpertionID); registarCardno.AccountsState = "未结账"; CardnoTable = setteAcounIDAL.SelectRegistrationCardno(registarCardno); //获取卡号信息 //判断是否有卡号信息 if (CardnoTable.Rows.Count != 0) { StrMsg = "查询完毕!"; } else { StrMsg = "暂时没有卡号信息!"; } #endregion } else { StrMsg = "操作员ID必须输入数字,请从新输入!"; } } return(CardnoTable);//返回表里内容 }
/// <summary> /// 注册卡号方法 /// </summary> /// <param name="Cardno">卡号</param> /// <param name="CardnoType">卡号类型</param> /// <param name="CardnoPwd">密码</param> /// <param name="CardnoCash">余额</param> /// <param name="Cardnoblane">开卡金额</param> /// <param name="CardnoState">卡号状态</param> /// <param name="CardnoName">姓名</param> /// <param name="CardnoSex">性别</param> /// <param name="CardnoAge">年龄</param> /// <param name="CarnodNumber">电话号</param> /// <param name="CardnoAddess">住址</param> /// <param name="CardnoGarde">年级</param> /// <param name="weChat">微信</param> /// <returns></returns> public string RegistartonCardno(string Cardno, string CardnoType, string CardnoPwd, string CardnoCash, string Cardnoblane, string CardnoState, string CardnoName, string CardnoSex, string CardnoAge, string CarnodNumber, string CardnoAddess, string CardnoGarde, string weChat, Form form) { //用于返回信息 string strMsger = ""; //接受判空返回值,判断文本框是否为空。 string isNull = IsNull.isNull(form); //接受是不是数字的判断返回值 bool isNumber = IsNull.IsNumber(Cardno); //判断是否有值 if (isNull == "")//不为空 { //判断卡号是否是数字 if (isNumber == true)//返回true说明是数字 { //调用注册接口和工厂创建DAL层查询。 RegistrationCardnoIDAL RegistIdal = (RegistrationCardnoIDAL)fact.CreateUser("RegistrationCardnoDAL"); #region 注册卡号 //查询卡号是否已经存在。 RegistrationCardno user = new RegistrationCardno(); user.StudentCardno = int.Parse(Cardno); //卡号赋值 DataTable RegitTable = RegistIdal.SelectRegistCardno(user); //获取卡号表内容 RegistrationCardno StuCarndo = new RegistrationCardno(); //实例化卡号实体 #region 判断卡号是否已经注册 if (RegitTable.Rows.Count == 0) //没有查到用户,说明没有注册。就可以进行注册 { //获取基础表信息的最小充值金额 DataTable BasiTable = RegistIdal.SelectBasit(); double LimetRegch = double.Parse(BasiTable.Rows[0][1].ToString());//最小充值金额 #region 判断金额是否大于等于最小充值金额 if (double.Parse(CardnoCash) >= LimetRegch) { UserLevel userlevel = new UserLevel(); userlevel.UserID = int.Parse(Cardno); DataTable SeleceLevel = RegistIdal.SelectUserLevel(userlevel); //判断卡号是否和管理者冲突 if (SeleceLevel.Rows.Count == 0) { #region 添加注册信息 //添加登录信息 UserLevel use = new UserLevel(); use.UserID = int.Parse(Cardno); use.Userlevel = "学生"; //级别 use.UserPwd = CardnoPwd; //密码 RegistIdal.InsertUserLogin(use); //向登录表添加信息 #region 给卡号实体赋值 StuCarndo.StudentCardno = int.Parse(Cardno); //卡号 StuCarndo.StudentLeve = CardnoType; //学生类型 StuCarndo.Initialamount = int.Parse(Cardnoblane); //开卡金额 StuCarndo.State = CardnoState; //使用状态 StuCarndo.Studentbalance = double.Parse(CardnoCash); //余额 StuCarndo.OpertionID = UserLevel.UserIdall; //操作员ID StuCarndo.AccountsState = "未结账"; //结账状态 #endregion RegistIdal.InsertCarndo(StuCarndo); //向卡号表插入信息 #region 实例化学生信息与赋值 StudentInfo studentinfo = new StudentInfo(); studentinfo.StudentCardno = int.Parse(Cardno); //卡号 studentinfo.Grade = CardnoGarde; //年级 studentinfo.HomeAddress = CardnoAddess; //住址 studentinfo.Name = CardnoName; //姓名 studentinfo.Sex = CardnoSex; //性别 studentinfo.WeChat = weChat; //微信 studentinfo.Age = int.Parse(CardnoAge); //年龄 studentinfo.CallNumber = CarnodNumber; //手机号码 #endregion RegistIdal.InsertStudentInfo(studentinfo); //向学生信息表插入信息 #region 向充值记录表添加信息 //调用充值接口和创建DAL层的工厂,实例化DAL层具体的类 RechargeIDAL RecarIDAL = (RechargeIDAL)fact.CreateUser("RechargeDAL"); //插入充值记录 Recharge recahrge = new Recharge(); //实例化充值表实体 recahrge.StudentCardno = int.Parse(Cardno); //充值卡号 recahrge.RechargeCash = double.Parse(CardnoCash); //充值金额 recahrge.OpertionID = UserLevel.UserIdall; //充值的操作员 recahrge.RechargeDate = DateTime.Now.Date; //充值日期 recahrge.RechargeTime = DateTime.Now.ToShortTimeString(); //充值时间 recahrge.State = "未结账"; //结账状态 //调用插入方法 RecarIDAL.InsertRecharge(recahrge); #endregion #endregion strMsger = "注册成功!"; } else { strMsger = "此卡号与管理者冲突,请从新输入!"; } } else//否则提醒,充值金额小于最小充值金额! { strMsger = "温馨提示,充值金额不得小于" + LimetRegch + "元"; }//end if #endregion } else//否则说明已经注册,就进行激活或者提醒卡号已注册。 { StuCarndo.StudentCardno = int.Parse(Cardno); DataTable CardnoTable = RegistIdal.SelectRegistCardno(StuCarndo); //获取卡号信息 //判断卡号是否已经激活 if (CardnoTable.Rows[0][4].ToString() != "已激活") { //进行激活操作 StuCarndo.State = "已激活"; RegistIdal.UpdateCardnoState(StuCarndo);//激活卡号 strMsger = "卡号激活成功!"; } else { strMsger = "此卡号已激活,请从新输入卡号!"; } } #endregion #endregion } else { strMsger = "卡号请输入数字!"; } } else { strMsger = isNull;//返回错误 }//end if return(strMsger); }
/// <summary> /// 学生下机 /// </summary> /// <param name="StuentCardno">学生卡号</param> /// <param name="TimeSolt">上机时长</param> /// <returns></returns> public void LoginOutStudent(string StuentCardno, string stuName) { #region 实例化退出工厂 //使用工厂实例化接口 LoginOutStudentIDAL idal = (LoginOutStudentIDAL)fact.CreateUser("LoginOutStudentDAL"); DataTable BasitInfoTable = idal.SelectBasit(); //获取基础信息 //获取正在上机的卡号信息 StudentOnLine studentOnline = new StudentOnLine(); //实例化正在上机实体 studentOnline.StudentCardno = int.Parse(StuentCardno); //给卡号赋值 DataTable OnlineTable = idal.SelectOnLineStudent(studentOnline); //获取正在上机的卡号信息 #endregion #region 计算上机时长 double LimTime = double.Parse(BasitInfoTable.Rows[0][2].ToString()); //给最小上机时间赋值 //获取上机日期+时间 string LoginData = DateTime.Parse(OnlineTable.Rows[0][3].ToString()).ToString("yyyy/MM/dd"); //获取上机日期 string LoginTime = DateTime.Parse(OnlineTable.Rows[0][4].ToString()).ToShortTimeString(); //获取上机时间 string LoginDateTime = LoginData + " " + LoginTime; //合并上机日期+时间 //获取下机日期+时间 string LoginOutData = DateTime.Parse(DateTime.Now.Date.ToString()).ToString("yyyy/MM/dd"); //获取上机日期 string LoginOutTime = DateTime.Now.ToShortTimeString(); //获取上机时间 string LoginOutDateTime = LoginOutData + " " + LoginOutTime; //合并上机日期+时间 //公式:下机日期和时间-上机日期和时间=上机时长 TimeSpan TimeSolt = DateTime.Parse(LoginOutDateTime) - DateTime.Parse(LoginDateTime); #endregion #region 计算消费金额 string stuentType = OnlineTable.Rows[0][1].ToString(); //给卡号类型赋值 double Cash = 0; //收费标准 //给收费标准赋值 if (stuentType == "固定用户") { Cash = double.Parse(BasitInfoTable.Rows[0][3].ToString());//给固定用户收费标准赋值 } else if (stuentType == "临时用户") { Cash = double.Parse(BasitInfoTable.Rows[0][4].ToString());//给临时用户收费标准赋值 }//end if //实例化策略模式,传入卡号类型和对应的收费标准。 Cash.StuCashContext stuCashContext = new Cash.StuCashContext(stuentType, Cash); //传入:消费时长和最小上机时间,得到消费金额 double Money = stuCashContext.GetResult(TimeSolt.ToString(), LimTime); #endregion //计算目前余额:公式:上机前余额-消费金额=当前余额 double NowCsh = double.Parse(OnlineTable.Rows[0][2].ToString()) - Money; #region 更新学生上机记录 //给上机记录实体赋值,和实例化 #region 给上机记录实体赋值 StudentLien StuLine = new StudentLien(); StuLine.Computer = Computer.GetMachineName(); //计算机名称 StuLine.ConsumptionCash = Money; //消费金额 StuLine.NowCash = NowCsh; //目前余额 StuLine.OnDate = DateTime.Parse(OnlineTable.Rows[0][3].ToString()); //上机日期 StuLine.OnLineMin = TimeSolt.ToString(); //在线时长 StuLine.OnTime = OnlineTable.Rows[0][4].ToString(); //上机时间 StuLine.StudentCardno = int.Parse(OnlineTable.Rows[0][0].ToString()); //卡号 StuLine.StudentLevel = OnlineTable.Rows[0][1].ToString(); //用户类型 StuLine.StudentNam = stuName; //用户姓名 问题:正在上机表设计不合理,无法得到用户姓名。 StuLine.UpDate = DateTime.Now.Date; //下机日期 StuLine.UpTime = DateTime.Now.ToShortTimeString(); //下机时间 #endregion //向上机记录插入信息 idal.InsertLineStudent(StuLine); #endregion //更新卡号状态和目前余额 RegistrationCardno stuCardno = new RegistrationCardno(); stuCardno.StudentCardno = StuLine.StudentCardno;//给卡号赋值 stuCardno.Studentbalance = NowCsh; stuCardno.State = "未激活"; idal.UpdateRegiCardno(stuCardno); //删除在线学生信息 idal.DeleteOnLineStudent(studentOnline); //实例化登录窗体 Form CreatLoginForm = CreatfactForm.CreatFrom("LoginUser"); //实例化学生窗体 CreatLoginForm.Show(); //显示登录窗体 }
/// <summary> /// 退卡 /// </summary> /// <param name="cardno">卡号</param> /// <param name="form">退卡窗体</param> /// <returns>是否退卡成功!</returns> public string CancelCard(string cardno, Form form) { //用于返回信息 string strMsger = ""; //接受判空返回值,判断文本框是否为空。 string isNull = IsNull.isNull(form); //接受是不是数字的判断返回值 bool isNumber = IsNull.IsNumber(cardno); //判断卡号是否为空 if (isNull == "")//没有返回值说明,文本框不为空。 { //判断卡号是否是数字 if (isNumber == true)//返回true是数字 { #region 退卡 CancelCardIDAL cancardnoIDAL = (CancelCardIDAL)fact.CreateUser("CancelCardDAL"); //实例化实体 RegistrationCardno registCardno = new RegistrationCardno(); registCardno.StudentCardno = int.Parse(cardno); //获取卡号信息 DataTable CardnoInfoTable = cancardnoIDAL.SelectRegisCardnoInfo(registCardno); //判断卡号是否存在 if (CardnoInfoTable.Rows.Count != 0)//不等于零说明,存在。 { //向CanCardno表插入数据 CanceCard carnCardno = new CanceCard(); carnCardno.StudentCardno = int.Parse(cardno); carnCardno.CanCash = double.Parse(CardnoInfoTable.Rows[0][1].ToString()); carnCardno.CanDate = DateTime.Now.Date; //充值日期 carnCardno.CanTime = DateTime.Now.ToShortTimeString(); //充值时间 carnCardno.OperationID = UserLevel.UserIdall; carnCardno.State = "未结账"; cancardnoIDAL.InsertCanCardno(carnCardno); //删除卡号信息 cancardnoIDAL.DeleteRegiscardnoInfo(registCardno); //删除登录表信息 UserLevel user = new UserLevel(); user.UserID = int.Parse(cardno); cancardnoIDAL.DeleteUserLoginCardnoInfo(user); //删除学生信息 StudentInfo student = new StudentInfo(); student.StudentCardno = int.Parse(cardno); cancardnoIDAL.DeleteStudentInfo(student); strMsger = "退卡成功!"; } else { strMsger = "卡号不存在,请重新输入!"; } #endregion } else { strMsger = "卡号请输入数字!"; } } else { strMsger = isNull; } return(strMsger); }
/// <summary> /// 充值方法 /// </summary> /// <param name="Cardno">充值的卡号</param> /// <param name="Cash">充值金额</param> /// <returns>是否充值成功</returns> public string Rechargebll(string Cardno, Form form, string Cash) { //用于返回信息 string strMsger = ""; //接受判空返回值,判断文本框是否为空。 string isNull = IsNull.isNull(form); //接受是不是数字的判断返回值 bool isNumber = IsNull.IsNumber(Cardno); bool isCash = IsNull.IsNumber(Cash); //判断文本是否为空 if (isNull == "")//没有返回值说明不为空 { //判断输入的卡号是否为数字 if (isNumber != true)//不是数字 { strMsger = "卡号请输入数字"; } else//否则是数字 { #region 获取卡号信息 //调用充值接口和创建DAL层的工厂,实例化DAL层具体的类 RechargeIDAL RecarIDAL = (RechargeIDAL)fact.CreateUser("RechargeDAL"); //转换为卡号实体 RegistrationCardno RegistCardno = new RegistrationCardno(); RegistCardno.StudentCardno = int.Parse(Cardno);//给卡号赋值 //获取卡号信息 DataTable CardnoInfoTable = RecarIDAL.SelectStudentCardno(RegistCardno); #endregion #region 充值 //判断卡号是否存在 if (CardnoInfoTable.Rows.Count != 0)//不等于零,说明卡号存在。 { //判断卡号使用状态 if (CardnoInfoTable.Rows[0][4].ToString() == "已激活") { //获取基础表信息 DataTable Baist = RecarIDAL.SelectBast(); #region 判断充值金额 if (isCash != true)//充值金额不是数字 { strMsger = "充值金额请输入数字!"; } else { //判断充值金额是否大于或等于最小充值金额 if (double.Parse(Cash) >= double.Parse(Baist.Rows[0][1].ToString())) { //插入充值记录 Recharge recahrge = new Recharge(); //实例化充值表实体 recahrge.StudentCardno = int.Parse(Cardno); //充值卡号 recahrge.RechargeCash = double.Parse(Cash); //充值金额 recahrge.OpertionID = UserLevel.UserIdall; //充值的操作员 recahrge.RechargeDate = DateTime.Now.Date; //充值日期 recahrge.RechargeTime = DateTime.Now.ToShortTimeString(); //充值时间 recahrge.State = "未结账"; //结账状态 //调用插入方法 RecarIDAL.InsertRecharge(recahrge); //更新当前余额 double NowCash = double.Parse(CardnoInfoTable.Rows[0][1].ToString()); //当前余额 double NewCash = NowCash + double.Parse(Cash); //新余额=当前余额+充值余额 RegistCardno.Studentbalance = NewCash; //给余额赋值 //调用更新方法 RecarIDAL.UpdateCardnoCash(RegistCardno); strMsger = "充值成功!"; } else { strMsger = "充值金额不能小于最小充值金额,请从新输入!"; } } #endregion } else { strMsger = "卡号未激活,请先激活。"; } } else { strMsger = "卡号不存在,请先注册!"; } #endregion } } else { //否则说明为空 strMsger = isNull; } return(strMsger); }
/// <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;//返回登录信息 }