林伟琼
(厦门大学嘉庚学院,福建 漳州 363105)
目前,各类社区团购平台发展迅猛,数量巨大的商家也快速进入该行业,但针对平台的快递管理还比较落后。拥有快捷、有效收寄途径的多平台客户端能够提高用户使用意愿,在提高效率的同时吸引更多用户加入。随着微信的普及,微信小程序逐渐受到越来越多人的关注,因其无需下载安装,在微信中可直接使用而受到广大用户的青睐。故选择微信小程序作为主平台。为研究平台快递系统的运作模式与后台数据传递方式,同时兼顾当前用户的使用习惯,本设计从PC、微信、网页3个不同的平台模拟了从商家寄件、快递员处理到管理员查询,以及客户收货确认的全流程。
Spring是高效的开源框架,旨在通过解决业务逻辑层和其他各层的松耦合问题来简化企业应用程序开发。Spring框架是分层结构,由7个定义好的模块组成[1],如图1所示。
图1 Spring框架
好的模式对于项目效率的提升至关重要。MVC即模型视图控制器,是一款软件设计模型。MVC模式将业务逻辑、数据和接口显示的方法分离,将业务逻辑聚合到一个组件中,无需在改进和个性化定制界面与用户交互时重写业务逻辑。MVC可以将传统的输入、处理和输出功能映射到逻辑图形用户界面结构中,拥有耦合性低、重用性高、生命周期成本低、部署快、可维护性高等优点。
MVC是J2EE的核心思想,包括主流的三大组件view层、model层、controller层,分别为表现层组件、控制器层组件、业务逻辑层组件[2]。本系统选用新兴框架SpringMVC,其模式架构如图2所示。
图2 SpringMVC模式架构
1.3.1 微信小程序
微信小程序是一种无需下载即可使用的应用,它依托于微信,可跨安卓和iOS平台使用,开发成本低,操作简单。微信客户可以通过微信聊天进入小程序,也可以在使用小程序时方便切换到聊天界面,灵活快捷。基于小程序的诸多优点,小程序的线上线下推广十分普遍[3]。本系统小程序主要用到的请求方式为HTTPS连接请求。
1.3.2 微信开发者工具
为帮助开发者高效开发并调试微信小程序,微信开发人员在原有公众号网页调试工具的基础上,推出了全新的微信开发者工具,集成了公众号网页调试和小程序调试两种开发模式[3]。
使用小程序调试时,开发者可以实现小程序API和页面开发调试、代码查看和编辑、小程序预览和发布等功能。
1.3.3 腾讯位置服务SDK
腾讯位置服务为微信小程序提供了基础的标点能力、线和圆的绘制接口等地图组件和位置展示、地图选点等地图API位置服务,使得开发者可以自由开发相关微信小程序。腾讯位置服务微信小程序JavaScript SDK是专为小程序开发者提供的LBS数据服务工具包,可以在小程序中调用腾讯位置服务的POI检索、关键词输入提示、地址解析、逆地址解析、行政区划和距离计算等数据服务。
1.4.1 腾讯云服务器
云服务器(Cloud Virtual Machine, CVM)可提供安全可靠的弹性计算服务,只需短短几分钟就可以在云端获取并启用CVM,满足计算需求。随着业务需求的变化,需根据客户要求实时扩展或缩减计算资源。CVM支持按需使用的资源计费,以降低软硬件采购成本,简化IT运维工作[4]。本系统使用的云服务器选用Ubuntu 18.04操作系统。
1.4.2 MySQL数据库
MySQL是一个快速、多用户、多线程的SQL数据库服务器,它可以作为不同操作系统的关系数据系统,以客户机服务器的方式实现,属于分布式数据库管理系统。MySQL由于其开源免费、结构简单、开发门槛低等优势,迅速成为互联网行业首选数据库。其中,结构化查询语言(SQL)是进行数据库管理最常用的语言。MySQL数据库通过数据机构B+Tree实现索引,大大提高了查询效率[5]。
物流管理系统工作分解结构(WBS)如图3所示。
图3 物流管理系统工作分解结构
物流管理系统模拟使用流程主要分为消费者、管理员、快递员3大模块。
从消费者使用网页端登录或微信端预约寄件开始,消费者端将填写的寄件信息上传到云服务器上的MySQL数据库。预约之后,消费者前往网点寄件,管理员输入消费者预约寄件时填写的手机号码,查询相应的预约单并在取得要寄的物品之后点击“确认”按钮发货;若之前未预约,则从快递员端的填写信息页面直接填写发货信息,小程序更新数据库中运单的状态。此时“预约-发货”的流程完成。
运单到达下一个站点后,由下一个站点的快递员通过输入运单号或扫描条形码来更改运单的目前所在地和运输状态等。
运单到达,收件人取件时再次输入运单号或扫描条形码,运单状态变为“已收货”,物流配送服务结束。
在物品运输过程中,消费者可以使用网页或微信小程序,根据运单号查询运输信息。
管理员通过管理员端可以查看包括预约单在内的运单详细信息、快递员信息、网点信息或查看网点下运单的进出情况,以及对快递员和网点信息进行修改[6-7]。物流管理系统使用流程如图4所示。
图4 物流管理系统使用流程
物流管理系统功能分为4个模块:C#管理员端、网页用户端、微信快递员端与微信用户端。用户未从用户端登录时,只能作为游客进行简单的操作,登录之后可以作为会员进行快递订单的预约。管理员可以对消费者、运单、员工、网点等进行数据的增、删、改、查管理。快递员可以更新运单状态,便于查询者快速知晓快递的运输情况。4个应用通过各自不同的方法链接并操作云服务器Ubuntu系统上的MySQL数据库进行数据交互[8-9]。物流管理系统结构如图5所示。
图5 物流管理系统结构
(1)管理员登录及权限管理。
(2)菜单栏拥有4个子菜单,分别为开始、信息查询、信息管理以及精确查询。每个子菜单下都有相应的按钮,是程序执行的主要触发点。MyTabPage类保存了程序用到的界面布局。
(3)主界面选项卡的动态生成。
(4)信息查询菜单主要用于无需输入额外条件的总体查询,有4个按钮,分别为员工信息查询、网点信息查询、运单状态查询、已预约运单查询。
(5)信息管理菜单用于添加、删除数据库中的内容,通过添加、删除员工与网点的按钮实现相关功能。
(6)精确查询菜单功能主要是通过输入单号来准确查询某个运单的运输记录,或通过员工号查询员工、通过网点号查询该网点下员工、通过网点名称查询该网点派件记录等。
(7)运单追踪。输入8位运单号后点击“追踪”按钮,程序将通过运单号查询相应的运单信息,并通过DataTable显示在列表中。
(8)查询详细信息。输入8位运单号后,点击“查询详细信息”按钮将进入运单的详细信息界面,显示MyOrder表中的运单信息,并使用C-Code接口生成条形码(条形码内容为运单号)。程序中选用生成运单号的条形码为Code128A类型,编码范围是标准数字、字母、控制符、特殊字符。
(1)快递员登录实现与底部导航栏。
(2)运单状态更新功能便于快递员更新运单信息,更新方式包括输入运单号和扫描条形码。
(3)寄件信息录入功能是客户未预约就前往网点邮寄快递所需使用的功能。
(4)预约件处理功能用于客户在网上预约后前往网点寄件,快递员通过预约时预留的手机号码获取并确认预约信息。
网页端使用的框架为Spring+SpringMVC+Hibernate,采用腾讯云服务器,域名为clamdinner.cn。网页用户端具有运单追踪、快递预约及网点查询功能。用户进入订单预约界面后,后台会默认将用户注册时填写的常用信息输入寄件方信息中,所在城市与目的城市不可输入,需从下拉框中选择。待填写完成并通过合法性检查之后方可提交,后台将数据插入Appointment表中,生成一条订单预约信息。
服务网点查询功能仅提供Node表中已记录的网点信息查询功能。点击按钮,后台直接查询所有网点信息并在前端显示[10-11]。
3.4.1 微信用户端简介与预约寄件实现
微信用户端主要架构与微信快递员端相同。预约功能仅在客户预约寄件时使用。客户填写信息后,后台直接将信息记录到预约表Appointment中。
在未同意寄件承诺之前,提交按钮为灰色且不可选择。点击寄件人信息与收件人信息会跳转到另一个页面。
3.4.2 运单追踪
小程序主界面是运单追踪界面,输入运单号,点击“确定”或扫描条形码就可以通过HTTPS请求得到数据库中对应订单的信息。
3.4.3 地图模块
在点击运单追踪界面的图标之后会进入地图模块,在地图上显示运单当前所在地与目的地间的距离与路线,如图6所示。
图6 地图界面
该功能主要使用了腾讯位置服务微信小程序JavaScript SDK的地址解析功能和腾讯地图Direction API的驾车(Driving)路线规划功能。
本系统基于现实的社区团购商家需求,模拟真实从客户下单到收货的快递场景来实现快递信息的管理。从网页、微信用户端、微信小程序快递员端与C#管理端进行开发,实现了对物流数据的有效监控,以及对物流数据的透明管理。在提高管理效率的同时能够增强用户粘性,应用前景广阔。