




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
大型门户网站提供了查看演唱会信息和支付购票的基本服务,但一些知名的网站则提供了更加丰富和完善的服务,以满足不同的需求。随着时间的推移,国外的票务网站数量不断增加,其中最具代表性的例子就是Ticketmaster、Eventbrite、Stubhub和viagogoREF_Ref24843\r\h[3]。Ticketmaster是一个老牌的网络售票公司,它以B2C网络售票为核心,通过网络预定,电话预定,零售销售等方式进行。这个站点有两种选择:互动选择和系统指派。在对使用者的基本要求进行分析的基础上,根据使用者的要求,为使用者提供最优的解决方案。Eventbrite在线售票网站采取了B2C的模式,可以为用户提供宣传和购票等便利的服务,在满足用户基本需要的同时,还可以提供高质量的服务。国内的豆瓣网站也采用了类似的模式,实现了完全的电子化,从而使得两者之间的差异更加明显。Stubhub是一个新兴的票务转售拍卖网站REF_Ref24918\r\h[4],它的发展可以追溯到eBay,而“票虫网”也有类似的特点,但是它的规模和影响力要远远超过eBay。在海外,可以选择各种各样的订票方法,并且拥有大量专业的订票网站。它们各具特色,为游客带来更加便捷、高效的订票体验。此外,许多订票网站还为游客提供了丰富的信息,包括实时座位信息、安检信息等。在海外,有许多独特的旅游服务,值得深入研究。随着科技的发展,国内的在线订票网站数量激增,从淘宝网到京东网,从中国票务网到聚橙网,从格瓦拉网到千票网,从永乐票务到大麦网,这些网站构成了一个完整的票务销售和服务体系,其中一些甚至是专门为网站提供的售票服务。一些比较好的平台是大麦网和永乐网,而其他一些网站不够漂亮,有些网站的票务和票务条件也不理想。虽然系统在使用中没有问题,但系统稳定性等方面都不理想。1.4论文组织架构本文的结构如下:第1章:绪论。对选题的背景进行了分析,指出了选题的目的与意义,并对国内外的研究现状进行了综述。概括本文的主体框架。第2章:相关理论和技术。详细探讨了本论文所采用的技术方法和组织结构,并对其所牵涉到的关键技术进行了深入研究和阐述。第3章:系统分析。对系统进行分析以及可行性研究,从技术、经济和社会三个层面,全面分析了系统的可行性。第4章:系统设计。在系统可行性研究的基础上,对演出购票系统进行了详细的设计,包括各功能模块的设计,UI界面设计,数据库的建立等。第5章:系统实现。对系统的各个功能模块进行详细的描述,着重写出了功能模块实现的具体代码。第6章:系统测试。对各主要功能模块进行了功能测试,给出了具体实现步骤和测试结果。第2章相关理论和技术2.1Java简介最初由Sun公司开发的Java程序设计语言,在1995年5月官方公布,该语言包括程序设计语言,数据库,网络,应用程序等功能。为程序设计人士创造了一种快速、灵巧的程序设计开发工具,从而迅速地获得了程序设计爱好者的认可,也为Java编程语言的未来发展打下了扎实的基石。Java平台是一个多功能的软件,它包含了三个不同的开发系统:J2SE(Java2PlatformStandardEdition)的标准版,J2EE(java2PPlatformEnterpriseEdition)的企业版,和j2ME(java2PlatformStandardEdition)的小型版。Java是一种优秀的编程语言,在互联网上得到了广泛的应用。Java的独特性体现在它拥有一系列前所未见的特性,比如消除了传统语言中复杂的指针定义,以及解决了逻辑操作语句和赋值语句的模糊性,使得java更加简洁高效。在此基础上,提出了一种新的、可靠的、可控的程序设计方案,实现了对存储空间的有效控制与管理。更为重要的是,JavaREF_Ref17110\r\h[6]程序开发工作人员不需要在系统中对内存进行分配和释放以及二次分配,在编写的过程当中可以完全忽略内存的影响,由后台的Java虚拟服务组件等机制进行处理,这些新特性就决定了Java的出现会受到广大代码编写人员的青睐。Java语言的核心架构提供了大量实用的类库函数,它们能够让编写者轻松地访问,而无须重新编写,从而大大提高编写效率,极大地缩短编码周期。Java语言的应用非常普遍,尤其适用于企业级应用程序流程的开发。它拥有大量的类库,能够轻松地应用于各种场景。此外,它的易用性和后期维护能力都非常强,所以它成为一个非常好的选择。2.2MySQL特点MySQL拥有多种先进的数据库存储技术,它们各具特色,满足各种复杂的应用需求。使用者可以根据需求,从多种技术中挑选出最佳的,从而达到更好的效果,特别是在面对日均上亿次的高级查询任务时。MySQL5拥有强大的功能,包括处理事件、创建视图、记录过程和触发器。 MySQL运行:一个突出的特点是它的高效率性能。其使用了Break-Tree磁盘表(MyISAM),并将索引压缩,因此提供了更快的存取体验;此外,它还采用了一种更加精细的单向扫描技术,能够更加迅捷地完成各种数据交换;而且,它的SQL语句也采用了最先进的类库,具有更强的执行能力。MySQL数据库具有极低的成本,它是一款完全免费的AP,用户可以轻松访问并使用它。MySQL拥有强大的功能,可以容纳多种不同的编程语言,从php到Java,从Eiffel到Ruby,从Tcl到C,从c++到Perl,mysql都能够满足您的需求。此外,mysql还拥有丰富的api函数,可以满足您的多样化需求。MySQL数据库拥有极高的存储能力,其表的尺寸取决于操作系统的文档尺寸,这种尺寸的变化并非完全取决于MySQL本身的设置。为了更好地管理数据,InnoDB存储技术允许用户从一个表中添加更多的表,从而提高数据的安全性和完整性。该表的存储能力极强,其中包含64TB的存储空间,足够支持拥有上千万条记录的庞大数据集。MySQL拥有丰富的内部程序,其中PHP包含了webAP的基本需求。MySQL还拥有丰富的扩展程序,例如MySQLi,这些程序都具备高效的存储和管理功能。MySQLi还具备完善的用户界面,使用户在使用mysql时更加轻松和高效。2.3Springboot介绍Springboot是一款基于Spring4.0的框架,它拥有更多的优势,可以大幅度简化Spring应用程序的构建和开发,同时也可以支持更多的第三方技术,从而提高系统的性能。通过解决项目中的依赖包冲突和不稳定性问题,可以大大提升系统开发的效率,并且大大减少了开发过程的复杂性。Spring框架是一个由Java公司发布的开放式框架,其特点之一就是可以实现反向调整,这一特性大大减少了编码的复杂性,因此,Java领域的Spring框架一直备受青睐,后来更进一步,成为EJB(EnterpriseJavaBeans)框架的重要组成部分,并取得了巨大的成就。Spring框架可以有效地支撑开发,它可以充分利用其独有的控制反向功能,从而更好地支撑Web框架的开发。Spring框架的核心功能之一就是支持多种类型的Java应用程序,它可以实现快速、灵活的调度,以及支持多种类型的编程语言,它可以根据需要,自动调整编程语言的参数,以及调整编程语言的结构,从而更好地支持多种类型的应用程序。容器的设计方式包括:从XML文件中提取参数,并在其中添加Java语言的解析,从而创建一个新的、具有用户体验的实体,并且根据需要进行调整。第3章系统分析3.1可行性分析3.1.1技术可行性在本系统的研发过程中,技术的可行性主要表现在所使用的技术、平台、架构和设计方式等方面。在对Springboot演唱会门票系统进行开发的时候,使用了Java作为后端开发语言,在开发的过程中,基于Springboot框架,Vue和MySQL作为前端框架和数据库进行数据的存储,Navicat作为数据库工具,Tomcat作为开发工具,来构建IDEA服务器。同时,大多数与本系统相关的开发工具与技术都为开源。3.1.2经济可行性技术的可行性研究分析完成后,要考虑经济可行性研究,所开发的演唱会购票系统有着良好的发展前景和较高的经济价值,且本系统设计所需技术以及开发工具皆为免费。由此可知,本系统的设计和开发在经济上是可行的。3.1.3操作可行性系统移交给用户后,必须确保系统易于使用和操作方便。大多数功能都通过精心设计的图形界面,大多数功能可以轻松实现,数据输入也应该尽可能地简洁、完整,避免歧义,以便管理者和用户更加轻松地查看自身的信息。此外,系统的操作流程应该简洁、高效,并且要对不同等级的用户进行有效的管理。经过仔细的分析和评估,可以断定,这项开发在实施上具有可行性和可靠性。3.1.4法律可行性从法律上看,整个开发过程有如下特点:法律上可以获取用于发展的全部技术资料;在开发的全过程中,没有涉及到知识产权方面的问题;本软件的制作过程未从其他网站拷贝,且不存在对著作权的侵权行为;所有的开发过程均为其自身的、原始性的劳动,并无任何法律上的义务。3.2需求分析系统的功能需求分析能够更深入地了解在软件功能需求的实现过程中,所需要实现的功能和不需要实现的功能。通过对上述功能的有效分析,可以实现对软件产品的早期缺陷的及时检测,从而极大地提升软件产品的制作效率,降低开发成本,并显著提升软件产品的质量。3.2.1功能需求分析在基于Springboot的演唱会购票系统中,用户通过注册、登录,进入到系统后,可以直接进入页面,查看演唱会的信息,了解音乐演唱会的类别信息,查看购票的座位,联系在线客服,并进行订单的支付。在后台,管理员可以完成对个人中心、用户、演唱会详情、演唱会的分类、排期和系统的管理等功能。无论你是一个管理员,还是一个用户,你都应该按照同样的方式登陆。登陆后,系统会先验证账号和口令,确认账号和口令无误后,才会开始询问账号的使用权限,并给出相应的使用权限。登录成功后,会跳转网页,若某一项发生错误,则会提示账号或密码输入错误,需再次输入账号和密码,方可登录。本系统的具体登录流程如图3.1所示:NNY开始输入账号和密码检测账号和密码是否正确查询角色权限登录成功页面跳转结束账号和密码错误,返回图3.1登录流程图注册流程如图3.2所示:注册界面注册界面用户注册输入注册信息判断用户是否存在按照要求规范填写用户存在是否符合输入规范注册成功信息存入数据库登录界面YYNN 图3.2注册流程图3.2.2非功能需求分析在演唱会票务系统平台的开发过程中,不仅要关注演唱会购票业务本身,还要保证其性能。从以下两个方面分析了演唱会购票系统的非功能性需求,包括可靠性通过四个关键要素的深入研究,演出购票系统不仅要具备功能,还要具备良好的可靠性和稳定性。(1)可靠性:对身份的访问控制确保了系统的安全、正常和可靠运行。演唱会门票数据在输入、存储、传输和处理过程中应始终保持完整性和一致性。(2)系统的稳定性是至关重要的,它不仅要求数据的可靠性,还要求系统能够在任何情况下都能够稳定运行。不应该以牺牲系统稳定性为代价过分强调新技术,也不应该以损害系统运行和安全为代价过分重视稳定性。3.2.3系统用例图本系统分为超级管理员和普通用户两种角色。普通的个人用户登陆后可以进行演唱会场次以及详细信息的查看、依照个人喜好进行购票、对客服进行问题咨询、管理个人基本信息操作等,用户用例图如图3.3所示。用户用户管理个人信息咨询客服查看演唱会购票图3.3用户用例图
管理员可以进行个人中心的基本信息管理、用户信息的管理、演唱会的分类别及介绍管理、管理演唱会基本信息、系统整体的管理、对于订单的增删改查操作等,管理员用例图如图3.4所示。管理员管理个人中心管理员管理个人中心管理用户信息管理演唱会类别管理订单管理系统管理演唱会信息
第4章系统设计4.1功能模块设计通过对系统功能的分析,演唱会购票系统的具体功能模块包括以下几个主要功能模块:个人信息管理模块、用户管理模块、演唱会管理模块、演唱会类别管理模块、订单管理和系统管理模块。系统的功能模块如图4.1所示:图4.1系统功能模块图4.2数据库概念设计(1)管理员实体图管理员实体包括密码、账号等属性,如图4.2所示:账号账号密码管理员图4.2管理员实体图(2)用户实体图用户实体包括账号、昵称、手机、余额、头像、性别、密码等属性,如图4.3所示:账号账号昵称手机密码性别头像用户余额图4.3用户实体图(3)演唱会实体图演唱会实体包括标题、简介、图片、内容等属性,如图4.4所示:标题标题图片简介内容演唱会图4.4演唱会实体图(4)在线客服实体图在线客服实体包括用户ID、用户提问、管理员ID、管理员是否进行回复,回复的时间等属性,如图4.5所示:用户ID用户ID提问管理员id回复是否回复在线客服图4.5在线客服实体图(5)订单实体图订单座位号订单座位号价格演唱会名称购买数量用户ID订单编号图4.6订单实体图(6)演唱会购票系统E-R图本系统包括演唱会与用户两个实体,系统的E-R如图4.7所示:图4.7演唱会购票系统E-R图4.3数据库逻辑设计在针对此系统基础上,提出了一种新的逻辑结构,并在此基础上实现了对数据的规范化、表间关系的确定以及对数据操作的优化。经过深入研究,为不同类型的数据实体建立了一个完整的数据库及其详细列表。具体表设计如下:(1)管理员表users“管理员表”用来记录管理员的基本信息,设定id为唯一标识。users的结构如表4.1所示。表4.1管理员表字段名称类型长度字段说明主键默认值idbigint主键主键usernamevarchar10用户名passwordvarchar20密码rolevarchar50角色管理员addtimetimestamp新增时间CURRENT_TIMESTAMP(2)收藏表storeup“收藏表”用来查看个人收藏的信息。storeup的结构如表4.2所示。表4.2收藏表字段名称类型长度字段说明主键默认值idbigint主键主键addtimetimestamp创建时间CURRENT_TIMESTAMPuseridbigint用户idrefidbigint商品idtablenamevarchar100表名namevarchar200名称picturelongtext4294967295图片typevarchar2000类型1inteltypevarchar50推荐类型remarkvarchar240备注(3)用户表yonghu“用户表”是用来存储记录用户基础信息。yonghu的结构如表4.3所示。表4.3用户表字段名称类型长度字段说明主键默认值idbigint主键主键addtimetimestamp创建时间CURRENT_TIMESTAMPzhanghaovarchar40账号mimavarchar20密码nichengvarchar30昵称xingbievarchar4性别shoujivarchar11手机touxianglongtext4294967295头像moneyfloat余额0(4)订单表orders“订单表”是用来记录订单的信息。orders的结构如表4.4所示。表4.4订单表字段名称类型长度字段说明主键默认值idbigint主键主键addtimetimestamp创建时间CURRENT_TIMESTAMPorderidvarchar25订单编号tablenamevarchar50商品表名yanchanghuiuseridbigint用户idgoodidbigint商品idgoodnamevarchar30商品名称picturelongtext4294967295商品图片buynumberint购买数量pricefloat价格0discountpricefloat折扣价格0totalfloat总价格0discounttotalfloat折扣总价格0typeint支付类型1statusvarchar200状态addressvarchar200地址telvarchar11电话consigneevarchar30收货人(5)演唱会表news“演唱会表”来存储演唱会的详情信息。news的结构如表4.5所示。表4.5演唱会表字段名称类型长度字段说明主键默认值idbigint主键主键addtimetimestamp创建时间CURRENT_TIMESTAMPtitlevarchar50标题introductionlongtext4294967295简介picturelongtext4294967295图片contentlongtext4294967295内容(6)演唱会评论表discussyanchanghui“演唱会评论表”是用来记录演唱会评论的信息。discussyanchanghui的结构如表4.6所示。表4.6演唱会评论表字段名称类型长度字段说明主键默认值idbigint主键主键addtimetimestamp创建时间CURRENT_TIMESTAMPrefidbigint关联表iduseridbigint用户idavatarurllongtext4294967295头像nicknamevarchar200用户名contentlongtext4294967295评论内容replylongtext4294967295回复内容(7)在线客服表chat“在线客服表”是记录在线客服的信息。chat的结构如表4.7所示。表4.7在线客服表字段名称类型长度字段说明主键默认值idbigint主键主键addtimetimestamp创建时间CURRENT_TIMESTAMPuseridbigint用户idadminidbigint管理员idasklongtext4294967295提问replylongtext4294967295回复isreplyint是否回复第5章系统实现5.1实现环境本系统的开发需要使用以下几种不同的技术:Java编程语言,Springboot框架,JDK1.8版,tomcat7服务器,MySQL5.7,Navicat11数据库开发工具,idea,Maven(Maven3.3.9),以及谷歌浏览器。5.2登录如果用户是第一次进入系统,那么可以点击右上角的登录/注册,跳转至登录注册页面,若用户要注册,则需要输入自己的详情信息,此时将用户信息新增一条写入用户表中。用户注册界面如图5.1所示:图5.1用户注册界面登陆的时候,设置路由守卫,拦截非密码方式进入,用户必须先输入你的使用者名称及口令,再点击“登录”按钮进入,系统查询用户表,比对正确后进入主页面。用户登录界面如图5.2所示:图5.2用户登录界面当管理员登陆,输入正确的帐号密码,进入后台管理的主页。如果键入的使用者名称或口令是错误的,则会收到拦截并有提示信息弹出。后台登录界面如图5.3所示:图5.3后台登录界面图5.4用户注册成功界面实现该功能的关键代码如下:@IgnoreAuth @PostMapping(value="/login") publicRlogin(Stringusername,Stringpassword,Stringcaptcha,HttpServletRequestrequest){ UsersEntityuser=userService.selectOne(newEntityWrapper<UsersEntity>().eq("username",username)); if(user==null||!user.getPassword().equals(password)){ returnR.error("账号或密码不正确"); } Stringtoken=tokenService.generateToken(user.getId(),username,"users",user.getRole()); returnR.ok().put("token",token); }5.3演唱会订票用户登录成功进入系统后,再次点击“演唱会”按钮,进入在演唱会界面,用户可以查看演唱会的类别、地址和价格。如图5.5、5.6、5.7所示: 图5.5用户查看演唱会界面 图5.6用户查看演唱会类别界面图5.7用户查看演唱会地址和价格界面用户点击演唱会预告图片可以查看演唱会详情,预定演唱会,在平台上评论、选座位、预定和支付价钱。如图5.8、5.9、5.10、5.11所示:图5.8用户查看演唱会详情界面图5.9用户评论界面图5.10用户确定预定界面图5.11用户确定支付界面实现该功能的关键代码如下:@IgnoreAuth@RequestMapping("/list")publicRlist(@RequestParamMap<String,Object>params,YanchanghuiEntityyanchanghui, HttpServletRequestrequest){EntityWrapper<YanchanghuiEntity>ew=newEntityWrapper<YanchanghuiEntity>(); PageUtilspage=yanchanghuiService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew,yanchanghui),params),params));returnR.ok().put("data",page);}5.4个人中心以用户身份登录到系统中,进入个人中心界面,可以对个人信息进行重新设置以及更新。个人中心界面如图5.12所示:图5.12个人中心界面在个人中心点击点我充值,充值需借助第三方的接口。充值界面如图5.13所示:图5.13用户充值界面在个人中心点击我的订单,用户可查看个人购票订单。如图5.14所示:图5.14用户查看我的订界面在个人中心找到我的收藏并点击,则用户可以自己查看收藏的演唱会记录。如图5.15所示:图5.15我的收藏界面实现该功能的关键代码如下:@RequestMapping("/lists")publicRlist(OrdersEntityorders){ EntityWrapper<OrdersEntity>ew=newEntityWrapper<OrdersEntity>(); ew.allEq(MPUtil.allEQMapPre(orders,"orders"));returnR.ok().put("data",ordersService.selectListView(ew));} /***查询*/@RequestMapping("/query")publicRquery(OrdersEntityorders){EntityWrapper<OrdersEntity>ew=newEntityWrapper<OrdersEntity>(); ew.allEq(MPUtil.allEQMapPre(orders,"orders")); OrdersViewordersView=ordersService.selectView(ew); returnR.ok("查询订单成功").put("data",ordersView);}5.5演唱会管理以管理员身份登录到系统中,由于权限的不同分配,管理员进入到演唱会管理界面后,进入演唱会列表界面,可实现对演唱会和评论的增删改查操作。演唱会管理界面如图5.16所示:图5.16演唱会管理界面管理员在演唱会界面点击查看评论,可查看用户对演唱会的评论。如图5.17所示:图5.17管理员查看评论界面管理员点击回复可对用户的评论进行回复。如图5.18所示:图5.18评论回复界面管理员在演唱会界面点击修改,可修改演唱会的详细情况。如图5.19所示:图5.19修改详情界面管理员在演唱会界面点击详情,可查看演唱会的详细情况。如图5.20所示:图5.20演唱会详情界面实现该功能的关键代码如下:@RequestMapping("/add")publicRadd(@RequestBodyYanchanghuiEntityyanchanghui,HttpServletRequestrequest){ yanchanghui.setId(newDate().getTime()+newDouble(Math.floor(Math.random()*1000)).longValue()); //ValidatorUtils.validateEntity(yanchanghui);yanchanghuiService.insert(yanchanghui);returnR.ok();}/***修改*/@RequestMapping("/update")@TransactionalpublicRupdate(@RequestBodyYanchanghuiEntityyanchanghui,HttpServletRequestrequest){//ValidatorUtils.validateEntity(yanchanghui);yanchanghuiService.updateById(yanchanghui);//全部更新returnR.ok();}5.6在线客服管理以普通用户身份登录到购票系统中,进入到在线客服管理界面,找到在线客服列表界面,手动输入信息进行提问。在线客服管理界面如图5.21所示:图5.21在线客服管理界面实现该功能的关键代码如下:@RequestMapping("/lists")publicRlist(ChatEntitychat){ EntityWrapper<ChatEntity>ew=newEntityWrapper<ChatEntity>(); ew.allEq(MPUtil.allEQMapPre(chat,"chat"));returnR.ok().put("data",chatService.selectListView(ew));} /***查询*/@RequestMapping("/query")publicRquery(ChatEntitychat){EntityWrapper<ChatEntity>ew=newEntityWrapper<ChatEntity>(); ew.allEq(MPUtil.allEQMapPre(chat,"chat")); ChatViewchatView=chatService.selectView(ew); returnR.ok("查询在线客服成功").put("data",chatView);}5.7订单管理以管理员身份登录到系统中,进入到订单管理界面,输入订单编号或商品名称,对订单进行查找,还可以对订单删除修改等操作。订单界面如图5.22所示:图5.22订单管理界面实现该功能的关键代码如下:@RequestMapping("/page")publicRpage(@RequestParamMap<String,Object>params,OrdersEntityorders, HttpServletRequestrequest){ if(!request.getSession().getAttribute("role").toString().equals("管理员")){ orders.setUserid((Long)request.getSession().getAttribute("userId")); }EntityWrapper<OrdersEntity>ew=newEntityWrapper<OrdersEntity>(); PageUtilspage=ordersService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew,orders),params),params));returnR.ok().put("data",page);}5.8用户管理以管理员身份登录到系统中,进入到用户管理界面后,可实现对普通用户的基本管理,还可以对普通用户进行添加、修改、删除、批量删除、查看详情等操作。用户管理界面如图5.23所示:图5.23用户管理界面实现该功能的关键代码如下:@RequestMapping("/lists")publicRlist(YonghuEntityyonghu){ EntityWrapper<YonghuEntity>ew=newEntityWrapper<YonghuEntity>(); ew.allEq(MPUtil.allEQMapPre(yonghu,"yonghu"));returnR.ok().put("data",yonghuService.selectListView(ew));} /***查询*/@RequestMapping("/query")publicRquery(YonghuEntityyonghu){EntityWrapper<YonghuEntity>ew=newEntityWrapper<YonghuEntity>(); ew.allEq(MPUtil.allEQMapPre(yonghu,"yonghu")); YonghuViewyonghuView=yonghuService.selectView(ew); returnR.ok("查询用户成功").put("data",yonghuView);}5.9系统管理以管理员身份登录到后台系统中,可以看到轮播图管理、演唱会、在线客服。选择系统管理下的“轮播图管理”,通过操作可实现对于首页轮播图的管理。轮播图管理界面如图5.24所示:图5.24轮播图管理界面实现该功能的关键代码如下:@RequestMapping("/update")@TransactionalpublicRupdate(@RequestBodyNewsEntitynews,HttpServletRequestrequest){//ValidatorUtils.validateEntity(news);newsService.updateById(news);//全部更新returnR.ok();}第6章系统测试为了确保系统能够稳定可靠地运行,在完成了各个功能模块的设计,前端操作接口的设计,并在系统正式运行之前,对系统进行了一系列的功能和性能测试,从而能够在正式运行之前,对系统进行及时的维护和改进。黑盒试验是对系统整体性能进行检验的一种方法。在进行黑盒测试的时候,测试人员要站在用户的立场上,利用对应的功能测试用例,将系统的实际测试状况与期望状况进行对比,从而可以更好地找出系统中存在的问题。在黑盒试验中,主要利用了位错法和边界值法。其中,系统误差的出现几率远远大于其本身误差的出现几率。所以,边值分析就是根据边值的大小,选择边值作为对系统进行测试,并以此来判定系统的稳定性和可靠性。6.1测试步骤实验也要循序渐进,从逻辑上讲,每一步都是从前一步开始的。大型软件系统通常由多个子系统组成,每个子系统又包含多个功能模块。因此,大型软件程序的测试主要包括以下步骤:通过模块化的方法,发现程序中存在的编码缺陷和细节缺陷。在此基础上,对本系统进行了试验,并对其进行了验证。差错检测中的接收检验过程,给出了相应的条件。6.2测试用例6.2.1登录测试用例用户端测试用例依据用户要求进行设计,使用黑盒测试相关技术,测试结果部分展示如表6.1所示。表6.1登录测试用例表测试编号测试目的操作步骤预期结果实际结果001登录测试输入正确的账号和密码登录成功登录成功002登录测试输入错误的用户名登录失败登录失败003登录测试输入错误的密码登录失败登录失败通过登录测试输入正确的账号和密码,登录成功测试图,如图6.1所示:图6.1登录成功测试图通过登录测试输入错误的账号,登录失败测试图,如图6.2所示:图6.2账号错误登录失败测试图通过登录测试输入错误的密码,登录失败测试图,如图6.3所示:图6.3密码错误登录失败测试图6.2.2管理用户测试用例管理端在运行时要满足浏览器的运行需求,比如添加用户信息测试、修改用户信息测试、删除用户信息测试等。本节根据管理端各模块进行测试,因考虑到本文篇幅有限,这里代表性的部分测试用例,如表6.2所示。表6.2用户管理测试用例表测试编号测试目的操作步骤预期结果实际结果001添加用户信息测试在添加页面输入用户信息,点击确认按钮添加成功添加成功002修改用户信息测试在修改页面修改用户信息,点击确认按钮修改成功修改成功003删除用户信息测试在管理用户信息页面,点击某一用户的删除按钮删除成功删除成功004查询用户信息测试在管理用户信息页面查询输入框输入要查询的昵称和性别,点击查询按钮查询成功查询成功管理员添加用户信息成功测试图,如图6.4所示:图6.4添加成功测试图管理员修改用户信息成功测试图,如图6.5所示:图6.5修改成功测试图管理员删除用户信息成功测试图,如图6.6所示:图6.6修改成功测试图管理员查询用户信息成功测试图,如图6.7所示:图6.7查询成功测试图6.2.3用户订票测试用例用户端在运行时要满足浏览器的运行需求,比如用户支付测试、用户退款测试等。本节根据管理端各模块进行测试,因考虑到本文篇幅有限,这里代表性的部分测试用例,如表6.3所示。表6.3用户管理测试用例表测试编号测试目的操作步骤预期结果实际结果001测试用户是否支付成功在确认下单界面,点击支付按钮购买成功余额不足002测试用户是否支付成功在确认下单界面,点击支付按钮购买成功购买成功003测试用户是否退款成功在我的订单页面,点击退款按钮退款成功退款成功004测试用户是否取消订单成功在我的订单页面,点击取消按钮取消成功取消成功 图6.8购买成功测试图图6.9余额不足测试图图6.10退款成功测试图图6.11取消成功测试图6.3测试结论经过对本系统部分功能的详细测试,从总体上看,无论是从功能上,还是从用户体验上,本系统都取得了良好的效果。结论如今随着科技的飞速进步,计算机技术在不同的行业得到了大量的运用,其相关的管理系统更加普及,其中包括众所周知的电子商务售票系统、门户网站等,这些都具备独特的功能,为企业提供了更加便捷的服务,为企业的运营提供了强大的支持。购票系统的实现,将大大为用户提供便利,这对演唱会购票系统具有重要意见。本文首先对选题的现实意义和当前的研究现状进行了说明。在详细分析了本系统的特点后,论文对本系统的开发方法进行了详细的介绍,包括程序设计语言,实现技术,实现过程,以及满足用户的要求。在这个系统的后端,使用了Java语言,使用了Springboot框架,并以MySQL数据库进行了数据表的设计,使用了Navicat作为数据库工具,选择了IDEA服务器搭配Tomcat来完成了构建,设计了一个基于Springboot的演唱会购票系统。本系统主要实现了个人中心管理,用户管理,演唱会管理,演唱会类别管理,演唱会订单管理,以及系统管理。用户可以在预购演唱会上看到演唱会的相关信息,选择座位,购票。管理员能够在后台对用户所购买的订单信息进行操作处理,并且能够对演出信息进行添加、删除、修改、查询等操作。此次研究仍有许多不足之处。许多关于演唱会的重大资讯未被妥善地储备于数字库,而且界面的外形缺乏美感,许多功能菜单的表达也缺乏清晰的结构,使得整个界面的用户体验缺乏人文关怀。为此,未来的研究与实践,将努力弥补这些缺陷,使得开发的演唱会管理系统更加完备。参考文献王蓝茜.电视综艺节目直播全景声应用个案研究[D].南京艺术学院,2019.董慧.基于场景视角的音乐营销——以李健演唱会首唱樊冲新作《如果遇见你》为例[J].新闻研究导刊,2019,10(15):228-229.吕峥嵘.大型演唱活动安全风险评估[D].昆明理工大学,2020.蔺旭鹏.基于姿势识别的演唱会精彩动作检测的研究与实现[D].北京邮电大学,2020.邓小淑.演唱会电影观看仪式中的粉丝群体互动研究[D].深圳大学,2020.陈然.成都市大型演唱会安保管理情况调查研究[D].电子科技大学,2021.白晓炜.与时代共舞各民族同歌——大型演唱会《各族儿女心向党》述评[J].人民音乐,2021(06):10-16.王劭颖.演出类直播用户参与动机及其对参与意愿的影响研究[D].暨南大学,2021.刘永乐,张景秋.大型演唱会举办城市粉丝群体的交通出行特征研究——以北京为例[J].北京联合大学学报,2021,35(04):34-39.蔡卓尔,惠悲荷.线上演唱会的虚拟在场研究——基于互动仪式链视角[J].新媒体研究,2022,8(08):23-25+58.郑彬.青春追忆与社交陪伴:直播场景下线上演唱会的共情传播——以西城男孩线上演唱会为例[J].新媒体研究,2022,8(09):87-89+94.姚诗湫,白璐,陈晓蝶,谷贤怡.基于网络直播演唱会的新时代线上娱乐行业探究[J].中国市场,2022(24):180-182.刘子倩.缺席的在场:线上演唱会的场景建构与情感逻辑[J].新媒体研究,2022,8(23):105-108.陈一奔,段鹏程.扩展现实技术介入下的云端演唱会景观——基于元宇宙空间虚拟架构的视角[J].湖北文理学院学报,2022,43(12):78-84.张毅.《江苏卫视2023跨年演唱会》:坚持真唱标准,打造品质音乐盛会[J].中国广播影视,2023(02):26-29.白杨.李玟VR演唱会:看到的看不到的[N].21世纪经济报道,2023-01-06(011).蔡华东.海峡不隔故土情老歌乡音中秋甜——蔡琴“银色月光下”演唱会纪事[J].湖北文史,2022(02):158-165.何马玉涓.情景炼境:艺术作品的现实观照——“新歌唱新疆”歌曲演唱会的歌词创作品评[J].音乐创作,2022(06):119-128.王维浩,刘凤凤,徐昌鸿.雨中演唱会[J].早期教育,2022(49):16-25.李霜,龚宇雯.“草莓巡游者”线上演唱会的运营管理探析[J].文学艺术周刊,2022(11):73-76.K-PopDiva,AileeLettingHerFans'FantasiesCome,TrueHosts,AnXRMusicConcert[J].M2Presswire,2022.ArtistesJoinClimateActivistsinMultipleConcertsandActionsAcrossAfrica,toOpposeEastAfricanCrudeOilPipeline(EACOP),PutTotalEnergiesanditsFinanciersontheSpot[J].M2Presswire,2022.WorldMusicBandFiveTenSettoPerform"SpringintoWorldMusic"ConcertatTheSoundRoom[J].M2Presswire,2022.JAZZINTHEROUND-BENEFITCONCERTFORUKRAINEMARCH12TH[J].M2Presswire,2022.ShartyBGearsuptoStreamtheMegaMusicConcertonFebruary27th2022[J].M2Presswire,2022附录packagecom.controller;importjava.util.Arrays;importjava.util.Calendar;importjava.util.Date;importjava.util.Map;importjavax.servlet.http.HttpServletRequest;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.GetMapping;importorg.springframework.web.bind.annotation.PathVariable;importorg.springframework.web.bind.annotation.PostMapping;importorg.springframework.web.bind.annotation.RequestBody;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.RequestParam;importorg.springframework.web.bind.annotation.ResponseBody;importorg.springframework.web.bind.annotation.RestController;importcom.annotation.IgnoreAuth;importcom.baomidou.mybatisplus.mapper.EntityWrapper;importcom.entity.TokenEntity;importcom.entity.UsersEntity;importcom.service.TokenService;importcom.service.UsersService;importcom.utils.CommonUtil;importcom.utils.MPUtil;importcom.utils.PageUtils;importcom.utils.R;importcom.utils.ValidatorUtils;/***登录相关*/@RequestMapping("users")@RestControllerpublicclassUsersController{ @Autowired privateUsersServiceuserService; @Autowired privateTokenServicetokenService; /** *登录 */ @IgnoreAuth @PostMapping(value="/login") publicRlogin(Stringusername,Stringpassword,Stringcaptcha,HttpServletRequestrequest){ UsersEntityuser=userService.selectOne(newEntityWrapper<UsersEntity>().eq("username",username)); if(user==null||!user.getPassword().equals(password)){ returnR.error("账号或密码不正确"); } Stringtoken=tokenService.generateToken(user.getId(),username,"users",user.getRole()); returnR.ok().put("token",token); } /** *注册 */ @IgnoreAuth @PostMapping(value="/register") publicRregister(@RequestBodyUsersEntityuser){// ValidatorUtils.validateEntity(user); if(userService.selectOne(newEntityWrapper<UsersEntity>().eq("username",user.getUsername()))!=null){ returnR.error("用户已存在"); }userService.insert(user);returnR.ok();} /** *退出 */ @GetMapping(value="logout") publicRlogout(HttpServletRequestrequest){ request.getSession().invalidate(); returnR.ok("退出成功"); } /***密码重置*/@IgnoreAuth @RequestMapping(value="/resetPass")publicRresetPass(Stringusername,HttpServletRequestrequest){ UsersEntityuser=userService.selectOne(newEntityWrapper<UsersEntity>().eq("username",username)); if(user==null){ returnR.error("账号不存在"); } user.setPassword("123456");userService.update(user,null);returnR.ok("密码已重置为:123456");} /***列表*/@RequestMapping("/page")publicRpage(@RequestParamMap<String,Object>params,UsersEntityuser){EntityWrapper<UsersEntity>ew=newEntityWrapper<UsersEntity>(); PageUtilspage=userService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.allLike(ew,user),params),params));returnR.ok().put("data",page);} /***列表*/@RequestMapping("/list")publicRlist(UsersEntityuser){ EntityWrapper<UsersEntity>ew=newEntityWrapper<UsersEntity>(); ew.allEq(MPUtil.allEQMapPre(user,"user"));returnR.ok().put("data",userService.selectListView(ew));}/***信息*/@RequestMapping("/info/{id}")publicRinfo(@PathVariable("id")Stringid){UsersEntityuser=userService.selectById(id);returnR.ok().put("data",user);}/***获取用户的session用户信息*/@RequestMapping("/session")publicRgetCurrUser(HttpServletRequestrequest){ Longid=(Long)request.getSession().getAttribute("userId");UsersEntityuser=userService.selectById(id);returnR.ok().put("data",user);}/***保存*/@PostMapping("/save")publicRsave(@RequestBodyUsersEntityuser){// ValidatorUtils.validateEntity(user); if(userService.selectOne(newEntityWrapper<UsersEntity>().eq("username",user.getUsername()))!=null){ returnR.error("用户已存在"); }userService.insert(user);returnR.ok();}/***修改*/@RequestMapping("/update")publicRupdate(@RequestBodyUsersEntityuser){//ValidatorUtils.validateEntity(user); UsersEntityu=userService.selectOne(newEntityWrapper<UsersEntity>().eq("username",user.getUsername())); if(u!=null&&u.getId()!=user.getId()&&u.getUsername().equals(user.getUsername())){ returnR.error("用户名已存在。"); }userService.updateById(user);//全部更新returnR.ok();}/***删除*/@RequestMapping("/delete")publicRdelete(@RequestBodyLong[]ids){userService.deleteBatchIds(Arrays.asList(ids));returnR.ok();}}packagecom.controller;importjava.text.SimpleDateFormat;importjava.util.ArrayList;importjava.util.Arrays;importjava.util.Calendar;importjava.util.Map;importjava.util.HashMap;importjava.util.Iterator;importjava.util.Date;importjava.util.List;importjavax.servlet.http.HttpServletRequest;importcom.utils.ValidatorUtils;importmons.lang3.StringUtils;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.transaction.annotation.Transactional;importorg.springframework.format.annotation.DateTimeFormat;importorg.springframework.web.bind.annotation.PathVariable;importorg.springframework.web.bind.annotation.Request
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 手部的解剖及相关知识
- 上海商学院《食品营养与产品开发》2023-2024学年第一学期期末试卷
- 华北理工大学轻工学院《社会分层与流动》2023-2024学年第二学期期末试卷
- 学生如何规范答题
- 教育家的故事
- 2025年二月份拼贴课件量子相干性色彩保持研究
- 保安主管培训课件
- 浙江省医疗卫生事业单位招聘-影像技术类历年考试真题库(含答案)
- 2024-2025学年下学期高一英语人教版同步经典题精练之阅读理解
- 招生工作年度工作总结
- 基于YOLOv5深度学习模型的车牌识别系统设计
- 四年级下册英语(人教PEP)高频考点每日一练
- 《中国传统民居建筑》课件
- 重庆旅游课件教学课件
- 《机动车驾驶人考试场地布局规划指南》编制说明
- 《大数据财务分析》教学大纲
- 状语从句(练习)-2025年高考英语一轮复习(新教材新高考)
- DB11∕T 584-2022 薄抹灰外墙外保温工程技术规程
- JJF 2156-2024材料热膨胀仪校准规范
- 过敏性休克完整版本
- 院感知识培训课件
评论
0/150
提交评论