基于微信小程序的大学校园点餐管理系统设计与实现
2022-03-18宁功林
文/宁功林
(云南新兴职业学院,云南昆明 650501)
1.开发大学校园点餐管理系统背景
大学校园点餐管理系统是为校园餐饮实体商户研发的基于微信小程序的管理系统程序,它具有很高的研究价值和应用价值。本课题研究的主要目的是,解决校园就餐高峰期人员拥堵、传统人工处理就餐流程效率低下等问题,从而在提高实体商户工作效率的同时,节省学生的就餐时间。
在全球信息化的大背景下,QQ、微信等通信软件逐渐取代了短信等传统通信方式。2018年8月,腾讯公司公布了《微信互联网生态专题分析报告》(以下简称《报告》)。《报告》指出,截止到2018年年底,微信及WeChat合并月活跃账户数达到10.4亿,微信在2018年3月活跃账户数达到6.89亿,占到用户总数据流的34%。驱动信息消费总额度达到2097亿元,带动传统消费达到3339亿元,微信已经成为国内最大的移动互联网基础设施平台之一。由微信小程序带来的产业链市场规模达到2万亿元,日常小程序的活跃用户数达到4.7亿。如此庞大的微信用户群体,在很大程度上推动了微信小程序的发展。虽然在社会生活中有美团等成熟的外卖系统,但是高校校园还缺乏一套完整的、成熟的点餐系统。校园就餐高峰期人员拥堵、传统人工处理就餐流程效率低下等问题依然存在。
2.系统设计
2.1 系统整体框架设计
网站的前厅接待服务不仅包括微信链接、购物车展示、微信结账等,还包括购买者的评论模块、工作人员的工作模块以及其他的业务资讯等。买方可以通过微信小程序来完成产品采购、订单生产。该系统包括订单管理(取消订单、完成订单)、产品管理(编辑产品信息、添加产品、删除产品)等内容。在完成用户身份认证之后,系统管理员可以直接了解到这个网页已经在后台进行管理,销售人员也可以对商品的类别、订单等进行一系列操作。买家在订购时,后台可以即时提示。该系统的设计重点包括三个方面:微信买家、微信卖家、其他卖家。教师和学生可通过该系统的微信公众账号,点击购买单,并且在指定的时间段到餐厅购买食品。在商家的手机App里,商家收到订单后,开始发送快递,快递最后由买家签收。同时,卖方也能在计算机上登录管理平台,开展每日促销活动,设定“秒杀式”优惠,查看每日订单、销售统计数据等。在这一过程中,为了保证用户访问速度和安全性,程序员可以在服务器中使用Web服务与Nginx反向代理功能、Agent技术,以完成对Nginx的访问,结束HTTP的要求。在Seckill场景中,程序员可以使用RabbitMQ中间件技术来启用异步查询功能并且提高系统的可用性。[1]
2.2 系统功能模块设计
按照用户的需求,系统功能模块可以划分为三大类:
(1)买方手机模块。该模块是通过用户的身份验证来获得用户的微信及学校的地理位置的,并为买家提供导航、寻菜等功能服务。购物者从此模块中选择食物,安排取餐时间,然后开始在线支付。订单完成后,服务器会将订单信息发送到卖家的微信设备中。
(2)企业微信模块:该模块是专为卖家设计的。买家在预订时收到食物后,该模块可以自动取消订单。
(3)服务管理站模块:服务管理站是主要的管理系统,它一般分为以下三个部分。①食品管理、食品上架,食品信息修改等;②订单显示、订单管理,统计数据显示、统计数据管理等;③企业身份管理,包括企业支付账户设置、企业密码管理、企业权限管理等。
2.3 整体效果
根据微信小程序单页模式的特点,程序员可以独立开发各层、各页面的函数。在网页的制作过程中,各网页可以依序排列。部分网页需要从前一页中获得参量。登录主页的过程,实际上是检索和存储用户信息的过程。当用户登录个人中心页面时,该系统会读取本地存储的信息。首页会展示票务的相关资讯,并且决定使用者的登录权限。若是首次登录,该系统则会将入场券的资料显示在使用者的名片上;若不是首次登录,该系统只会进行推广。商店浏览网页是利用星图软件来显示地点的,并且将最新的商店信息展示出来。用户可以在距离最近的商店订购,或者在商店中寻找自己需要购买的商品,然后单击订购按钮,即可在购物清单中找到需要的商品。
不同的店铺供应的食物种类也不尽相同。因此,商品陈列和购物车中应当显示有关店铺的相关资料。当订单结束时,该系统将会弹出微信的付款界面。左栏是所有菜肴的信息,右栏是相应的子菜单。随着子菜单上下滚动,左侧的菜单也会发生变化。用户单击左侧菜单,会显示相应的子菜单。用户还可以根据自己的喜好添加菜品。当前页面的所有产品都将在底部激活,即显示用户从下拉列表中选择的所有产品及其对应的编号。如果选择错误,用户也可以直接删除该选择,或者将“购物篮”清空,再重新选择。完成付款后,该系统将会显示订单信息界面,上面会有菜单、订单金额和菜单编号,这实际上就是一个菜单。顾客可以自己的喜好来决定用餐时间。用餐时间可以分为实时和预定两种。用户的“个人主页”只展示用户的姓名和昵称,该网页的唯一功能就是把手机号与用户的姓名、昵称联系起来。用户可以授权点击链接手机号与微信账号。如果没有指定手机号,用户可以手动绑定,即输入手机号获取验证码完成绑定。[2]
3.关键技术
3.1 Solr搜索引擎
传统的检索方法采用基于模式识别的方法进行检索。这种检索方法容易造成检索错误,并且每个检索过程中都需要进行一次完整的表格扫描,从而降低了检索效率和数据库的运行效率。ApacheSolr是一个可靠的、可扩展的完整文本搜索引擎,它具有分布式查询、复制、负载平衡、故障转移、自动恢复、集中配置等功能。ApacheSolr还是一款为经理提供视觉管理接口的搜寻伺服器,该伺服器不仅可以通过HttpGet向使用者发出要求,还可获取JSON格式或XML格式的资料。该伺服器使用Solr搜索引擎,并且在MySQL中加入了查询功能。在系统运行时,该伺服器会同时启动MySQL与SolrServer,并且建立一个引用库。在更改资料库时,该伺服器会利用递增方式导入信息,使资料库与Solr机件库同步运行,从而完成搜寻模块功能。
3.2 秒杀功能技术
为吸引学生在食堂用餐,食堂商贩会定期推出低价餐,这对该系统的合规性要求较高。为了在这种秒杀场景下保证系统的可用性,笔者设计了以下两种方案:
(1)静态页面。该系统使用RESTFUL接口模型将前端与后端分离。该系统首页是静态的,它缓存了Nginx前端和客户端的浏览器,通过异步AJAX请求来获取动态数据,如食物详情、订单详情、用户信息等。秒杀场景使用静态页面技术,将生成的动态页面传递到客户端浏览器,大大减少了服务器上的负载。静态页面对浏览器和Nginx客户端上的缓存也具有重要作用。对于大多数Web应用程序来说,减少与数据库的交互可以显著提高系统性能。该系统利用Redis单线程模型来设计预取消库存功能。笔者将秒杀产品预加载到Redis数据库中,每进行一次操作,Redis数据库的存储库就会先收缩一次,然后再执行数据库操作命令。如果Redis仓库号为0,那么所有秒杀查询都会与数据库交互。
(2)异步调度RabbitMQ。为了提高秒杀场景实时系统响应能力,该系统采用RabbitMQ中间件技术来增强异步排序能力。RabbitMQ在交换机模式下的配置形式为直接连接。当用户秒杀产品时,该系统会将产品的序列号发送到消息队列中,消息队列会在几秒钟内立即返回。
3.3 数据库持久化设计
数据存取层面使用了ORM架构中的JPA技术。JPA所应用的ORM关联映射模式可以帮助该系统实现数据库的存取。在某些实施方式中,表格记录是以POJO模式为基础的,它通过JPA所提供的界面程序来渲染表格,更新表格中的数据,从而实现表格的添加或移除。[3]
4.结语
综上所述,笔者设计的基于微信小程序的大学校园点餐管理系统,能够有效缓解目前大学餐厅的拥挤情况,为师生提供了良好的就餐体验。