基于微信开发的校车订座小程序的设计

2019-09-24 02:00陈腾辉褚小停陈启帆袁鸿燕
电脑知识与技术 2019年19期
关键词:微信小程序校车

陈腾辉 褚小停 陈启帆 袁鸿燕

摘要:校车是校区间通勤的主要交通工具,对其科学合理地调度很重要。该文对校车订座微信小程序的开发进行了设计,实现了校车管理的信息化,分为日常线与假日线,高效实现了提高校车的利用率、降低运营成本、倡导低碳生活的目标。

关键词:微信小程序;校车;订座

中图分类号:G434        文献标识码:A

文章编号:1009-3044(2019)19-0073-03

Abstract:School bus is the main means of transportation for commuting between schools, and it is very important for its scientific and reasonable dispatch. This paper designs the development of the school bus booking micro-message program, realizes the informationization of school bus management, divides it into daily line and holiday line, effectively realizes the goal of improving the utilization rate of school bus, reducing operating costs and advocating low-carbon life.

Key words:Wechat;School Bus; Seat Reservation

1 引言

近百年来,人类科技文明的进步使人类生活发生了巨大变革,在享受现代科技生活的同时,全球变暖成为悬在人类文明上方的达摩克利斯之剑。中国政府经过多年的努力,使得環保观念深入人心,但雾霾的大面积爆发,机动车保有量的连年攀升为绿色生活再次蒙上面纱。为了解决此类问题,绿色出行成为近年来人们眼中的焦点。以OFO为代表的共享单车和以滴滴为代表的快速出行为汽车减排发展提供了巨大助力。经过我们团队一段时间对校区之间运营校车的观察,入座率呈现严重的两极分化,造成极大的资源浪费,故而我们萌生制作一套管理系统以期实现提高校车的利用率、降低运营成本、倡导低碳生活的目标。

随着i0S、安卓等智能化手机系统的迅速发展而发展起来的APP,不断改善着智能终端的移动化应用功能。如今的市场已进入到“互联网+”,用户红利逐渐退去,从现有的用户身上挖掘价值、进行业界的深度融合成了“互联网+”的全新发展思路,拥有8.46多亿用户口的微信无疑是众多社交APP的领跑者,它的每一次功能升级和服务创新,都直接牵动着亿万用户的使用体验乃至生活方式,同时改变着内容生产、创意营销、消费支付等几乎所有的互联网业态。

小程序看起来像程序,但实际上它们是一种新的应用程序组织形式,比我们现有的任何应用程序都更灵活和更易访问。它不仅能实现应用触手可及的梦想,还能很好地体现用完即走的理念,用户只要扫一扫或者搜一下就能直接打开应用,获取服务。

2 微信小程序页面开发

2.1功能设计

我们把小程序的功能分为两大块,第一模块为车票的查询与出售,考虑到学校既有校区与校区之间的日常线路,也有在周末或节假日开往火车站或汽车站的线路,针对这两种情况,我们专门把校车分为两种线路:日常线与假日线,方便了师生的查询,以免混淆。

对于日常线(校区之间)的特殊运营,我们团队特别设计一项电子乘车卡,学生在程序上预约申请后,系统将生成一张电子票。经后台审核后,系统自动将该电子票转换为电子乘车卡,并将该卡的状态转化为可使用。为了提高用户对程序使用的简易度及程序页面的简洁度,把未使用的电子乘车卡与已使用的电子乘车卡合而为一,在乘车卡包里,把所有的乘车卡(包括已失效以及将要使用)进行虚化处理。在距离校车发车前1小时,系统会将该时段预约成功的电子乘车卡实化,用于展示。当距离发车时间仅剩10分钟时,系统会再次将该卡片虚化,并显示该卡的状态为已失效。无论是否登上校车,该电子乘车卡都将永远虚化(即永远无法使用)。我们将历史记录与乘车卡合并,既方便用户浏览查询,也减少了用户对页面的切换率,大大提高了用户的便捷度。

对于假日线,我们将与校方自管会合作,由自管会方面发布假日开往火车站和汽车站的线路及乘车时间,学生可在应用上查询相应的线路,并在应用上实现预支付。考虑到原计划开通的线路会因为上座率问题而无法开通,在程序设计上,允许自管会提前24小时取消该线路并实现退款。对于车票发放问题我们采取日常线的管理机制。对于已取消的线路,如果用户预支付成功,系统将会保留该记录,并将该卡的状态显示为已取消。

第二模块为用户信息模块。在此页面中,用户可以查询自己的乘车卡包亟待审卡。针对用户信息,我们将采取微信号、学号和手机号相关联的模式,以学号为基本信息进行乘车卡的申请及假日校车线路的预定购买。

对于管理端,我们开发了两个管理端,一个是校车管理端,对日常线的审核及电子乘车卡的发放;第二个管理端是对特定的自管会管理人员开放,用于对假日线的发布、取消、退款及各线路的预定人数统计。下一步,我们计划将学生的注册信息与校方相结合,对日常线的审核,将采取层次筛选,对于学生提出的校车申请,先由班长审核,再由辅导员审核,通过后,才提交给管理员进行座位的安排与电子乘车卡的发放。这样将大大减少学生恶作剧的出现,也减少审核老师的工作负担。

2.2程序设计

