手持机移动端概要设计说明书北京盛威时代信息科技有限公司--------------------------------------------------------------------- 北京盛威时代信息科技有限公司对本文件资料享受著作权及其它专属权利,未经书面许可,不得将该等文件资料(其全部或任何部分)披露予任何第三方,或进行修改后使用。
文件更改摘要:日期版本号修订说明修订人审核人批准人2016-04-29 V1.0.0 概要设计初稿张彦强2016-05-06 V.1.0.1 概要设计第一次修改张彦强目录文件更改摘要: (1)1. 引言 (3)1.1目的 (3)1.2术语及缩略语 (3)1.3参考资料 (3)2. 概述 (3)2.1背景 (3)2.2范围 (4)2.3目标 (4)2.4设计约束、限制 (4)3. 总体设计 (4)3.1需求规定 (4)3.2运行环境 (4)3.3开发环境 (5)3.4设计思想 (5)3.5系统结构 (5)3.5.1 手持机-全局模块 (6)3.5.2 手持机-票务模块 (7)3.5.3 手持机-订单模块 (9)3.5.4 手持机-用户模块 (10)3.5.5 手持机-统计模块 (11)3.5.6 手持机-设置模块 (12)3.6系统关键流程 (13)3.6.1 手持机业务初始化流程 (13)3.6.2 手持机售票流程 (14)3.7系统返回流程 (16)3.8关键技术 (16)4. 接口设计 (16)1. 引言1.1 目的本文档用来描述手持机售票软件的客户端功能性需求、非功能性需求,重点描述了各个功能的设计要求。
用户、项目经理、开发经理、开发人员、设计人员、测试经理、测试人员是本文档的预期读者。
1.2 术语及缩略语名称解释手持机手持机售票客户端 1.0.0版本盛威时代北京盛威时代科技有限公司用户售票人员1.3 参考资料编号资料名称GB/T 11457-2006 《信息技术软件工程术语》2. 概述2.1 背景中国移动互联网处于高速发展阶段,信息化、数字化已成趋势。
传统的售票补票方式存在三大痛点:计算难(中途上车下车,站点多),查询难(稽查人员检查多个班次),统计难(售票员和稽查人员都需要及时递交补票的数量及票务计算)。
盛威时代作为一家为道路交通行业提供信息化的服务商,已经为行业管理部门和客运企业提供了一整套的信息化方案,包含为客运企业提供的站务管理、网站售票管理、移动端售票客户端、微信售票公众号服务、综合统计分析系统等。
通过信息化的实施大大提高了企业和行业的管理水平,形成了比较完备的闭环管理。
但是,我客车中途售票,目前还是人工操作,会给行业管理和客运企业管理方面带来一些不便,也为企业的数据分析和决策留下了一些缺口。
为了更好的满足行业和企业管理需求,盛威时代推出手持机售票系统。
2.2 范围本产品为客运中心提供了方便的售票途径,方便查询和统计,更方便、更快捷。
本产品可支持售票员和稽查人员使用。
2.3 目标实现通过手持机移动设备,可以方便售票员中途售票,稽查人员在稽查站快速补票,提供打印功能和票务数据统计。
2.4 设计约束、限制本节描述软件开发工作的某些限制,例如经费限制、开发期限、硬件限制、编程语言、通信协议、安全和保密要求、开发过程中须遵守的某些标准或规则。
本节内容不是陈述具体需求或设计约束,而是为具体需求以及设计约束的描述提供依据。
开发期限:2016年6月30日完成;编程语言:Java通信协议:HTTP开发过程中须遵守的某些标准或规则:编码和注释按照对应的规范进行。
3. 总体设计3.1 需求规定参见《手持机售票需求规格说明书》3.2 运行环境Android OS: 4.4.43.3 开发环境Android Studio+IDEAndroid SDk 4.4.23.4 设计思想系统采取从顶往下的设计思想,坚持模块化、分层、面向对象原则进行设计。
系统从业务上划分为子系统、子系统模块、功能三个层次。
在子系统模块再按照分层原则进行设计。
Android 的模块分层:配置层(config),数据实体层(bean),数据操作层(dataoperate),业务层(business),界面适配层(adapter),视图层(view),界面层(ui)。
Android 拥有包机制,因此按照包进行管理。
Android 的顶层包为swnl.handsale,其他按照顶层包.子系统.模块分层.功能命名规则,其中基础框架层(app)在顶层包下管理基础工具和框架。
整体归属包原则是如果多个下级复用则归属下级的直接上级原则。
3.5 系统结构手持机(handsale)票务模块(ticket)订单模块(order)设置模块(setting)用户模块(user)统计模块(count)图3-1 手持机(handsale)总体模块图3.5.1手持机-全局模块手持机logo 页登录班次选择首页图3-2手持机-全局模块(一)手持机启动页1. 手持机启动页描述显示公司制作的启动屏画面,进行版本更新的信息获取,及其它系统参数加载。
(二)手持机进入首页1. 手持机LogoActivity页描述2秒钟左右的停留画面展示logo,可以在此进行版本判断、升级等,以及进行一些初始化参数获取、配置。
1,之后若未登陆跳转登录页;2,之后若已登陆未设置班次,跳转班次选择页;3,之后若已登录并且班次已选定,进入首页2. 手持机登录页(UserLoginActivity)描述输入用户名、密码进行登录。
注意:登录的用户包括售票员和稽查人员。
3. 手持机班次选择页(VehicleChoiceActivity)描述根据输入的车牌号和或者班次号选择当前车辆发班班次4. 首页首页需要实现三个页签:一、站点选择页面(HomeStationChoiceActivity);二、查询页面(HomeSearchActivity);三、我的页面(HomeUserActivity)。
5. 首页界面存在的事件及业务逻辑首页是有三个页签控制三个页面组成:一、站点选择页面(HomeStationChoiceActivity),本页面中有出发站、目的站、乘车日期的选择,选择完后进入填单页面,根据填写的站点获取阶段票价,支持的票种,是否实名制、保险等相关信息;二、查询页面(HomeSearchActivity),查询页面可以填写订单号或者车票号,可以查询到对应的订单,可以查看到订单的详细信息,可以操作废票(和打印);三、我的页面(HomeUserActivity),查看用户信息、售票统计、进入设置项,退出系统等操作。
3.5.2手持机-票务模块票务模块(ticket)查询班次车票打印退票查询出发站查询目的站车票生成车票查询图3-3 票务模块(ticket)划分图(一)查询班次1.班次查询页面(VehicleSearchActivity)登录成功后,若身份是稽查人员,没有携带班次信息返回,进入班次查询页面,选择班次。
选择班次需要选择时间(默认当天),选择车牌号(CarLicenseChoiceActivity),选择班次(VehicleChoiceActivity),点击确定,保存班次信息,进入首页。
首页-我的,选项“选择班次”,可以重新进入班次查询页面设置班次信息。
(二)查询出发站/目的站1.选择乘车日期提供用户可选择购买票范围内的日期(默认当前日期,若可预售变为可选,若不做预售功能,可做成不可选,车票上打印“车票上打印的乘车日期当日有效”)。
2.查询出发站页面(StationStartSearchActivity)首页,点击查询出发站,进入查询出发站页面。
输入框提示用户输入汉语拼音或汉字,根据用户输入出发站汉语全拼、简拼、前几个汉语查询出发站列表。
点击某一个出发站,返回首页,附带选择的站点填入出发站输入框。
3.查询目的站页面(StationEndSearchActivity)首页,点击查询目的站,进入查询出发站页面。
输入框提示用户输入汉语拼音或汉字,根据用户输入目的站汉语全拼、简拼、前几个汉语查询目的站列表。
点击某一个目的站,返回首页,附带选择的站点填入目的站输入框。
信息填写完毕,确认按钮进入填单页面。
(三)车票生成车票的生成时伴随着订单的创建生成的,每个订单可能包含一个或者多个车票信息。
在订单创建之前会对车票信息检测。
(四)车票打印订单支付成功后会自动打印,在订单详情页也可以对单张车票进行补打。
打印车票调用封装好的打印工具(PrintTicketsUtil)打印方法,传入一个车票信息(Ticket)或者多个车票信息(TicketList),将车票一张张打印来。
打印车票时用同意的弹窗遮罩当前窗口,提示“正在打印车票...”。
(五)退票订单详情页有每个车票的信息,车票状态若为可退状态,显示退票按钮,点击退票按钮弹窗提醒退票详情及所退金额,点击确定执行退票接口。
(六)车票查询在首页-查询,输入车票号,查询车票详情,跟订单的查询类似,仅展示当前车票信息。
3.5.3手持机-订单模块订单模块(order)订单提交订单支付订单打印订单查询订单填写图3-4订单模块(order)划分图(一)订单填写1.订单填写(OrderCreateActivity)查询班次和站点后进入售票信息页填写订单,显示班次、日期、发车时间,出发站和目的站等信息;根据配置的票种,选择全票、半价票、学生票、军人票和团体票。
订单填写页面展示相关班次、站点、票价等信息,点击添加按钮添加车票信息。
2.添加车票(AddTicketActivity)根据是否实名制要求决定是否录入身份证信息;根据是否可售保险决定是否展示购保选项;根据是否可带儿童展示携带儿童选项;点击确定返回订单页展示所添加的售票信息。
(二)订单提交1.订单检测订单填写页在添加车票后,下方有总金额的显示,点击收银按钮,将所售车票信息提交服务端检验车票及订单的合法性,若不可售或者出现订单、车票信息有误,服务端返回相应的提示信息。
2.订单提交服务端订单检测通过自动执行订单的创建,返回前端创建成功的订单信息及支付信息,前端跳转收银界面。
(三)订单支付1.订单支付(OrderPayActivity)服务端返回支付信息,引入收银界面。
收银界面包含现金支付和微信。
支付宝等支付方式,目前先做现金支付。
2.现金支付现金支付界面显示要支付的总金额,输入实付金额,自动计算找零金额。
点击收银按钮,表示支付完成,进入支付完成页面(PaySuccessActivity),自动打印当前支付的订单。
3.支付异常(PayFailActivity)若支付接口调用异常,则进入支付异常界面,提示支付异常,点击“重新支付”再次进入订单支付页面。