Пример #1
0
        /// <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);                                                            //返回受影响行数
        }
Пример #5
0
        /// <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);
        }
Пример #7
0
        /// <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);
        }
Пример #8
0
        /// <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);//返回查询结果
        }
Пример #9
0
        /// <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);//返回受影响的行数
        }
Пример #11
0
        /// <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);
        }
Пример #12
0
        /// <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);
        }
Пример #13
0
        /// <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();                                      //显示登录窗体
        }
Пример #20
0
        /// <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);
        }
Пример #21
0
        /// <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;//返回登录信息    
        }