JavaScript是开发小程序页面的主要语言,小程序的开发与普通网页的开发非常相似,但两者之间仍存在一些差异。网页开发渲染线程和脚本是互斥的,这也是为什么长时间的脚本运行可能会导致页面失去响应,而在小程序中,两者是分开的,分别运行在不同的线程中。正因如此,逻辑层运行在JSCore中,并没有一个完整的浏览器对象,所以导致了普通网页开发中的BOM API和DOM API缺失,从而一些非常熟悉的库例如jQuery、Zepto等,在小程序中是无法运行的。小程序是由网页开发衍生而来的,网页编程采用的是HTML&CSS&JavaScript这样的组合,在小程序中有同样的角色:WXML&WXSS&JavaScript。本程序的页面设计也是围绕这三者进行编程。WXML是用来描述当前页面的结构,WXSS用来描述页面样子,JS通常用来处理页面和用户之间的交互。

本程序有4个基础页面,用户登录后进入的是第一个页面是“搜索页面”,用swiper组件分化日常线和假日线的查询,方便了用户使用也减少了页面替换。在日常线的swiper-item子组件中,通过在WXSS设计的transform属性和在JS 中设计中间图标的点击事件来切换校区之间的往来。在日期选择设计上使用picker-view(嵌入页面的滚动选择器),让用户有一个不一样的体验。当地点与日期选择设计完毕后,用botton组件设计查询按钮,在JS中添加botton的点击事件,调用微信提供的页面跳转API:wx.navigaTo进行页面跳转进入第二个页面——“查询页面”。考虑到日常线需要申请且不需要支付,假日线需要预支付,在botton的点击事件中我们调用数据缓存API:wx.setStorageSync,在第二页的onLoad中调用读取缓存API:wx.getStorageSync判别缓存中数据的值,从而对两种线路进行区分。不仅如此,我们还需要用该判别的值在第二页的WXML中进行条件渲染,通过条件渲染wx:if来渲染出对应的查询结果子项,假日线的子项数目及内容均由管理端进行发布,上传到服务器,在JS文件中进行数据下载而来。在每一子项中设置申请(支付)按钮,用于跳转至车票详情页面(第三页),申请内容将通过上传API上传至服务器,支付页面则调用微信的支付API。在app.json文件中设置tabBar属性来添加底部导航栏,在导航项为两项:首页和第四页——“用户信息”。在用户信息页面中,可以查看所有的电子乘车卡及申请记录。电子乘车卡无论是否用过都进行虛化处理,在JS文件中通过调用Date()对象获取当前系统时间,通过系统时间与乘车卡上的时间比较,如果在-30min~20min的范围内,则将电子乘车卡去掉虚化背景且日常线的顶边为红色,假日线的顶边为蓝色。在申请记录里记录着申请审核中、申请失败、假日线被取消等记录。

3 服务后端开发

3.1服务器的选取

Apache tomcat作为著名的Servlet容器实现以及轻量级JAVA应用服务器,是Apache软件基金会的顶级项目。它开源、轻量,与JBoss、Weblogic等企业级应用服务器相比,占用资源小,扩展性好,尤其是在当前主流的基于POPO(WithoutEJB)的轻量级编程方式下构建服务器系统。

3.2数据库管理系统的选取

数据库管理系统(DBMS)选择关系型数据库MySQL以及它的可视化工具navicat for mysql。MySQL支持5000万条记录的数据仓库,在中小型数据库中,这样的容量存储校车的班车信息和学生信息绝对够用了。MySQL有着优秀的跨平台性和可移植性,它适应所有的平台。MySQL因为是开源的,所以支持任意修改,也就是说可以去除我们不需要的功能,从而简化MySQL,提高速度。

3.3服务器设计

Servlet程序是由服务器调用和执行的Java类,运行在服务器中的Servlet是服务器进程的一部分,服务器负责Servlet的生命周期。当tomcat启动时,Servlet查找对应的配置文件web.xml,并根据配置文件创建实例;Servlet被实例化后,tomcat将调用init()方法为实例初始化;初始化后,当小程序的请求到来时,服务器创建一个请求对象和一个响应对象。每一个Servlet的请求都会产生一个Request对象,Servlet给小程序的响应由一个Response对象完成,这两个对象以参数的形式传递给service()方法。在service()方法内,对小程序的请求方式进行判断,如果是以GET方法提交,则调用doGET()方法处理请求,如果是以POST方法提交的,则调用doPOST()方法处理请求。对于订座系统,服务器的主要功能是对数据库的操作及对临界资源的管理。对POST请求,doPOST()方法是对数据库进行插入或删除操作,通过调用JDBC API对数据库连接并修改数据库的数据。同时,也是通过调用JDBC API 在doGET()方法中对数据库进行查询并获取查询的数据,返回到客户端。

4 结束语

正式发布的微信小程序已在改变着“互联网+”生态,借助这一众创平台来重新定义服务路径、获取流量红利。校车订座方式的信息化也是校车发展历程中的必经之路。在实施期间遇到的困扰仍需与学校相关部门进一步交流合作,规避校车订座所带来的不利因素,充分发挥其有利的各个方面。

参考文献:

[1] 刘光瑞. Tomcat架构解析[M].北京:人民邮电出版社,2017.

[2] 王珊,萨师煊.数据库系统概论[M].北京:高等教育出版社,2014.

[3] 史胜辉,王春明,沈学华. Java EE基础教程[M].北京:清华大学出版社,2010.

[4] 李刚. 轻量级Java EE企业应用实战[M].北京:电子工业出版社,2014.

[5] 微信小程序开发者文档[EB/OL]. https://developers.weixin.qq.com/miniprogram/dev/index.html.

【通联编辑:王力】

猜你喜欢
微信小程序校车
校车
未来的校车
坐上校车去学校
当图书馆遇上微信小程序
The School Bus校车