游泳馆手机在线售票管理系统的设计与实现

上传人:痛*** 文档编号:62169843 上传时间:2022-03-14 格式:DOC 页数:75 大小:4.88MB
返回 下载 相关 举报
游泳馆手机在线售票管理系统的设计与实现_第1页
第1页 / 共75页
游泳馆手机在线售票管理系统的设计与实现_第2页
第2页 / 共75页
游泳馆手机在线售票管理系统的设计与实现_第3页
第3页 / 共75页
点击查看更多>>
资源描述
本科毕业论文(设计)论文(设计)题目:游泳馆手机在线售票管理系统的设计与实现学 院: 计算机科学与技术 专 业: 数字媒体技术 班 级: 数媒101班 学 号: 1008060276 学生姓名: 刘建国 校内导师: 唐 作 其 校外导师: 程 学 林 2015 年 5 月 10 日68 / 75文档可自由编辑打印贵州大学本科毕业论文(设计)诚信责任书本人郑重声明:本人所呈交的毕业论文(设计),是在导师的指导下独立进行研究所完成。毕业论文(设计)中凡引用他人已经发表或未发表的成果、数据、观点等,均已明确注明出处。特此声明。论文(设计)作者签名: 日 期: 目录摘要IV第一章 绪论11.1 课题背景及意义11.2 课题的研究内容11.3 论文的主要工作及内容11.4 本章小结2第二章 相关技术概述32.1 Spring框架32.2 MyBatis42.3 RESTful Web Services52.4 跨平台开发工具PhoneGap62.5 jQuery Mobile框架72.6 第三方在线支付平台72.7 本章小结8第三章 系统需求分析93.1 需求概述93.1.1 目标93.1.2 后台管理系统93.1.3 手机在线售票系统93.1.4 手机验票客户端93.2 业务流程分析93.3 系统功能需求分析113.3.1 手机在线售票系统123.4.2 后台管理系统133.5.3 手机验票客户端143.4 系统非功能需求分析153.4.1 界面需求153.4.2 性能需求153.4.3 运行环境需求153.4.4 安全性需求163.4.5 质量需求163.5 数据库需求分析163.6 本章小结17第四章 系统设计184.1 数据库设计184.1.1 系统整体ER图184.1.2 主要数据表结构184.2 系统架构设计224.3 系统模块整体设计234.3.1 后台管理系统234.3.2 手机在线售票系统244.3.3 手机验票客户端244.3 本章小结25第五章 系统实现265.1 后台管理系统主要功能实现265.1.1 界面框架实现265.1.2 分页显示265.1.3 根据查询条件查询数据285.1.4 导出数据到Excel305.2 手机在线售票系统主要功能实现325.2.1 用户注册325.2.2 加入购物车功能365.2.3 下单功能365.2.4 在线支付功能395.3 手机验票客户端主要功能实现405.3.1 开发平台搭建405.3.2 登录实现415.3.3 序列号验票425.3.4 扫描二维码验票435.3.5 消费功能445.4 本章小结45第六章 系统测试与应用效果466.1 测试的目的466.2 测试的方法466.2.1 白盒测试466.2.2 黑盒测试476.3 系统功能测试486.3.1 后台管理功能测试486.3.2 手机在线售票功能测试536.3.3 手机验票客户端功能测试596.4 本章小结64第七章 总结与展望65参考文献66致谢67游泳馆手机在线售票管理系统的设计与实现摘要本文首先介绍了游泳馆手机在线售票管理系统设计的背景和意义,并介绍了系统开发所用到的相关技术背景。然后在进行了详细的需求分析的基础之上,说明了系统功能模块的划分及各模块之间的关系,并着重论述了系统中重要功能的具体实现过程。整个系统主要包含三个子系统,后台管理系统、手机在线售票系统和验票客户端,每一个子系统都包含了多个功能模块。后台管理系统主要分为五个功能模块,门店管理、用户管理、销售管理、教练管理和在线验票等;在线售票系统主要分为三个功能模块,用户中心、在线购票和教练介绍等;验票客户端主要包括序列号验票、二维码验票和消费功能。本系统采用Java语言和MySQL数据库作为开发工具。这种优势在于系统比较简单,但功能强大,扩展性能也比较好,完全能够满足游泳馆手机在线售票所需的全部功能。关键字:手机在线售票,后台管理,验票客户端,Java,MySQLDesign and Realization of Natatorium Mobile Phone Online Ticket Management SystemAbstractThe paper first introduces the design background and significance of the natatorium mobile phone online ticket management system,and also introduces the related technologies used int the system development.Then based on a detailed need analysis,shows the division of system function modules and the relationship of system modules,and mainly describes the important system functions realization.The system includes three subsystems, background management system, mobile phone online ticket system and the ticket checking client,each subsystem contains a number of function modules. Background management system is divided into five function modules,the natatorium management,member management,sales management,coach management and online ticket checking;mobile phone online ticket system is divided into three function modules,the user center,online booking and coach introduction; the ticket checking client consists of serial number checking,two-dimensional code checking and consumption function.The system uses the Java language and MySQL database as development tools.This advantage is that the system is relativety simple,but powerful,better scalability,and fully able to meet all the function requirements of the natatorium mobile phone online ticket management system.Key Words: Mobile Phone Online Ticket,Background Management, Ticket Checking Client,Java,MySQL第一章 绪论1.1 课题背景及意义宁波蓝韵泳池管理有限公司于2005年开始运作,是一家具有专业资质的体育机构,随着业务规模的逐步扩大,该公司已拥有数量可观的用户规模,为了更好的为用户服务,同时方便公司的管理和业务扩展,公司提出了手机在线售票等新的需求,而原有的管理系统已难以满足现在新的需求,因此亟需一套更加完善的系统。现在,各个游泳馆都会有各自的用户,为了给用户更好的服务,让用户实时的了解游泳馆的最新活动;同时为了让用户能更加快捷方便的购票,我们借助Web这样一个平台构建游泳馆手机在线售票管理系统,游泳爱好者可以通过这个系统,方便的了解游泳馆有哪些优惠的活动,并可以进行选购。同时,利用手机在线售票系统也有利于扩大用户规模。1.2 课题的研究内容本课题是开发一个游泳馆手机在线售票管理系统,首先介绍了系统开发中所用到的相关技术背景;然后通过对游泳馆的业务进行分析,得到了相关需求,并进行了系统的设计;最后着重介绍了系统开发中重点功能的实现,并对系统进行了一定的测试。该系统从功能上可以划分为三个子系统,后台管理系统、手机在线售票系统以及验票客户端。后台管理由管理员进行操作,主要包括门店管理、用户管理、销售管理、教练管理和在线验票等五个主要功能模块;手机在线售票主要面向游泳馆用户,主要包括个人中心、在线购票以及教练介绍三个功能模块;验票客户端由游泳馆工作人员使用,主要包括序列号验票、二维码验票以及消费功能等三个功能模块。本课题的主要研究内容就是实现以上这些功能模块。1.3 论文的主要工作及内容本文的主要工作有:查阅文献,开题报告,需求分析,数据库设计,系统功能设计,编码实现,系统测试,论文编写和修改等工作。本论文的主要内容大致分为以下七个章节:第一章绪论:主要论述了游泳馆手机在线售票管理系统的研究背景及意义、研究内容以及论文的主要工作等。第二章相关技术概述:这一章对系统开发中用到的主要技术进行了简单的介绍。包括Spring框架、数据持久层技术MyBatis、跨平台开发工具PhoneGap、jQuery Mobile框架以及在线支付平台等内容。第三章系统需求分析:这一章在对游泳馆的业务流程等内容进行详尽的分析的基础上,最终得出了系统的功能需求和非功能需求,并分析得出了系统所需的功能模块。第四章系统设计:这一章通过数据库设计、系统架构设计以及系统整体模块设计等内容,对系统的功能模块进行了详细的设计分析,对下一步的编码实现指明了方向。第五章系统实现:这一章分别介绍了系统各个模块中主要功能的实现方法和编码技术。第六章系统测试与应用效果:这一章介绍了相关的测试方法,并使用黑盒测试对系统各个模块的主要功能进行了测试,得出了预期的结果。第七章总结:对本论文的一个总结。1.4 本章小结本章阐述了课题的背景及意义,并对课题的研究内容以及论文的主要工作和内容进行了相应的介绍。第二章 相关技术概述2.1 Spring框架Spring框架是一种建立在J2EE基础上的一个轻量级的框架实现,和J2EE相比,具有容易维护、分层清楚、执行速度快、代码量少、支持最新的ORM和AOP概念等优点,同时在程序设计上非常注重简单性和一致性。Spring还提供了一个非常灵活的MVC框架的实现和扩展方式,可以集成当前流行的Web框架技术,与其它主流Web框架技术相比较,Spring框架技术在依赖注入、AOP方面也更加优秀。Spring框架是一个多层次框架,由7个定义良好的组件构成。Spring模块构建在核心框架基础上,核心框架定义了构造、配置和操作bean的方式,如图2.1所示。图2.1 Spring框架Spring核心组件:为Spring框架提供了一些重要功能。BeanFactory为核心模块,通过工厂模式实现IOC(控制反转和依赖注入),将系统的配置和依赖关系从代码中分离出来。Application Context组件:建立在Spring核心组件之上的一个配置文件,为Spring框架提供与之相关的信息。简化了开发Web应用程序的复杂性。Spring AOP组件:Spring AOP组件将面向切面的编程思想结合到了Spring框架中,可以方便地将AOP编程思想运用到以Spring框架为基础的任何操作对象,为建立在Spring的应用程序中的对象提供了事务管理功能。Spring Web组件:为基于Web的应用程序提供了上下文,简化了处理多部分请求以及将请求参数固定到域对象中。Spring DAO组件:该组件把JDBC代码中的一些程序简化代码(例如:数据库的连接,语句的创建,结果的处理,关闭连接)分离出来,简化了程序中的数据库操作代码,方便开发者对数据库的操作编码,并且可以防止对数据库资源的释放失败而导致的错误。Spring ORM组件:提供了与传统对象/关系映射框架组合的组件,开发者可以方便的实现对对象/关系映射的事务控制操作。Spring Web MVC组件:MVC框架将应用程序分为三个核心部分:模型、视图、控制器,可以方便地将Web应用中涉及到的各项内容进行分离,减少代码的重复性1。2.2 MyBatisMyBatis本是apache的一个开源项目iBatis,2010年迁移到了google code,并且改名为MyBatis。MyBatis和Hibernate框架类似,主要通过.xml文件来操作相关数据库。MyBatis 是一款易学易用的优秀持久层框架,支持常用的SQL查询操作,存储过程和高级映射功能。MyBatis将原始的JDBC代码进行了封装,因此连接数据库时只需修改相应的参数配置,使用极为方便。MyBatis通过简单的XML配置或注解配置来映射相对应的数据库中的记录。每个MyBatis应用程序都需要使用SqlSessionFactory实例来获得连接数据库进行操作的特权。SqlSessionFactory实例可以通过SqlSessionFactoryBuilder来获得。而SqlSessionFactoryBuilder可以从相应的XML配置文件中或者一个预定义的配置类实例中获得2。MyBatis框架主要包含了DAO组件和SQL Map组件,在MyBatis中还使用了日志管理工具,包括了四种模式的日志,在本项目中使用的是Log4J模式。MyBatis架构图如下所示:图2.2 MyBatis架构图MyBatis是一个灵活的,可以自由方便的处理相关数据库对象的一个持久层框架,它可以自定义我们需要的SQL语句。它也可以节省我们代码的重复编写,因为很多东西都可以被用户重用,这样我们在实际的项目过程当中会很轻松。MyBatis易学易用,通过简单的XML和注解来配置和映射基本数据类型。对于新手,入门简单,不仅保持了SQL已有的优秀功能,而且还拓展出了许多SQL没有的新技术。在一些大型的项目中,MyBatis框架将比Hibernate框架更加灵活2。2.3 RESTful Web Services表述性状态迁移(Representational State Transferring,REST),是由Roy Thomas Fielding博士在其论文Architectural Styles and the Design of Network-based Software Architectures中提出来的,Roy Thomas Fielding是HTTP1.0和1.1标准的主要作者之一。相对于传统的Web架构来说,REST新增了三个规范,分别是统一接口、分层系统和按序代码。严格来讲,REST指代的是一种针对分布式计算的框架风格,而不是一种标准,其目的是为了降低开发的复杂性,提高系统的可伸缩性3。通过REST风格体系架构,请求和响应都是基于资源表示的传输来构建的。REST架构风格包括下面四个特点4:(1)可寻址性,在REST架构中,资源都是通过全局ID来标识的,这些ID一般使用统一的资源标识符(URI)来描述,这样使得资源具有可寻址性。(2)无状态性,REST要求客户端发起的每一次请求必须是独立的,不会依赖于之前的任何请求,也即,每一次客户端发起请求都应当包括所有所需的上下文数据。由于没有状态性,所以请求可以由负载均衡服务器分配到任意主机,在任意主机独立响应,提高了系统的伸缩性。(3)连通性,指资源之间不是孤立存在的,它们应当彼此联系。REST中所指的资源不仅指实体概念,还指状态。互联网本身就是一个巨大的状态机;每个网页是其一个状态;URI是状态的表述;REST风格的应用的运行流程是一个资源从一个状态迁移到下一个状态的状态迁移过程。(4)统一接口,是指使用统一的方法或者风格去访问资源。客户端使用HTTP方法来操作一个或多个资源,这些操作都是统一接口的,全部使用HTTP中规定的若干方法,如GET方法,用于查询已有资源;POST方法用于更新已有资源或创建新的资源;PUT方法用于创建新的资源;DELETE方法,用于删除已有资源。2.4 跨平台开发工具PhoneGap跨平台本地应用开发工具是一种采用跨平台脚本去调用本地接口Native API的开发工具5。当前比较流行的架构就是采用JavaScript调用本地API接口,获取本地资源6。这里所介绍的PhoneGap就是目前比较流行的一种跨平台本地应用开发工具。PhoneGap可以将基于标准HTML、CSS和JavaScript打造的页面视图封装为本地客户端应用,目前支持10种移动平台。在数据资源传输方面,可以采用普通Web App所使用的Ajax等方式。PhoneGap在页面视图与本地应用之间提供了一个桥梁,允许开发者通过JavaScript访问并使用移动设备的硬件功能,比如摄像头、联系人信息、麦克风等;这是单纯依靠移动浏览器运行的Web App类应用所无法实现的7。采用PhoneGap技术开发的客户端能运行在WebView组件中,例如在Android设备中就内置了WebView组件,相当于内置浏览器,可以将Web应用打包成本地App,从何运用HTML、CSS、jQuery等进行页面布局。虽然PhoneGap具有良好的兼容性和可读性,能运用普通Web开发技术等优点;但同时也存在不足之处,当频繁操作时,会导致响应缓慢,使得WebView无法释放内存,甚至可能引起内存崩溃。2.5 jQuery Mobile框架jQuery Mobile是jQuery在智能手机和平板电脑等移动设备上的版本8。jQuery Mobile不仅能够给主流移动平台带来jQuery核心库,而且还能提供一个统一的移动UI框架,它支持目前主流的移动平台9。现在很多网站都使用了jQuery的框架,给用户带来了很好的用户体验,而jQuery Mobile这个jQuery的移动版也已经得到了广泛的应用。由于其简单易用,页面开发主要使用标记,无需或仅需很少的JavaScript,因此减轻了开发人员的工作量,极大地提高了工作效率;同时jQuery Mobile自带的主题系统,也让使用该框架的网站具有很好的视觉效果。但是jQuery Mobile毕竟还是一个发展中的框架,它的应用程序有不少缺点。比如运行速度比原生应用程序慢,在不同平台上的表现不同,有不少漏洞,运行在浏览器上的JavaScript不能完全地访问设备的很多特性。可以将应用程序通过类似PhoneGap这样的工具将几个版本部署到不同的操作系统上,帮助解决这些问题10。2.6 第三方在线支付平台目前的第三方支付平台有很多,但是使用范围和数量最广的还要数支付宝,在本项目中,我们也使用了支付宝作为支付平台。之所以选择第三方支付平台,主要考虑到下面几个因素:(1)安全性:在我们使用第三方支付平台进行交易时,第三方会将用户输入的账号和密码直接传给用户使用的银行,而银行自身支付网关本身就提供了安全保障,再加上第三方自身也有很好的安全防护系统。第三方会将用户传送的重要数据使用SSL加密通道,为客户提供安全无忧的保障11。(2)经济性:由于第三方支付公司与银行签订了合作协议,在使用第三方支付平台进行交易时,商户无需单独与银行签订协议,减轻了商户的负担。(3)广泛性:随着电子商务火热发展的今天,各种第三方支付平台也迅速壮大。以支付宝为例,实名认证的用户数量已超3亿,因此,使用第三方支付平台进行交易,将会吸引到众多的客户。支付宝是通过对外提供接口来完成交易的,目前,支付宝有很多种类型的接口,包括平台商产品、无线产品、商家收款产品、商家付款产品等,由于我们使用的是手机网页进行在线购票,因此需要的接口为无线产品。在无线产品中,目前包括两类,快捷支付和手机网站支付,根据我们的网站类型,选择了手机网站支付。根据支付宝官方介绍,手机网站支付主要应用于手机、掌上电脑等无线设备的网页上,通过网页跳转或浏览器自带的支付宝快捷支付实现买家付款的功能,资金即时到帐。要申请该支付宝接口,必须满足以下条件:(1)必须有已建设完成的无线网站或无线应用demo;(2)网站必须已通过ICP备案,备案信息与签约商户信息一致,网站经营的商品或服务内容明确、完整;(3)申请前必须拥有企业支付宝账号,且通过支付宝实名认证审核注册企业帐号。2.7 本章小结本章介绍了在系统开发过程中用到的主要技术,如Spring框架、MyBatis数据持久层技术、跨平台开发工具PhoneGap、jQuery Mobile框架以及第三方支付平台等内容。第三章 系统需求分析3.1 需求概述3.1.1 目标通过该系统,主要实现三大目标,基于移动Web的手机在线售票系统可以让用户使用手机随时随地的上网购票;后台管理系统可以使管理人员方便的调整购票的内容,管理游泳馆、教练、用户和商品等信息,同时可以对在线购票系统所产生的订单进行实时查询和汇总;工作人员可以使用手机验票客户端对用户购买的电子游泳卡进行验票和更新游泳卡消费信息。3.1.2 后台管理系统用户管理、门店管理、教练信息管理、订单管理等。3.1.3 手机在线售票系统主系统界面、用户登陆、教练信息、购票界面、购物车等。3.1.4 手机验票客户端查验游泳卡真伪、更新游泳卡可使用次数。3.2 业务流程分析对于手机在线售票管理系统来说,首先需要管理员登录后台系统,在后台系统中录入相关信息,如游泳馆信息、游泳卡信息和教练信息等内容,然后,游泳馆用户才能在手机售票系统中看到相关信息,继而选购游泳卡;在选购游泳卡之前,需要登录系统,如果还不是用户则需要进行注册,注册成功才能在手机售票系统中购买游泳卡;购买到游泳卡之后,用户需要到游泳馆进行消费,此时,游泳馆工作人员会使用检票客户端扫描用户所购游泳卡的二维码,经用户同意消费后,点击验票客户端的“消费”按钮更新游泳卡使用信息,用户即可进入游泳馆进行消费。系统运行各个阶段的业务流程如下图所示。 图3.1 后台管理系统业务流程图 图3.2 手机验票客户端业务流程图图3.3 在线售票系统业务流程图3.3 系统功能需求分析根据游泳馆的实际运营情况,该系统的主要服务对象为管理员、用户和游泳馆工作人员。管理员拥有操作后台管理系统的权限,在后台管理中可以管理游泳场馆的信息、票务信息、订单信息、用户信息、教练信息以及在线验票等;用户可以在在线售票系统中注册、登录、查看个人信息、进行票务选购、在线下单和支付等;游泳馆的工作人员使用验票客户端进行验票,包括二维码验票和序列号验票等。整个系统的功能模块划分如图3.4所示:图3.4 系统整体功能模块图系统主要模块的功能介绍如下:3.3.1 手机在线售票系统1、用户中心模块进入前需要登录,已注册用户可以直接使用用户名和密码登录,未注册用户需要注册成为会员后才能登录系统;登录系统后,直接进入用户中心,在用户中心中可以查看和修改个人资料,查看订单信息、购物车信息和可使用的游泳卡等信息。2、在线购票模块该公司管理多家游泳场馆,各游泳场馆所销售的游泳卡分为门票卡、包月卡和培训卡等多种类别,每种类别的游泳卡又有几种价格,因此,进入在线购票模块之后,需要先选择所要购买的游泳卡种类和游泳场馆,然后需要选择所需购买价格的游泳卡,之后才可以看到游泳卡的详细信息。在详细信息页面可以选择普通价格和校内价格,选择校内价格后需要输入正确的验证码才可购买,在购买之前可以将商品添加到购物车,或者选择立即购买。加入购物车后,可以前往购物车查看和删除购物车中的商品,也可以在购物车中下单;选择立即购买会立即下单,下单成功后提示需在30分钟内付款并自动跳转到订单详情页面;在订单详情页面可以查看订单中的游泳卡信息,点击前往支付按钮跳转到支付宝页面进行支付;支付完成后,支付宝会自动跳转到商户页面,在这里,需要让用户看到已经付款的订单详情页面,在该页面需要显示用户所购买的游泳卡的卡号和二维码信息。3、教练介绍模块该模块中教练介绍是按照游泳馆来区分的,因此用户点击教练介绍,需要首先选择游泳场馆,然后会列出各游泳场馆的教练姓名,点击教练姓名后即可查看教练的联系方式和评价,可以根据自己心仪的游泳教练选择相应的游泳馆来购票。3.4.2 后台管理系统后台管理系统只有管理员使用正确的用户名和密码才能登录到系统中进行相应的操作。1、门店管理模块在该模块可以查看、修改和添加游泳场馆的场馆名、地址以及联系电话等信息,只有先在这里添加了游泳场馆信息,后面才能添加相应游泳馆的游泳卡,购票系统中才可以看到相应的商品信息。2、用户管理模块在该模块中可以新增用户,查看和修改用户个人信息,还可以单独通过用户名、真实姓名或者手机号来快速查找用户信息,也可以组合使用上述条件来查找用户。3、销售管理模块在该模块中分为游泳卡、线上订单和线下订单三个子模块。(1)游泳卡模块这里的游泳卡即为在线购票系统中销售的商品,在该模块中可以添加和查看游泳卡信息,并可以查看每种游泳卡所对应的客户。在新增游泳卡时,需要首先选择游泳卡类别,然后根据相应类别的游泳卡填写相应的游泳卡信息,如包月卡的可使用次数、培训卡的招生对象和学时等信息;然后还要选择该游泳卡所属的游泳馆以及游泳卡的状态,状态应分为四种:录入中、销售中、停止销售和禁用。只有“销售中”状态的游泳卡才能在在线购票系统中购买。(2)线上订单模块在这里可以查看在线购票系统中所产生的订单,这里的订单包括已付款订单和未付款订单,订单信息中主要包括订单号、下单时间、订单金额、游泳卡卡号等;可以单独或组合使用订单号、付款状态、下单时间等条件来查找订单信息和销售额;还可以将订单信息导出到Excel表格中进行处理。(3)线下订单模块在该模块中可以将用户在游泳馆现场购买的游泳卡信息添加到系统中,主要包括卡号、类别、票价等信息。4、教练管理模块该模块实现在线添加、修改和删除教练信息,教练信息主要包括姓名、电话、所属游泳馆等信息。在这里添加的教练信息将会根据教练所属游泳馆在在线购票系统中的教练介绍模块显示。5、在线验票模块在这里验票首先需要输入游泳卡的卡号进行查找,如果查找出游泳卡的信息说明该卡的确属于该公司旗下游泳馆所售;这里的游泳卡信息除了包括卡号、付款状态等信息外,还应包括订单类型的信息,以区分该游泳卡是线上订单还是线下订单所产生的。查找到游泳卡信息后可以点击验票按钮进行验票,这里的验票主要就是更改游泳卡的状态,主要包括四种:未付款、已付款未使用、已付款使用中和已付款已使用。已付款使用中的状态是针对包月卡来说的,因为包月卡可以使用多次,每使用一次,可使用次数会自动减少一次,直到可使用次数为0,状态就会变为已付款已使用,就无法再使用该游泳卡进行消费了。3.5.3 手机验票客户端为了保证安全,要使用验票功能必须先使用正确的用户名和密码登录,进入系统后可以选择使用扫描二维码验票和输入序列号验票。选择扫描二维码验票后会自动打开摄像头进行扫描,将游泳卡的二维码放到扫描方框内时,客户端软件会自动识别二维码信息,识别完成后会自动跳转到系统首页。如果识别出的二维码信息不存在数据库中,或者该游泳卡可使用次数已为0,客户端会自动进行弹框提醒;如果验票成功,该游泳卡可以使用,会在页面下方显示出游泳卡的信息,主要包括订单号、游泳卡票价、可使用时间和使用次数等信息。如果用户不方便使用二维码进行验票,也可以选择手动输入序列号进行验票。输入完成后点击序列号验票,系统会自动在数据库中查找该序列号信息,结果同扫描二维码验票一样。验票成功后,如果用户需要进行消费,可以点击页面上的消费按钮,确认消费后,该游泳卡的可使用次数会自动减少一次。至此,整个验票流程结束。3.4 系统非功能需求分析3.4.1 界面需求对于后台管理系统,为实现系统功能,方便用户使用,在界面设计上,应做到简单明了,易于操作,并且要注意到界面的布局,应突出的显示重要以及出错信息。外观上也要做到合理化,考虑到用户多对Windows系统风格较熟悉,因此在总体布局上也应尽量向这一方向靠拢,即自上向下的选择栏。手机在线售票的系统界面,由于移动设备屏幕尺寸有限,因此在界面设计中尤其要遵循简洁的原则,图标不能太小和过于集中;布局上还要考虑到移动设备横屏和竖屏显示的效果。由于手机验票客户端的使用范围很小,加之其重点是实现相应的功能,考虑到客户端的运行速度,因此界面上无需做过多美化。3.4.2 性能需求系统的运行性能是影响用户体验的重要因素,系统的响应时间是性能因素中要考虑的重点,尤其对于手机售票系统来说,如果页面加载速度太慢,很可能会使用户放弃在线购票,因此,系统的响应时间和页面加载速度是测试过程要考虑的重心。3.4.3 运行环境需求Mysql数据库,JRE运行时环境,Tomcat服务器。3.4.4 安全性需求用户需经过身份验证成功登录系统后,方能进行购票、更改用户信息等操作。管理员需经过身份验证成功登录系统后,才可进行修改票务信息,管理游泳馆信息等操作。3.4.5 质量需求原则上来说,除硬件故障等突发状况,系统需24小时无故障运行。3.5 数据库需求分析通过对游泳馆手机在线售票管理系统的需求分析,确定了系统要实现的功能,根据这些功能和游泳馆实际运行中所产生的数据,设计如下的数据项和数据结构。1、用户信息,包括的数据项有:用户编号、用户名、密码、真实姓名、身份证、电话、性别、邮箱等。2、游泳场馆信息,包括的数据项有:游泳馆编号、游泳馆名称、地址、联系电话等。3、教练信息,包括的数据项有:教练编号、姓名、电话、身份证、性别、游泳馆编号、备注等。4、游泳卡类别信息,包括的数据项有:游泳卡类别编号、类别名称、状态等。5、游泳卡信息,包括的数据项有:游泳卡编号、游泳卡名称、普通价格、校内价格、校内价格验证码、课程等级、课程名称、可使用次数、招生对象、学时、开始日期、结束日期、消费时段、状态、游泳馆编号、游泳卡类型、库存等。6、购物车信息,包括的数据项有:用户编号、游泳卡编号、游泳卡价格类型、购买数量、加入购物车时间等。7、线上订单信息,包括的数据项有:订单号、下单时间、订单费用、用户编号、订单状态等。8、线上订单详情信息,包括的数据项有:订单编号、游泳卡名、游泳卡编号、游泳卡价格、可使用次数、已使用次数、课程等级、课程名称、招生对象、学时、开始日期、结束日期、可消费时段、订单状态、游泳卡编号、游泳卡二维码信息等。9、线下订单信息,包括的数据项有:订单编号、游泳卡名称、游泳卡价格、可使用次数、已使用次数、课程等级、课程名称、招生对象、学时、开始日期、结束日期、消费时段、订单状态、游泳卡类别、游泳卡编号、用户名、电话、游泳场馆编号等。3.6 本章小结本章中首先进行了需求概述,然后在对游泳馆业务流程进行分析的基础上,得出了系统的主要需求;并在得到需求的基础上,对系统所要实现的主要功能进行了分析,得出了系统的主要模块,并对各个模块的功能进行了简要说明;最后对系统的数据库需求进行了分析。第四章 系统设计4.1 数据库设计数据库在一个系统中占有很重要的地位,数据库设计的好坏直接关系到系统的稳定和运行效率,因此做好数据库的设计显得尤为重要。4.1.1 系统整体ER图由系统的功能模块分析和数据库需求分析,可得出如图4.1所示的系统整体ER图。管理员负责管理用户、教练、游泳馆和游泳卡等信息,还可以查看订单和订单详情信息;用户通过直接下单或者在购物车中下单产生订单和订单详情;教练可以同时属于多个游泳馆;一个游泳馆有多张游泳卡进行销售;订单详情信息包括订单信息,游泳卡信息包括游泳卡类型信息。图4.1 系统整体ER图4.1.2 主要数据表结构由前面得出的数据库需求分析和ER图,设计出下面所示的主要数据表结构。表4.1 用户信息表主/外键字段名字段描述数据类型长度可空备注主键ID用户IDINT11USERNAME用户名VARCHAR45PASSWORD密码VARCHAR45REALNAME真实姓名VARCHAR45是IDCARD身份证VARCHAR45是TELEPHONE电话VARCHAR45SEX性别VARCHAR45EMAIL邮箱VARCHAR45是表4.2 游泳场馆信息表主/外键字段名字段描述数据类型长度可空备注主键ID游泳馆IDINT11NAME游泳馆名称VARCHAR45ADDRESS地址VARCHAR45PHONE电话VARCHAR45表4.3 教练信息表主/外键字段名字段描述数据类型长度可空备注主键ID教练IDINT11NAME姓名VARCHAR45PHONE电话VARCHAR45IDCARD身份证VARCHAR45是SEX性别VARCHAR45是DETAILS备注VARCHAR45是外键NATATORIUM_ID游泳馆编号INT11表4.4 游泳卡类别信息表主/外键字段名字段描述数据类型长度可空备注主键ID游泳卡IDINT11NAME游泳卡类别名称VARCHAR45REMARKS游泳卡标志VARCHAR200是STATUS游泳卡状态INT11是表4.5 购物车信息表主/外键字段名字段描述数据类型长度可空备注主键ID购物车IDINT11外键MEMBER_ID用户编号INT11外键TICKET_ID游泳卡编号INT11PRICETYPE价格类型CHAR11:普通价格2:校内价格COUNT购买数量INT11PUTTIME加入购物车时间DATETIME表4.6 游泳卡信息表主/外键字段名字段描述数据类型长度可空备注主键IDIdINT11TICKETNAME游泳卡名称VARCHAR45PRICE普通票价VARCHAR45SCHOOLPRICE校内价格VARCHAR45SCHOOLPRICEVALIDATECODE校内价格验证码VARCHAR15USECOUNT可使用次数VARCHAR45CLASSLEVEL课程等级VARCHAR45是初级班、提高班、中考班、成人班CLASSNAME课程名称VARCHAR45是TARGET招生对象VARCHAR45是PERIOD学时VARCHAR45是STARTTIME开始日期DATEENDTIME结束日期DATEDETAILTIME消费时段VARCHAR500DETAIL备注BLOB是STATUS游泳卡状态INT110:录入中;1:销售中;2:停止销售;3:禁用外键NATATORIUM_ID游泳场馆编号INT11外键TYPE_ID游泳卡类别编号INT11INVENTORY库存INT11表4.7 线上订单信息表主/外键字段名字段描述数据类型长度可空备注主键IDidINT11ORDERNO订单编号VARCHAR45CREATETIME下单时间DATETIMECOST订单费用FLOAT外键MEMBER_ID用户编号INT11STATUS订单状态INT110:未付款;1:已付款;2:付款超时表4.8 线上订单详情信息表主/外键字段名字段描述数据类型长度可空备注主键IDidINT11外键TICKETNAME游泳卡名VARCHAR45PRICE游泳卡价格FLOATUSECOUNT可使用次数INT11CLASSLEVEL课程等级VARCHAR45是初级班、提高班、中考班、成人班CLASSNAME课程名称VARCHAR45是仰泳、蛙泳、自由泳TARGET招生对象VARCHAR45是PERIOD学时VARCHAR45是STARTTIME开始日期DATETIMEENDTIME结束日期DATETIMEDETAILTIME可消费时段VARCHAR500DETAIL备注BLOB是STATUS订单状态INT110:未付款;1:已付款,未使用;2,已付款,使用中;3,已付款,已使用ORDER_ID订单编号INT11外键TICKET_ID游泳卡编号INT11外键TYPE_ID游泳卡类别编号INT11USEDCOUNT已使用次数INT11是外键ORDERNO订单编号VARCHAR45USECODE游泳卡编号VARCHAR255USECODE_PATH游泳卡二维码VARCHAR500表4.9 线下订单信息表主/外键字段名字段描述数据类型长度可空备注主键IDidINT11外键TICKETNAME游泳卡名称VARCHAR45是PRICE学费FLOAT是USECOUNT可使用次数INT11是CLASSLEVEL课程等级VARCHAR45是初级班、提高班、中考班、成人班CLASSNAME课程名称VARCHAR45是蛙泳、蝶泳、自由泳TARGET招生对象VARCHAR45是PERIOD学时VARCHAR45是STARTTIME开始日期DATETIME是ENDTIME结束日期DATETIME是DETAILTIME有效期内可消费时段VARCHAR500是DETAIL备注BLOB是STATUS订单状态INT11是0:未付款;1:已付款,未使用;2,已付款,使用中;3,已付款,已使用外键TYPE_ID游泳卡类别编号INT11USEDCOUNT已使用次数INT11是USECODE游泳卡号VARCHAR255是ORDERNO订单号VARCHAR255是USERNAME用户名VARCHAR255是USERTEL电话VARCHAR255是外键NATATORIUM_ID游泳场馆编号INT114.2 系统架构设计整个系统中,我们使用Tomcat这一轻量级服务器,综合运用Spring MVC框架和LOG4J日志管理技术搭建后台管理系统,运用Spring框架、MyBatis和RESTFul样式的Web Services技术来为移动端的在线售票系统和验票客户端提供数据接口。移动客户端的在线售票系统综合运用HTML5、CSS和jQuery Mobile来搭建用户界面,在JavaScript中通过URL调用Web Services接口,获得JSON格式的数据返回,通过JavaScriptt的Ajax请求将数据动态显示到界面中;手机验票客户端也使用在线售票系统相同的方式来进行数据的调用。系统整体架构如图4.2所示。图4.2 系统整体架构图4.3 系统模块整体设计在整个系统中,由于后台管理、手机在线售票以及验票客户端使用的是同一个数据库文件,因此,我们将实体对象和数据持久层独立出来,封装在dataaccess层下,供各个子系统进行调用。在数据持久层中 ,我们使用MyBatis这一数据持久层技术来映射数据库文件。4.3.1 后台管理系统在后台管理系统中,我们采用Spring MVC框架,使用JSP页面作为表现层,通过点击JSP页面上的按钮和超链接,触发相应事件,将HttpRequest请求传到controller控制层,在控制层中调用service业务层中的方法进行处理,具体的方法实现在service.impl中,对于业务层请求的数据,通过MyBatis映射到具体的数据库,而Spring作为全局控制存在于整个流程之中。后台管理系统逻辑结构如图4.3所示:图4.3 后台管理系统逻辑结构图4.3.2 手机在线售票系统在手机在线售票系统中,我们采用了RESTful Web Service技术和Spring框架,将服务器端进行了很好的封装,对外提供统一的接口。在本项目中,我们使用URL(统一资源定位符)来定位资源。在使用Spring之前我们首先需要导入相应的jar包并配置applicationContext.xml文件,在该文件中配置数据源、属性文件、SqlSessionFactoryBean、事务管理等。为了减少对服务器的请求,提高页面读取和访问速度,加之在线售票系统的页面功能和样式都相对独立,而且页面数不多。因此,我们将所有页面写在同一个index.html中,将JavaScript的Ajax数据访问也写在同一个common.js文件中,使用id来查找相应页面。在common.js中我们定义了一个basicUrl,要访问具体的业务处理功能,在basicUrl后面加上Web Service中的相应路径即可。在Web Service中,我们主要定义了业务层service和业务逻辑层manager,并定义了相应的实现层service.impl和manager.impl。在业务层中通过使用Spring注解Controller来实现控制层的功能,接收前台界面传来的业务请求,使用RESTful的注释Path、Produces、PathParam,对外暴露统一的接口。在业务层中通过调用业务逻辑层的方法,实现相应的功能。4.3.3 手机验票客户端对于手机验票客户端,考虑到目前的移动智能终端操作系统平台出现“百家争鸣”的现象,而各个平台之间相互不兼容,没有一套标准的接口。为了减轻后期多平台的开发工作,我们决定采用PhoneGap这一跨平台开发框架。在手机验票客户端中,我们采用HTML5实现页面显示功能,使用jQuery Mobile进行某些事件处理;通过JavaScript调用Web Services中相应接口的方法进行业务处理,获得返回的JSON格式的数据,通过JavaScript解析,将相应信息显示在HTML5页面中;利用PhoneGap调用本地API,如本机摄像头等。手机验票客户端的总体结构设计如图4.4所示。图4.4 手机验票客户端总体结构图4.3 本章小结在上一章需求分析的基础上,本章首先进行了详尽的数据库设计,然后进行了系统的整体架构设计,最后对系统的各模块进行了整体设计。由于数据库设计的好坏直接关系到系统的稳定和运行效率,因此本章中运用很大篇幅进行数据库的详细设计。第五章 系统实现在整个系统实现中,由于后台管理、手机在线售票以及验票客户端使用的是同一个数据库文件,因此,我们将领域层和数据持久层独立出来,供各个子系统进行调用。在数据持久层中 ,我们使用MyBatis这一数据持久层技术来映射数据库文件。5.1 后台管理系统主要功能实现5.1.1 界面框架实现对于后台管理的界面,我们采用了目前使用较为广泛的“上左右”框架,即顶部显示网站信息和一些常用按钮,左侧显示功能模块,右侧显示具体信息。由于顶部信息和左侧功能模块信息都是固定的,因此,我们使用了三个独立的JSP页面,在三个独立的JSP页面中写入相应的页面内容后,将它们放在同一
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 成人自考


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!