快餐刷卡消费之触摸屏实现(含关键源码)

本项目为连锁店餐饮系统。前台C#,服务器采用Java开发,oracle数据库;通过webservice实现前后台的交互,后台以提供服务的方式,供前端调用并进行数据库操作。

商家根据餐饮副食店实际情况提出了新的需求,希望能够通过在店内放置触摸屏的方式,使会员顾客能够以触摸屏的方式选择商品并放入自己的购物车,之后售货员只需要读取卡内的购物车信息即可刷卡消费,这样大大节约了顾客挑选商品的时间,使整个购物流程并行化程度提高。由于顾客消费的时间大多集中在早中晚,并行化会使店内的销售量显著提高。

经过一周的时间终于完成了模块的更新,下面我将分4个方面详细的描述整个流程,并附上关键部分源码,分享给大家共同学习。

1.功能模块介绍;2,触屏设置实现(前台、服务器、数据库);3,触屏显示实现;4,触屏结算实现


一 功能模块介绍:

展柜设置(包括4个子模块)

1.1 触屏设置(管理员操作)

本子模块包括4项功能:

——选择:根据门店编号mdbh从数据库消费记录表和物料表中获取外卖记录,显示在combox中;

——插入:管理员从combox中选取要显示的商品图片,获取该图片的绝对路径,以记录的方式插入到config.txt文本中,每个图片代表一条记录

——删除:删除TXT文档中对应的条目。

——保存:将当前Imagelistview中的商品图片信息保存成TXT文档,存储在项目的指定目录下。

1.2 触屏显示(顾客操作)

本模块中,自动加载“触屏设置”中保存的TXT文档,读取其中的记录并将对应的图片全屏显示;双击图片会进入商品细节页面,在本界面,顾客可以选择”加入购物车“或”返回“,本页面能够显示库存量,若库存量《0,点击返回后对应图片将显示售罄。

同时设置两个按钮“上一页”,“下一页”,通过点击可以实现翻页查看。

(注:顾客通过本显示屏可以看到本店内所有的商品信息,并有选择的加入到自己卡的购物车中)

1.3 触屏结算(售货员操作)

本模块包括3项功能:

——读卡:售货员点击“读卡”,系统将卡内的购物车信息显示在购物车栏中;

——修改:删除菜品:售货员可以对购物车中的商品调整数量或删除

——结算:对IC卡的购物车商品结算,同时删除数据库中对应的购物车信息,执行卡金额操作,并打印小票。

1.4 图片下载(管理员操作)

通过FTP的方式,管理员可以从指定的FTP目录中选择图片,加入本门店的图片库中,供展柜设置使用。

总体界面设计:


1.5 总体流程:

前台:主要是画界面,写webservice调用方法,逻辑实现;

服务器端:若无对应的服务,则注册webservice服务(1.在sun-jaxws.xml 中通过endpoint注册;2.在对应的服务加入注解@webservice和@HandlerChain和@webMethod,注意名字要和xml中对应;注册完服务之后,通过具体的方法执行Sql语句操作数据库,反馈到前台,显示。

当思路清晰、宏观设计之后,具体的实现就是搬砖的过程,我们只需要一步步的根据需求完成模块即可。Let’s go!


二 触屏设置

 

2.1界面设计:


2.2自动加载物料表,Combox显示

1.通过调用getYLData方法从数据库中获取物料数据存入List中

 private void initYL(String lb)
        {

            物料编号.Visible = true;
            ylComb.Visible = true;
            ylAddBtn.Visible = true;
            getYLData(lb); //设置物料表ylList

            if (ylList != null)
            {
                foreach (DataBean bean in ylList)
                {
                    //物料列表                  
                    this.ylComb.Items.Add(bean.GetValue("WL_WLBH") + "|" + bean.GetValue("WL_WLMC") + "|" + bean.GetValue("WL_3lMC") + "|" + bean.GetValue("WL_JLDW") + "|" + bean.GetValue("SL"));

                }
            }
        }

2.通过webservice调取服务MaterialService中的getDataFromXSJL方法获取物料数据,存入ArrayList中。

private void getYLData(string ALMC)
        {
            ServiceDelegate serviceDelegate = ServiceDelegateFactory.Instance();
            //ArrayList materialList = new ArrayList();
            try
            {
                ylList = (ArrayList)serviceDelegate.CommonInvoke("MaterialService", "getDataFromXSJL", ALMC);

                
            }
            catch (Exception ex)
            {
                if (ex is WebServiceException)
                {
                    if ((ex as WebServiceException).ExceptionType ==
                        EnumDefine.WebServiceException.ConnectException)
                    {
                        PopMessage.Error("EXC0009E", ConfigUtil.GetItemValue("ErrorMessageTitle"));
                    }
                    else
                    {
                        PopMessage.Error("EXC0006E", ConfigUtil.GetItemValue("ErrorMessageTitle"));
                    }
                }
                else
                {
                    throw ex;
                }
                return;
            }
            if (serviceDelegate.MessageList != null)
            {
                ServiceMessageBean popMessage = (ServiceMessageBean)serviceDelegate.MessageList[0];

                if (popMessage.Parameters != null)
                {
                    PopMessage.Error(popMessage.MessageCode, ConfigUtil.GetItemValue("ErrorMessageTitle"), popMessage.Parameters);
                }
                else
                {
                    PopMessage.Error(popMessage.MessageCode, ConfigUtil.GetItemValue("ErrorMessageTitle"));
                }

                serviceDelegate.MessageList.Clear();
            }
        }

3.服务器代码

MaterialService

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值