基于微信小程序的旅游服务平台的设计与实现_第1页
基于微信小程序的旅游服务平台的设计与实现_第2页
基于微信小程序的旅游服务平台的设计与实现_第3页
基于微信小程序的旅游服务平台的设计与实现_第4页
基于微信小程序的旅游服务平台的设计与实现_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1章绪论1.1研究目的和意义随着社会的发展,生活质量的要求大大的提高,旅游出行成为人们的日常。现代人要应付快节奏生活,手机小程序成为人们不二的选择,微信小程序推出也有很长时间了,在旅游行业也掀起一阵阵的热潮,许多旅游APP也推出了相应的微信小程序,本课题的目的就是开发一款旅游服务平台,通过微信小程序方便快捷的特点,来为游客提供良好的服务。基于小程序旅游景点就能实现大数据建模,分析用户习性,以便于更好的给用户定制推送个性化的旅游攻略,使游客的选择性更多样化。同时,旅游商家可以通过游客在小程序中经常浏览的信息,各种各样的评价,来对游客的需求有一定的了解,然后对自身的旅游商品进行改进。1.2国内外研究现状现如今,国家在旅游业发展方面也推出了相应的国家政策。同时在新的文化与旅游发展思路中也提出了,要进行线上与线下的结合,使旅游业多方面发展。旅游行业为不同的游客提供特色化服务。2020年于文贝等人在《基于微信小程序的八公山智行系统设计与实现》中提到旅游是现如今人们十分喜爱的一种生活方式。现在互联网技术发展十分迅猛,旅游行业利用互联网来为游客提供更多的旅游服务,这一方式是十分可行的。该八公山智行系统就是利用了微信小程序方便快捷的特点,为游客提供一种特色化的旅游服务,比如地图引导等。这一小程序的开发,大大的方便了游客,在游客游玩时,为其提供更多的旅游信息,使游客不再漫无目的的游玩。在其他国家,也有线上的旅游平台来为游客提供旅游服务。游客可以在其中找到自己想要游玩地点的各种旅游信息,也会有旅游博主分享自己认为可玩性高的旅游路线。2019年SunJ在《DesignofTourismServiceInteractiveSystemofWanshanMinePark》中提出该系统为景区建立了三维模型,使游客可以在线上总览景区。利用微信web开发工具和阿里云服务器设计开发万山矿山公园applet,实现景区游览、景观互动体验,特色建筑展示,规避风险,并为游客提供景区智能路径规划、在线纪念品、购物、优惠券抽奖等体验。该三维模型简单、成本低,有效地实现了数据共享,提高了系统的可扩展性。现在这种简单成本低的微信小程序已经出现,旅游小程序的出现已成必然。如今,旅游实体力求以更积极的战略推动其区域的发展,提供多种服务,提供个性化的解决方案,以满足更广泛的游客需求。1.3论文组织架构本文对本系统的开发过程将从六个章节进行介绍,会向读者详细的介绍本系统从最开始的研究背景和目的还有国内外的研究现状,一些相关的理论和技术,对系统的各方面分析,功能模块和数据库的设计,系统核心功能的实现,以及最后对系统进行的测试等。让读者能够对本系统的开发过程一目了然。第一章是绪论的章节,在这一章节中,我们描述了研究的背景和目的还有国内外的研究现状以及论文的架构。第二章是相关理论和技术的章节,在这一章节中,我们介绍了本系统所使用到的理论和技术。第三章是系统分析的章节,在这一章节中,我们分析了技术、经济、操作、法律以及功能需求和非功能需求。第四章是系统设计的章节,在这一章节中,我们介绍了功能模块和数据库的设计。第五章是系统实现的章节,在这一章节中,我们截图展示了如何实现的系统功能。第六章是系统测试的章节,在这一章节中,我们介绍了测试时使用的方法,展示了部分的测试用例。第2章相关理论和技术2.1Java简介Java是由sun公司开发的,在1995年5月推出的。随后该公司在2009年4月20日被甲骨文公司以74亿美元所收购。被收购后,Java语言发行了新的版本。Java语言和Java平台都属于Java。Java因为它的通用高效性,可以跨平台使用以及安全性很高,所以备受编程人员的青睐。而且随着Java不断地发行新的版本,Java越来越适合一些刚刚接触编程的人员学习。在Java语言自身的基础环境中,有许多方便且实用的库函数,可以被我们直接拿来使用,这对我们进行程序编写时带来了很大的帮助,提高了我们编写程序时的效率。因此,使用Java语言来对我们的系统进行开发,是一种不错的选择。这样可以大大节省我们的开发时间。2.2MySQL特点 MySQL是一种开源的关系型数据库。因为它的社区版本是免费的,所有很多人选择使用它。其主要特点如下:MySQL调取数据时速度快、调取的过程稳定高,一般来说不会出现异常情况。MySQL具有跨平台性,可以在很多的操作系统上使用。MySQL在查询数据,调取数据的过程中,都会对其进行加密操作,这样大大提高了安全性。MySQL可以存储很多的数据,并且它的存储引擎数量也是特别多的,这样很多用户在同时访问数据库时不会造成卡顿的效果。MySQL体积小,安装方便,易于维护。2.3B/S模式B/S模式是一种浏览器和服务器之间相互交互的模式。B/S模式是一个三层系统的管理平台。首先在第一层就是用户向服务器发送请求,然后服务器反馈给用户。第二层就是服务器收到用户请求后,通过自身的逻辑处理这些请求,然后反馈给用户,如果请求中包含有申请访问数据库的请求,那么服务器也必须执行,让用户访问数据库。第三层就是数据库的服务器,它的管理过程就是一种协同管理的过程。用户在浏览器中看到的丰富多彩的页面,就是B/S模式这三层系统管理平台的功劳。它可以将单调的程序变成我们看到的网页,使我们在其中可以浏览到各种信息。不仅如此,我们还可以通过网页进行互动,比如浏览网页所展示的重要信息,还可以进行线上的聊天,和用户互相沟通等。这些功能的实现,其实就是基于B/S模式,我们向服务器发送信息传递给对方,对方也向服务器发送信息返回给我们。第3章系统分析3.1可行性分析3.1.1技术可行性技术上的可行性指的是在本次系统开发中所使用的技术,其中包括使用何种编程语言,使用何种框架,以及使用什么设计模式等等。本次开发是基于微信小程序的旅游服务平台的系统开发,使用的是Java编程语言,主要基于SpringBoot框架,我们采用的是MVC设计模式。在该种设计模式下,可以对代码的管理更加灵活。总之,我们认为在设计开发本系统时,在技术上是可行的。3.1.2经济可行性经济可行性是指我们在开发之前需要做出各方面的经济预算,然后在开发过程中都要有详细的支出记录,最后所花费不超出我们做出的经济预算。该系统建成后,开发的旅游服务平台前景广阔,经济价值高,在系统开发前也在我们的考虑范围内。最后,在经济可行性上是可以满足我们的预算的。3.1.3操作可行性操作可行性是指当用户使用本系统时,用户操作起来方便快捷,当用户向服务器发送请求时,服务器可以快速高效的处理完并且反馈给用户。这样会使整个系统简单高效。并且不同的用户会有不同的权限。总之,我们认为设计开发该系统在操作上是可行的。3.1.4法律可行性从法律的角度来讲,整个开发工作具有以下几个特性:(1)开发所使用的所有技术资料都是合法得到的;(2)整个开发过程中不存在知识产权问题;(3)开发过程未抄袭任何网站,不存在侵犯版权问题;(4)开发过程全部来自自己,原始劳动,不涉及承担所谓的法律责任。3.2需求分析对系统功能要求的分析可以提供给我们很多信息。比如在实施该软件功能时哪些是必须的,用户所需求的,哪些不是必须的,用户用不到的。这样对系统功能进行分析,可以很好的让我们避免一些错误,不会设计出一些无用的功能,不会使整个系统变得更加冗余。这样也会让我们在开发过程中,有明确的目标,会让我们的效率大大提高。3.2.1功能需求分析本系统主要是研究的是旅游服务平台,其角色是要分为用户、管理员两个角色。管理员拥有本系统的全部权限,对用户、景点信息、景点分类、门票预订、酒店信息等功能进行增删改查。用户登录后查看各种旅游信息。该旅游服务平台预期有如下功能:(1)用户登录小程序后,会看到各种旅游信息,比如景点、酒店等。(2)用户点击进入景点、酒店后,可以查看景点、酒店的详细信息。(3)点击量高的景点、酒店等,会放在首页推送给用户。用户用例图如图3.1所示。图3.1用户用例图3.2.2非功能需求分析本文设计了一个旅游服务平台,该系统为用户提供海量的旅游信息和优质的旅游服务,在用户登录本系统时,所有用户标识都经过系统验证后,将根据用户的标识为其配置相应的权限,可以确保操作系统用户仅在权限范围内工作,并且仅在权限范围内访问操作系统数据。这样可以防止用户在拥有高权限时会对本系统做出一些不利的行为,如果他们有异常情况,这样就可以通过高权限者对他们进行封禁。本文设计的系统建立了一个非常完整的错误处理机制,这样不仅可以防止外部数据的攻击,还可以解决内部的问题。就算在某个时刻用户的访问量非常庞大,也不会造成卡顿的情况。第4章系统设计4.1功能模块设计根据对系统的功能进行分析旅游服务平台的具体功能模块包括下面的几个主要的功能模块:用户管理、景点信息管理、酒店信息管理、航班信息管理、火车信息管理、公交信息管理等功能模块。系统结构框图功能模块如图4.1所示:图4.1系统结构框图登录流程图如图4.2所示:图4.2登录流程图系统添加流程图如图4.3所示:图4.3系统添加流程图系统删除流程图如图4.4所示:图4.4系统删除流程图4.2数据库设计数据库的设计需要有四个过程:第一步:先要确定在要使用什么结构来存储数据,第二步:要选择一种方式来进行数据的调取和存放,第三步:要寻找一个安全的数据存放位置,第四步:在数据库中确定找到的这个位置。数据库就相当于现实世界中的仓库,是用来存放数据的。然后,我们首先要为数据库编号,这样在调取数据的时候更加方便。还根据不同的访问指令,用到了好几种不同的存储结构,这样不会有冲突。我们根据每个实体和他们对应的抽象实体设计了实体图,还为每个实体设置相应的数据库和相应的表。数据库主要实体图设计如下:图4.5管理者实体图图4.6用户实体图图4.7酒店信息实体图图4.8公交信息实体图图4.9航班信息实体图图4.10火车信息实体图图4.11景点信息实体图系统的具体表设计如下:(1)用户表“用户表”是用来记录登记用户的信息。用户表的结构如表4.1所示。表4.1用户表字段名称类型长度字段说明主键默认值idbigint主键主键usernamevarchar100用户名passwordvarchar100密码rolevarchar100角色管理员addtimetimestamp新增时间CURRENT_TIMESTAMP(2)关于我们systemintro表“关于我们systemintro表”是用来对系统进行简介。关于我们systemintro表的结构如表4.2所示。字段名称类型长度字段说明主键默认值idbigint主键主键addtimetimestamp创建时间CURRENT_TIMESTAMPtitlevarchar200标题subtitlevarchar200副标题contentlongtext4294967295内容picture1longtext4294967295图片1picture2longtext4294967295图片2picture3longtext4294967295图片3表4.2关于我们systemintro表(3)日常分享表“日常分享表”是用来记录日常分享的信息。日常分享表的结构如表4.3所示。表4.3日常分享表字段名称类型长度字段说明主键默认值idbigint主键主键addtimetimestamp创建时间CURRENT_TIMESTAMPtitlevarchar200帖子标题contentlongtext4294967295帖子内容续表4.3日常分享表字段名称类型长度字段说明主键默认值parentidbigint父节点iduseridbigint用户idusernamevarchar200用户名avatarurllongtext4294967295头像isdonevarchar200状态(4)景点信息评论表“景点信息评论表”是用来记录用户反馈回来的信息,不论好的坏的信息。景点信息评论表的结构如表4.4所示。表4.4景点信息评论表字段名称类型长度字段说明主键默认值idbigint主键主键addtimetimestamp创建时间CURRENT_TIMESTAMPrefidbigint关联表iduseridbigint用户idavatarurllongtext4294967295头像nicknamevarchar200用户名contentlongtext4294967295评论内容replylongtext4294967295回复内容(5)配置文件表“配置文件表”是用来记录跟本系统一些配套的文件的信息。配置文件表的结构如表4.5所示。表4.5配置文件表字段名称类型长度字段说明主键默认值idbigint主键主键namevarchar100配置参数名称valuevarchar100配置参数值(6)酒店信息表“酒店信息表”是用来记录本系统中注册的酒店,它们的各个方面的详细信息。酒店信息表的结构如表4.6所示。表4.6酒店信息表字段名称类型长度字段说明主键默认值idbigint主键主键addtimetimestamp创建时间CURRENT_TIMESTAMPjiudianmingchengvarchar200酒店名称jiudianleixingvarchar200酒店类型xingjivarchar200星级jiudiandizhivarchar200酒店地址fangjianleixingvarchar200房间类型yuyuejiagefloat预约价格lianxidianhuavarchar200联系电话jiudianjieshaolongtext4294967295酒店介绍续表4.6酒店信息表字段名称类型长度字段说明主键默认值jiudiantupianlongtext4294967295酒店图片thumbsupnumint赞0crazilynumint踩0clicktimedatetime最近点击时间clicknumint点击次数0(7)用户信息表“用户信息表”是用来记录在本系统中登录过的用户的信息。用户信息表的结构如表4.7所示。表4.7用户信息表字段名称类型长度字段说明主键默认值idbigint主键主键addtimetimestamp创建时间CURRENT_TIMESTAMPyonghuzhanghaovarchar200用户账号mimavarchar200密码yonghuxingmingvarchar200用户姓名xingbievarchar200性别nianlingint年龄shoujivarchar200手机youxiangvarchar200邮箱续表4.7用户信息表字段名称类型长度字段说明主键默认值touxianglongtext4294967295头像(8)酒店预约表“酒店预约表”是用来记录酒店预约的信息。酒店预约表的结构如表4.8所示。表4.8酒店预约表字段名称类型长度字段说明主键默认值idbigint主键主键addtimetimestamp创建时间CURRENT_TIMESTAMPjiudianmingchengvarchar200酒店名称jiudianleixingvarchar200酒店类型xingjivarchar200星级fangjianleixingvarchar200房间类型jiudiantupianlongtext4294967295酒店图片yuyuejiagefloat预约价格yuyueshijiandatetime预约时间beizhuvarchar200备注zhanghaovarchar200账号xingmingvarchar200姓名sfshvarchar200是否审核待审核shhflongtext4294967295审核回复续表4.8酒店预约表字段名称类型长度字段说明主键默认值ispayvarchar200是否支付未支付useridbigint用户id(9)token表“token表”是用来记录使用过本系统的用户的详细信息。token的结构如表4.9所示。表4.9token表字段名称类型长度字段说明主键默认值idbigint主键主键useridbigint用户idusernamevarchar100用户名tablenamevarchar100表名rolevarchar100角色tokenvarchar200密码addtimetimestamp新增时间CURRENT_TIMESTAMPexpiratedtimetimestamp过期时间CURRENT_TIMESTAMP(10)收藏表“收藏表”是用来记录每个用户放在自己收藏夹中的酒店,景点等等的信息。收藏表的结构如表4.10所示。表4.10收藏表字段名称类型长度字段说明主键默认值idbigint主键主键续表4.10收藏表字段名称类型长度字段说明主键默认值addtimetimestamp创建时间CURRENT_TIMESTAMPuseridbigint用户idrefidbigint商品idtablenamevarchar200表名namevarchar200名称picturelongtext4294967295图片typevarchar200类型(1:收藏,21:赞,22:踩,)1inteltypevarchar200推荐类型remarkvarchar200备注(11)门票预订表“门票预订表”是用来记录各个景点门票都被哪些用户预定,以及有没有支付的信息。门票预订表的结构如表4.11所示。表4.11门票预订表字段名称类型长度字段说明主键默认值idbigint主键主键addtimetimestamp创建时间CURRENT_TIMESTAMPjingdianmingchengvarchar200景点名称jingdianleixingvarchar200景点类型jingdiandengjivarchar200景点等级续表4.11门票预订表字段名称类型长度字段说明主键默认值menpiaojiagefloat门票价格jingdiantupianlongtext4294967295景点图片yudingshijiandatetime预订时间yudingshuomingvarchar200预订说明zhanghaovarchar200账号xingmingvarchar200姓名shoujivarchar200手机sfshvarchar200是否审核待审核shhflongtext4294967295审核回复ispayvarchar200是否支付未支付useridbigint用户id(12)景点信息表“景点信息表”是用来记录本系统中注册的景点,它们的各个方面的详细信息。景点信息表的结构如表4.12所示。表4.12景点信息表字段名称类型长度字段说明主键默认值idbigint主键主键addtimetimestamp创建时间CURRENT_TIMESTAMPjingdianmingchengvarchar200景点名称续表4.12景点信息表字段名称类型长度字段说明主键默认值jingdianleixingvarchar200景点类型jingdiandengjivarchar200景点等级xiangxidizhivarchar200详细地址kaifangshijianvarchar200开放时间menpiaojiagefloat门票价格jingdianjieshaolongtext4294967295景点介绍jingdiantupianlongtext4294967295景点图片thumbsupnumint赞0crazilynumint踩0clicktimedatetime最近点击时间clicknumint点击次数0(13)景点分类表“景点分类表”是用来记录本系统中景点分类都有哪些。景点分类表的结构如表4.13所示。表4.13景点分类表字段名称类型长度字段说明主键默认值idbigint主键主键addtimetimestamp创建时间CURRENT_TIMESTAMP续表4.13景点分类表字段名称类型长度字段说明主键默认值jingdianfenleivarchar200景点分类(14)在线客服表“在线客服表”是用来记录用户和客服之间交流的信息。在线客服表的结构如表4.14所示。表4.14留言板表字段名称类型长度字段说明主键默认值idbigint主键主键addtimetimestamp创建时间CURRENT_TIMESTAMPuseridbigint用户idadminidbigint管理员idasklongtext4294967295提问replylongtext4294967295回复isreplyint是否回复(15)火车信息表“火车信息表”是用来记录我们这个系统中收录的一些火车的详细情况。火车信息表的结构如表4.15所示。表4.15火车信息表字段名称类型长度字段说明主键默认值idbigint主键主键addtimetimestamp创建时间CURRENT_TIMESTAMP续表4.15火车信息表字段名称类型长度字段说明主键默认值huochemingchengvarchar200火车名称qichengshijiandatetime启程时间qichengzhandianvarchar200启程站点daodashijiandatetime到达时间daodazhandianvarchar200到达站点huochejieshaolongtext4294967295火车介绍huochetupianlongtext4294967295火车图片(16)航班信息表“航班信息表”是用来记录我们这个系统中收录的一些航班的详细情况。航班信息表的结构如表4.16所示。表4.16航班信息表字段名称类型长度字段说明主键默认值idbigint主键主键addtimetimestamp创建时间CURRENT_TIMESTAMPhangbanmingchengvarchar200航班名称qifeishijiandatetime起飞时间qifeididianvarchar200起飞地点daodashijiandatetime到达时间续表4.16航班信息表字段名称类型长度字段说明主键默认值daodadidianvarchar200到达地点hangbanjieshaolongtext4294967295航班介绍hangbantupianlongtext4294967295航班图片(17)公交信息表“公交信息表”是用来记录我们这个系统中收录的一些公交的详细情况。公交信息表的结构如表4.17所示。表4.17公交信息表字段名称类型长度字段说明主键默认值idbigint主键主键addtimetimestamp创建时间CURRENT_TIMESTAMPbanchemingchengvarchar200班车名称facheshijiandatetime发车时间fachezhandianvarchar200发车站点daodashijiandatetime到达时间daodazhandianvarchar200到达站点banchejieshaolongtext4294967295班车介绍banchetupianlongtext4294967295班车图片(18)酒店信息评论表“酒店信息评论表”是用来记录用户对酒店的各种评价,不论好的坏的信息。酒店信息评论表的结构如表4.18所示。表4.18酒店信息评论表字段名称类型长度字段说明主键默认值idbigint主键主键addtimetimestamp创建时间CURRENT_TIMESTAMPrefidbigint关联表iduseridbigint用户idavatarurllongtext4294967295头像nicknamevarchar200用户名contentlongtext4294967295评论内容replylongtext4294967295回复内容(19)公交信息评论表“公交信息评论表”是用来记录用户对这些公交的都分别有哪些评价。公交信息评论表的结构如表4.19所示。表4.19公交信息评论表字段名称类型长度字段说明主键默认值idbigint主键主键addtimetimestamp创建时间CURRENT_TIMESTAMPrefidbigint关联表iduseridbigint用户idavatarurllongtext4294967295头像续表4.19公交信息评论表字段名称类型长度字段说明主键默认值nicknamevarchar200用户名contentlongtext4294967295评论内容replylongtext4294967295回复内容(20)航班信息评论表“航班信息评论表”是用来记录用户对这些航班都分别有哪些评价。航班信息评论表的结构如表4.20所示。字段名称类型长度字段说明主键默认值idbigint主键主键addtimetimestamp创建时间CURRENT_TIMESTAMPrefidbigint关联表iduseridbigint用户idavatarurllongtext4294967295头像nicknamevarchar200用户名contentlongtext4294967295评论内容replylongtext4294967295回复内容表4.20航班信息评论表(21)火车信息评论表“火车信息评论表”是用来记录用户对这些火车的都分别有哪些评价。火车信息评论表的结构如表4.21所示。表4.21火车信息评论表字段名称类型长度字段说明主键默认值idbigint主键主键addtimetimestamp创建时间CURRENT_TIMESTAMPrefidbigint关联表iduseridbigint用户idavatarurllongtext4294967295头像nicknamevarchar200用户名contentlongtext4294967295评论内容replylongtext4294967295回复内容第5章系统实现5.1用户登录注册首先用户在第一次使用本平台时,用户需要先进行注册,在注册时需要填写一些对应的信息,用户注册界面如图5.1所示;注册完成后,用户可以使用刚刚注册好的账号,登录本系统。如果输入的用户名和密码不匹配或者输入的用户名还未注册,就会提示账号和密码不正确。用户登录界面如图5.2所示;图5.1用户注册界面图图5.2用户登录界面图实现该功能的关键代码如下: @IgnoreAuth @RequestMapping(value="/login") publicRlogin(Stringusername,Stringpassword,Stringcaptcha,HttpServletRequestrequest){ YonghuEntityu=yonghuService.selectOne(newEntityWrapper<YonghuEntity>().eq("zhanghao",username)); if(u==null||!u.getMima().equals(password)){ returnR.error("账号或密码不正确"); } Stringtoken=tokenService.generateToken(u.getId(),username,"yonghu","用户"); returnR.ok().put("token",token); } @IgnoreAuth@RequestMapping("/register")publicRregister(@RequestBodyYonghuEntityyonghu){ //ValidatorUtils.validateEntity(yonghu); YonghuEntityu=yonghuService.selectOne(newEntityWrapper<YonghuEntity>().eq("zhanghao",yonghu.getZhanghao())); if(u!=null){ returnR.error("注册用户已存在");}}5.2用户个人中心用户进入小程序后,点击右下角然后进入用户的个人中心,在这里用户可以随时更改注册时的个人信息,还可以随时退出现在登录的账号。个人信息界面如图5.3所示:图5.3用户个人中心管理界面图实现该功能的关键代码如下:@IgnoreAuth @RequestMapping(value="/resetPass")publicRresetPass(Stringusername,HttpServletRequestrequest){ YonghuEntityu=yonghuService.selectOne(newEntityWrapper<YonghuEntity>().eq("zhanghao",username)); if(u==null){ returnR.error("账号不存在"); }u.setMima("123456");yonghuService.updateById(u);returnR.ok("密码已重置为:123456");}5.3用户管理管理员通过最高权限进入本系统的后台,点击导航栏中的用户管理。进入后就可以对本系统中注册的用户进行管理。如果想方便快捷的找到要查询的用户,可以通过右边的查询功能。用户管理界面如图5.4所示:图5.4用户管理界面图实现该功能的关键代码如下:@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.4景点信息管理用户退出个人中心后,点击首页中的景点信息模块,选择某一景点进入,可以查看到该景点的详细信息,可以在最下方对该景点进行赞踩、评论等操作。用户景点信息界面如下图5.5所示。管理员通过最高权限进入到后台中,点击导航栏中的景点信息管理,进入后就可以对本系统中收录的这些景点的详细信息进行管理。如果想要方便快捷的找到要查询的景点,可以通过右边的查询功能。管理员景点信息界面如下图5.6所示:图5.5景点信息用户界面图图5.6景点信息管理界面图实现该功能的关键代码如下:@RequestMapping("/update")@TransactionalpublicRupdate(@RequestBodyJingdianxinxiEntityjingdianxinxi,HttpServletRequestrequest){//ValidatorUtils.validateEntity(jingdianxinxi);jingdianxinxiService.updateById(jingdianxinxi);//全部更新returnR.ok();}5.5景点分类管理用户点击进入景点信息模块后,可以看到景点的详细分类,用户景点分类界面如下图5.7所示。管理员点击导航栏中的景点分类管理,进入后就可以对本系统定制的景点的各种分类的信息进行管理。如果想要方便快捷的找到要查询的景点分类,可以通过右边的查询功能。管理员景点分类界面如下图5.8所示:图5.7景点分类用户界面图图5.8景点分类管理界面图实现该功能的关键代码如下:@RequestMapping("/delete")publicRdelete(@RequestBodyLong[]ids){jingdianfenleiService.deleteBatchIds(Arrays.asList(ids));returnR.ok();}5.6门票预订管理用户进入景点信息模块,选择某一景点,点击进入后可以在最下方进行门票预订的操作,用户景点门票预订界面如下图5.9所示。管理员点击导航栏中的门票预订管理,进入后就可以对用户预定的门票的详细情况以及支付情况进行增删改查的操作。如果想要方便快捷的找到要查询的信息,可以使用右边的查询功能。管理员门票预订界面如下图5.10所示:图5.9门票预定用户界面图图5.10门票预订管理界面图实现该功能的关键代码如下:@RequestMapping("/query")publicRquery(MenpiaoyudingEntitymenpiaoyuding){EntityWrapper<MenpiaoyudingEntity>ew=newEntityWrapper<MenpiaoyudingEntity>(); ew.allEq(MPUtil.allEQMapPre(menpiaoyuding,"menpiaoyuding")); MenpiaoyudingViewmenpiaoyudingView=menpiaoyudingService.selectView(ew); returnR.ok("查询门票预订成功").put("data",menpiaoyudingView);}5.7酒店信息管理用户退出景点信息模块后,点击首页中的酒店信息模块,选择某一酒店进入,可以看到该酒店的详细信息,可以在最下方对该酒店进行赞踩、评论等操作。用户酒店信息界面如下图5.11所示。管理员点击导航栏中的酒店信息管理,进入后就可以对本系统中收录的酒店的详细信息进行增删改查的操作。如果想要快捷方便的找到要查询的酒店,可以使用右边的查询功能。管理员酒店信息界面如下图5.12所示:图5.11酒店信息用户界面图图5.12酒店信息管理界面图实现该功能的关键代码如下:@RequestMapping("/lists")publicRlist(JiudianxinxiEntityjiudianxinxi){ EntityWrapper<JiudianxinxiEntity>ew=newEntityWrapper<JiudianxinxiEntity>(); ew.allEq(MPUtil.allEQMapPre(jiudianxinxi,"jiudianxinxi"));returnR.ok().put("data",jiudianxinxiService.selectListView(ew));}@RequestMapping("/query")publicRquery(JiudianxinxiEntityjiudianxinxi){EntityWrapper<JiudianxinxiEntity>ew=newEntityWrapper<JiudianxinxiEntity>(); ew.allEq(MPUtil.allEQMapPre(jiudianxinxi,"jiudianxinxi")); JiudianxinxiViewjiudianxinxiView=jiudianxinxiService.selectView(ew); returnR.ok("查询酒店信息成功").put("data",jiudianxinxiView);}@RequestMapping("/update")@TransactionalpublicRupdate(@RequestBodyJiudianxinxiEntityjiudianxinxi,HttpServletRequestrequest){//ValidatorUtils.validateEntity(jiudianxinxi);jiudianxinxiService.updateById(jiudianxinxi);//全部更新returnR.ok();}@RequestMapping("/delete")publicRdelete(@RequestBodyLong[]ids){jiudianxinxiService.deleteBatchIds(Arrays.asList(ids));returnR.ok();}5.8酒店预约管理用户进入酒店信息模块,选择某一酒店,点击进入后可以在最下方进行酒店预定的操作,用户酒店预约界面如下图5.14所示。管理员点击导航栏中的酒店预约管理,进入后就可以对用户预定的酒店的详细信息和支付情况进行增删改查的操作。如果想要快捷方便的找到要查询的信息,可以使用右边的查询功能。管理员酒店预约界面如图5.13所示:图5.13酒店预约管理界面图图5.14酒店预约用户界面图实现该功能的关键代码如下:@RequestMapping("/query")publicRquery(JiudianyuyueEntityjiudianyuyue){EntityWrapper<JiudianyuyueEntity>ew=newEntityWrapper<JiudianyuyueEntity>(); ew.allEq(MPUtil.allEQMapPre(jiudianyuyue,"jiudianyuyue")); JiudianyuyueViewjiudianyuyueView=jiudianyuyueService.selectView(ew); returnR.ok("查询酒店预约成功").put("data",jiudianyuyueView);}@RequestMapping("/delete")publicRdelete(@RequestBodyLong[]ids){jiudianyuyueService.deleteBatchIds(Arrays.asList(ids));returnR.ok();}5.9航班信息管理用户退出酒店信息模块后,点击首页中的航班信息模块,选择某一航班进入,可以查看到该航班的详细信息,可以在最下方对该航班进行评论。用户航班信息界面如下图5.16所示。管理员点击导航栏中的航班信息管理,进入后就可以对本系统中收录的航班的详细信息进行增删改查的操作,如果想要方便快捷的找到要查询的航班,可以使用右边的查询功能。管理员航班信息界面如下图5.15所示:图5.15航班信息管理界面图图5.16航班信息用户界面图实现该功能的关键代码如下:@RequestMapping("/query")publicRquery(HangbanxinxiEntityhangbanxinxi){EntityWrapper<HangbanxinxiEntity>ew=newEntityWrapper<HangbanxinxiEntity>(); ew.allEq(MPUtil.allEQMapPre(hangbanxinxi,"hangbanxinxi")); HangbanxinxiViewhangbanxinxiView=hangbanxinxiService.selectView(ew); returnR.ok("查询航班信息成功").put("data",hangbanxinxiView);}5.10火车信息管理用户退出航班信息模块后,点击首页中的火车信息模块,选择某一火车进入,可以查看到该火车的详细信息,可以在最下方对该火车进行评论。用户火车信息界面如下图5.18所示。管理员点击导航栏中的火车信息管理,进入后就可以对本系统中收录的火车的详细信息进行增删改查的操作。如果想要方便快捷的找到要查询的火车,可以使用右边的查询功能。管理员火车信息界面如下图5.17所示:图5.17火车信息管理界面图图5.18火车信息用户界面图实现该功能的关键代码如下:@RequestMapping("/query")publicRquery(HuochexinxiEntityhuochexinxi){EntityWrapper<HuochexinxiEntity>ew=newEntityWrapper<HuochexinxiEntity>(); ew.allEq(MPUtil.allEQMapPre(huochexinxi,"huochexinxi")); HuochexinxiViewhuochexinxiView=huochexinxiService.selectView(ew); returnR.ok("查询火车信息成功").put("data",huochexinxiView);}5.11公交信息管理用户退出火车信息模块后,点击首页中的公交信息模块,选择某一公交进入,可以查看到该公交的详细信息,可以在最下方对该公交进行评论。用户公交信息界面如下图5.19所示。管理员点击导航栏中的公交信息管理,进入后就可以对本系统中收录的公交的详细信息进行增删改查的操作。如果想要快捷方便的找到要查询的公交,可以使用右边的查询功能。管理员公交信息界面如图5.20所示:图5.19公交信息用户界面图图5.20公交信息管理界面图实现该功能的关键代码如下:@RequestMapping("/lists")publicRlist(GongjiaoxinxiEntitygongjiaoxinxi){ EntityWrapper<GongjiaoxinxiEntity>ew=newEntityWrapper<GongjiaoxinxiEntity>(); ew.allEq(MPUtil.allEQMapPre(gongjiaoxinxi,"gongjiaoxinxi"));returnR.ok().put("data",gongjiaoxinxiService.selectListView(ew));}@RequestMapping("/query")publicRquery(GongjiaoxinxiEntitygongjiaoxinxi){EntityWrapper<GongjiaoxinxiEntity>ew=newEntityWrapper<GongjiaoxinxiEntity>(); ew.allEq(MPUtil.allEQMapPre(gongjiaoxinxi,"gongjiaoxinxi")); GongjiaoxinxiViewgongjiaoxinxiView=gongjiaoxinxiService.selectView(ew); returnR.ok("查询公交信息成功").put("data",gongjiaoxinxiView);}5.12日常分享用户退出公交信息模块后,点击小程序下方中间的日常分享模块,可以查看其他用户发布的帖子。用户日常分享界面如下图5.22所示。管理员点击导航栏中的日常分享,进入后就可以对本系统中用户发表的帖子的详细信息进行增删改查的操作。如果想要快捷方便的找到要查询的帖子,可以使用右边的查询功能。管理员日常分享界面如下图5.21所示:图5.21日常分享界面图图5.22日常分享用户界面图实现该功能的关键代码如下:@IgnoreAuth@RequestMapping("/flist")publicRflist(@RequestParamMap<String,Object>params,ForumEntityforum,HttpServletRequestrequest){EntityWrapper<ForumEntity>ew=newEntityWrapper<ForumEntity>(); PageUtilspage=forumService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew,forum),params),params));returnR.ok().put("data",page);}@RequestMapping("/query")publicRquery(ForumEntityforum){EntityWrapper<ForumEntity>ew=newEntityWrapper<ForumEntity>(); ew.allEq(MPUtil.allEQMapPre(forum,"forum")); ForumViewforumView=forumService.selectView(ew); returnR.ok("查询日常分享成功").put("data",forumView);}@RequestMapping("/update")@TransactionalpublicRupdate(@RequestBodyForumEntityforum,HttpServletRequestrequest){//ValidatorUtils.validateEntity(forum);forumService.updateById(forum);//全部更新returnR.ok();}@RequestMapping("/delete")publicRdelete(@RequestBodyLong[]ids){forumService.deleteBatchIds(Arrays.asList(ids));returnR.ok();}第6章系统测试把各个功能以及前端后台设计完成之后,我们还需要测试一下本系统,看看能否为用户提供正常的服务。如果哪些地方发现问题,我们也可以及时的更改,这样尽可能的防止本系统正式使用时发现问题。我们使用的方式是黑盒测试,首先我们要做一个预期的结果,然后主要从用户方面进行测试,测试后得到的结果和我们预期的结果相比较,可以使我们更加一目了然的看出有没有问题。我们主要采用的方式是误差分析和边界值分析,一般来说,系统在输入输出边界上出现错误的概率很大,所以我们使用边界值分析。而且我们也可以根据测试用例准确的找到问题所在,然后解决问题。6.1测试步骤我们使用的是阶段测试的手段。首先把整个系统测试一下,然后再细化到各个小的模块中。所以,我们测试时主要是以下几个步骤:(1)首先整个系统模块进行测试找出我们编译代码时出现的问题。(2)然后开始对各个模块的代码进行测试,找出详细的设计的问题。(3)最后修改这些问题,并且整理整个发现错误验收测试方案。6.2测试用例6.2.1登录测试用例这一部分测试的是用户能否正常登录我们这个旅游服务平台,已经在本平台注册的用户,在小程序登陆界面输入注册时的用户名和密码,进行测试。经过测试,出具有代表性的部分测试用例表,如表6.1所示。表6.1登录测试用例表测试编号测试目的操作步骤预期结果实际结果001登录测试输入正确的用户名和密码登录成功登录成功002登录测试输入错误的用户名登录失败登录失败续表6.1登录测试用例表测试编号测试目的操作步骤预期结果实际结果003登录测试输入错误的的密码登录失败登录失败6.2.2服务信息管理测试用例这一部分测试的是景点管理方面的增删改查的操作功能,管理员通过最高权限进入后台,点击导航栏中的景点管理,进入景点管理模块,然后对这些操作进行测试。经过测试,出具有代表性的部分测试用例,如表6.2所示。表6.2景点管理测试用例表测试编号测试目的操作步骤预期结果实际结果001添加景点信息测试在添加页面输入商品信息,点击确认按钮添加成功添加成功002修改景点信息测试在修改页面修改商品信息,点击确认按钮修改成功修改成功003删除景点信息测试在管理商品信息页面,点击某一用户的删除按钮删除成功删除成功004查询景点信息测试在管理商品信息页面查询输入框输入要查询的用户名字,点击查询按钮查询成功查询成功6.3测试结论我们对旅游服务平台的部分功能模块进行了全面的测试,在测试旅游服务平台时,用户可以操作的功能都能完善运行,用户的体验感很好,最终得出结论,基于微信小程序的旅游服务平台从各个方面来说,基本上都能达到当初预计的结果。结论在本次研究所实现的基于微信小程序的旅游服务平台过程中,我们首先介绍了研究的背景意义,研究现状,接下来我们介绍了开发旅游服务平台时需要使用的一些理论和技术,比如使用了什么语言来进行开发等等。后来,我们分析了这个旅游服务平台能否运行以及都需要什么。然后我们做出了这个旅游服务平台的需求分析。之后描述了旅游服务平台的总体方面的设计以及数据库各个方面的具体设计情况,随后我们展示了相应的功能,这一部分是论文的核心,同时我们也详细的描述了旅游服务平台整个的运行过程,还有一部分关键数据的使用,也展示了在用户操作时,可以实现的各种功能。我们从每一个设计过程都进行了详细的描述。比

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论