重构-动态下机

简介: 重构-动态下机

功能说明:当客户上机卡里的钱消费完之后自动下机。

逻辑说明:首先在上机表中我们把当前客户的余额和我们的收费标准做了一下运算,把客户的余额根据收费标准折合成了可上机时长,当我们的上机时间等于可上机时长的时候就说明客户卡里的钱已经消费完了,这个时候就会自动下机。

代码展示:

U层:

        private void DynamicOff_Tick(object sender, EventArgs e)
        {
            List<dynamic> list = new List<dynamic>();
            OnlineEntity online  = new OnlineEntity();
            InvariableEntity invariable = new InvariableEntity();
            ISelect iselect = AbstractFactory.Factory.CreateConcreteClass("ConcreteBLL","BLL","T_Online");
            list = iselect.Select(invariable.UserID);
            ILogout logout = AbstractFactory.Factory.CreateConcreteClass("ConcreteBLL","BLL","T_Line");
            if (list[0].OnBoardTime == list[0].CardRemainTime)
            {
                logout.Logout();
                Application.Exit();
            }
        } 


B层:

//查询上机表,获取可上机时长
public List<dynamic> Select(string cardID)
        {
            List<dynamic> list = new List<dynamic>();
            ISelect iselect = AbstractFactory.Factory.CreateConcreteClass("ConcreteDAL", "DAL", "T_Online");
            list = iselect.Select(cardID);
            return list;
        }
      //当用户卡内余额不足时调用下机接口进行下机。  
public void Logout(params string[] values)
        {
            CustomerEntity enCustomer = new CustomerEntity();
            List<dynamic> customerList = new List<dynamic>();
            ISelect iSelectCustomer = AbstractFactory.Factory.CreateConcreteClass("ConcreteDAL", "DAL", "T_Customer");
            customerList = iSelectCustomer.Select(invariable.UserID);
            enCustomer.CardID = customerList[0].CardID;
            enCustomer.UserName = customerList[0].UserName;
            enCustomer.CardType = customerList[0].CardType;
            enCustomer.CardCash = customerList[0].CardCash;
            CustomerOffChain.Handler checkbasic = new CheckBasicHandler();
            CustomerOffChain.Handler checktype = new CheckTypeHandler();
            CustomerOffChain.Handler checkonline = new CheckOnlineHandler();
            CustomerOffChain.Handler insertline = new InsertLineHandler();
            CustomerOffChain.Handler updateuser = new UpdateUserHandler();
            checkbasic.SetSuccessor(checktype);
            checktype.SetSuccessor(checkonline);
            checkonline.SetSuccessor(insertline);
            insertline.SetSuccessor(updateuser);
            checkbasic.HandlerRequest(enCustomer);
        }


D层:

        public List<dynamic> Select(string cardID)
        {
            string sql = "select * from T_Online";
            DataTable dataTable = SQLHelper.GetDataTable(sql);
            List<dynamic> list = new List<dynamic>();
            foreach (DataRow row in dataTable.Rows)
            {
                list.Add(new OnlineEntity()
                {
                    CardID = Convert.ToInt32(row["cardID"]),
                    LandTime = Convert.ToDateTime(row["LandTime"]),
                    OnBoardTime = Convert.ToInt32(row["onBoardTime"]),
                    Computer = row["computer"].ToString(),
                    CardRemainTime = Convert.ToInt32(row["cardRemainTime"])
                }) ;
            }
            return list;
        }
        public int Insert(dynamic enOnline , params decimal[] values)
        {
            string sql = "insert into T_Line(cardID,onTime,offTime,onBoardTime,consumeCash,isCheck) values (@cardID,@onTime,@offTime,@onBoardTime,@consumeCash,@isCheck)";
            SqlParameter[] sqlParameter = { new SqlParameter("@cardID", enOnline.CardID),
            new SqlParameter("@onTime",enOnline.LandTime),
            new SqlParameter("@offTime",DateTime.Now),
            new SqlParameter("@onBoardTime",enOnline.OnBoardTime),
            new SqlParameter("@consumeCash",values[0]),
            new SqlParameter("@isCheck","未结账")
            };
            return SQLHelper.ExecuteNonQuery(sql, sqlParameter);
        }
目录
相关文章
|
4月前
|
机器学习/深度学习 人工智能
阿里轨迹可控版Sora,告别抽卡,让视频生成更符合物理规律
【8月更文挑战第26天】阿里团队新推出的Tora视频生成模型是对先前Sora模型的重要升级。Tora通过引入轨迹控制机制,极大提升了视频中物体运动的真实性和准确性。其核心技术包括轨迹提取器、运动指导融合器及空间时间扩散变换器,共同确保视频既高质量又流畅。实验表明,Tora在清晰度、细节表现力及运动轨迹控制上均有显著进步。尽管如此,模型训练复杂度和轨迹理解能力仍有待优化。[论文](https://arxiv.org/pdf/2407.21705)
53 2
|
设计模式
重构·改善既有代码的设计.03之重构手法(上)
之前的重构系列中,介绍了书中提到的重构基础,以及识别代码的坏味道。今天继续第三更,讲述那些重构手法(上)。看看哪些手法对你的项目能有所帮助......
19268 1
重构·改善既有代码的设计.03之重构手法(上)
|
设计模式
重构·改善既有代码的设计.04之重构手法(下)完结
重构改善既有代码的设计完结篇,汇总了全部的重构手法。看看哪些手法对你的项目能有所帮助…
7424 2
重构·改善既有代码的设计.04之重构手法(下)完结
|
算法
主动配电网故障恢复的重构与孤岛划分统一模型研究【升级版本】(Matlab代码实现)
主动配电网故障恢复的重构与孤岛划分统一模型研究【升级版本】(Matlab代码实现)
《重构2》第九章-重组数据
《重构2》第九章-重组数据
106 0
|
小程序 搜索推荐
聚合卡牌盲盒模式系统开发逻辑方案设计程序(成熟代码)
聚合卡牌盲盒模式系统开发逻辑方案设计程序(成熟代码)
319 0
|
域名解析 网络协议 Linux
阐述量化跟单系统开发罗策方案丨合约量化跟单系统开发技术罗策整理详细逻辑
阐述量化跟单系统开发罗策方案丨合约量化跟单系统开发技术罗策整理详细逻辑
189 0