大学生文化旅游智慧服务系统的设计与实现
2023-04-06王晴倪海润万顺梁赫西张衡
王晴 倪海润 万顺 梁赫西 张衡
关键词:大学生;文化旅游;智慧服务;Spring+SpringMVC+MyBatis框架;爬虫技术
文化旅游是综合性的社会文化活动,其实质是体验文化、寻找文化差异,文化和旅游相互结合对于促进旅游业转型升级,实现文化传承创新,具有重要意义[1]。一直以来,国家都大力支持民族文化传承和红色文化事业的发展。对于大学生群体而言,其对于学习传统文化和革命精神的需求较大,但目前市场上并没有一个专门针对此方面需求的平台。另外,结合现状,智慧旅游是智能化时代下旅游发展的前沿[2],智慧文旅平台的建设具有重要的现实意义。本文针对市场痛点,积极响应国家的政策,秉承“高内聚和低耦合”的设计思想,设计开发基于B/S模式的大学生文旅智慧服务平台,提供景点信息检索、疫情下景点推荐指数实时更新,景点线路预约、用户互动交流、VR实景游览等功能。本平台的建设对于激励大学生进行文化旅行,学习文化思想具有深远意义。
1 关键技术
1.1 SSM 框架
本系统采用基于Java的SSM框架。SSM框架是继SSH 框架(Struts、Spring、Hibernate)之后主流的框架,具有较好的性能。SSM 集Spring、Spring MVC 及MyBatis三个框架于一体,包括四个层次,分别为Dao 层(mapper) 、Service层、Controller层、View层。Spring 能够将原本耦合性较强的程序分解成若干个低耦合的模块,完成良好的架构;Spring MVC是一个MVC框架,包含DispatcherServlet、Controller、HandlerMapping、ModelAndView、ViewResolver、Interceptors六个核心组件;MyBatis对JDBC进行封装,使得数据库底层操作变得透明,其支持定制化SQL、存储过程以及高级映射,并且可以使用简单的xml或注解将接口和Java的实体映射成数据库中的记录,是一个良好的持久层框架[3-5]。
1.2 爬虫技术
本系统中需要使用到大量的实时数据,本项目决定使用爬虫手段获取数据。主要手段是基于Node.js 的Puppeteer.js 库,Puppeteer.js 库是一个Node 库,它提供了一个高级 API ,通过 DevTools 协议控制 Chro? mium 或Chrome,即通过调用库提供的接口来控制库运行时生成的模拟浏览器[6]。选择原因如下:
1) 反反爬虫能力强:其会生成一个浏览器,并可通过代码模拟用户的真实操作,使得爬虫行为与真实用户操作基本一致,而这将导致一些主流反爬虫手段失效。
2) 对SPA(单页应用)支持强:如今大部分网页都是SPA类型的,而SPA类型的网页对于传统的爬虫技术爬取数据有一定难度,但是对于Puppeteer.js库却不是难事,其在浏览器dom元素渲染完毕后再通过操作dom元素获取数据。
3) 使用最新版本的JavaScript和浏览器功能,直接在最新版本的Chrome中执行测试,保证运行时的兼容性和稳定性。
1.3 Vue.js 框架和Element plus 组件库
前后端分离的开发模式可以更快地开发web项目,因此本系统采用了这种方式。基于综合考虑,本项目前端采用Vue.js框架和基于其的Element Plus组件库。Vue.js是一套构建用户界面的渐进式框架,它不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与单文件组件和Vue生态系统支持的库结合使用时,Vue 也能有良好的支持[7]。使用理由如下:1) Vue可以很方便地实现数据的双向绑定,对收集和控制表单数据比较友好。2) Vue是单页面应用,每次获取服务器数据时都只是页面局部获取,不必刷新整个页面并获取请求。3) Vue支持组件化开发,方便多人开发和对代码的维护。
Element Plus组件库有着丰富的UI组件库,并且支持主流的大部分用户交互控件,极大地缩短了项目的开发时间。
2 需求分析
用户在使用旅游服务网站时,会产生一系列需求。首先,需要有自己的个人信息中心(包含账号、用户信息、收藏、历史浏览等数据),能对其进行查看、添加、修改、删除的操作;其次,需要线上旅游平台的一些基本服务,包括景点信息检索、景点评价交流、使用反馈、景点线路预约等,并且能对使用过程中产生的一些信息(评论、搜索信息等)进行查看、添加、删除、修改的操作。
对于系统维护管理人员,其能管理用户并对用户使用系统时产生的一些信息(违规评论、上传图片等)进行增删改查;其次,可以对系统收集的景点和线路等资料信息进行增删改查的操作。
对系统本身,可以将消息推送给用户;能自动收集最新信息并更新數据库;根据收集的最新信息和用户的评价及反馈实时对景点和线路数据进行删除和更新,并且能对景点和线路的优先级进行更改。系统的服务流程如图1所示。
3 系统设计
3.1 前端界面设计
对于网站页面设计,从用户的角度出发,平台采用面向对象的操作界面设计模式,具有可视化、色彩一致性、操作一致性以及简易性等特点,有助于不同信息技术水平层次的用户都能较快地掌握平台的使用技巧。
根据目标用户群体对于文化旅行界面设计的偏好特征,页面以凸显中华深厚文化底蕴的“中国红”色调为主,营造一种浓厚的文化氛围。为避免景点大量文字介绍使得用户产生疲劳倦怠感,平台在排版上采取图文结合的方式,界面简约大气,主要信息突出,能够为用户使用提供有效的引导,容错率较高。首页页面设计如图2所示,具体的页面板块如图3所示。
3.2 系统功能服务
根据需求分析,将本系统按功能主要划分为6个模块,分别为:景点信息、用户评价、实时推送、资源管理、旅行预约、系统设置。如图4所示。
3.3 数据库设计
在进行数据库设计前,通过需求分析可以得知各实体存在的内在联系,主要实体关系为以下四种:
1) 用户主动预约景点;
2) 景点被推送给用户;
3) 用户主动评价景点;
4) 景点被存放于资料。
由于部分实体联系与上述几种有较大重复,就不再赘述。上述关系的E-R如图5所示。
4 系统功能的实现
4.1 技术栈说明
本系统采用前后端分离模式开发。后端核心技术栈为Java以及其延伸的SSM(Spring + SpringMVC + MyBatis) 框架;前端使用Vue.js框架及Element Plus组件库编写;使用Puppeteer.js库开发的脚本进行信息收集。此外,系统还使用了阿里云的云计算服务,百度地图的地图服务等。
4.2 具体重要功能模块
4.2.1 将景点消息实时推送给用户
根据需求,系统需要获取景点的实时信息。使用Puppeteer.js库开发的爬虫脚本实时爬取互联网上与旅游景点相关的实时信息,经过算法加工后,得到不同类型以及各用户所偏好的景点信息,再经过优先级算法排序后将信息存入数据库,当数据库发生改变时,系统会把数据库中的各景点信息实时推送给不同的用户。
其中,系统还会结合用户的反馈和用户的评价信息实时更新数据库信息,以保证信息的可靠性和实时性。为了保证信息的实时更新,系统在进行景点信息推送时将采取WebSocket 协议。具体步骤如图6 所示。
4.2.2 景点信息收集
与4.2.1小节前半部分具体实现步骤类似,系统通过爬虫获取景点信息,经过算法加工排序后存入系统的资料数据库,同时,景点信息收集会通过用户反馈的信息对数据库进行更新。
4.2.3 用户评价
在此模块中,用户既可以对景点进行评价也可以对平台各方面服务进行反馈。此外,在用户的反馈更新到数据库后,系统也会通过算法根据这两点的综合反馈对景点的信息和优先级进行修改和更新。
模块主要功能实现:在用户使用账号登录成功后,可以在个人中心中找到预约板块,点击成功预约的景点后,就可以对其进行评价。系统在收到用户发送的评价请求以及其携带的相关信息(如评价时间,评价用户等)后,会调用评价添加方法,此方法会间接性地调用SQL添加语句,将对应的评价以及相关信息存入到数据。之后,系统会通过调用查看方法,其会间接性调用SQL查询语句获取评价和相关信息在含有评价功能板块页面进行同步展示。系统在处理用户评论的删除和修改也与添加类似,只是调用的处理语句不一致。评价页面如图7所示。
4.2.4 景点预约
用户可以自主预约景点和路线。系统收集到用户的预约信息后,将其存入对应景点的队列中,此时,用户可以选择个人预约或组团预约。如果是个人,系统会根据用户的具体需求推送合适的路线;如果是组团,便把对应景点队列中符合用户需求的景点路线推送给用户。在组团人数不够的情况下,用户可以采用系统根据用户偏好及数据库中的综合数据计算出的旅行方案。
模块主要功能实现:在用户提交选中景点对应的预约请求后,其余步骤与4.2.3小节的实现步骤类似,并且由于一些基本操作也是类似的,下面将不再赘述。对于组团预约,系统在收集到预约请求后,会根据用户的预约要求分类,将大致一类的用户放在一个预约队列中。在组团日期截止前,如果当前人数足够,那么就会组团成功,用户付款即可;如當前组团人数缺少,系统会提示用户是否选择继续进行组团,选择是的用户会进行人数较少的小组团,对于选择否的用户,用户可采纳系统根据算法得出用户可能倾向的其他方案或选择放弃预约。景点预约页面如图8 所示。
4.2.5 资料管理
根据需求分析可知,在用户使用平台的过程中会产生各种相关信息,其次,还有景点线路的相关信息等。系统需要对这些资料进行管理,用户、管理员和系统都可以根据自身的权限对相应的数据进行管理。其中管理员拥有一切权限,即可以对现有数据库中的所有数据进行增删改查。而用户只能对自己的个人信息、预约信息、景点评价以及使用平台产生的一些记录进行添加或修改。对于系统本身,其根据算法实时更新预先设定范围内的数据。
模块主要功能实现:游客根据账号登录网站,系统根据账号对应的类型给予不同使用者权限。其中,管理员可以使用账号登录后台管理系统,对数据库中的所有信息进行管理,提交所操作信息对应的增删改查请求后,系统就会调用对应的模块方法进行处理。而对于用户,其只能登录旅游服务网站,找到个人中心,点击要修改的对应模块,对自己的信息(姓名,性别等)和使用产生的信息(预约、评价、收藏、历史等)提交进行查看、添加和修改请求,对于人员和景区等信息的管理没有操作权限。
4.3 其他辅助功能实现
4.3.1 云服务功能
旅游景点的数量不在少数,随着新兴产业的崛起,景点信息数量还将不断增长,此外,随着网站的日渐完善,旅游景点的信息数量也会增多,基于此考虑,本系统决定使用云部署,将更多的精力放在建设平台自身,减少系统基本运维的工作量[8]。另外,市场上的云部署平台在均衡、稳定以及安全上都比较专业,将系统托管可以保证平台的稳定运行。
1) 云存储
本系统使用阿里云存储,将平台的图片,视频以及部分备份信息存储到阿里云存储中进行托管。
2) 云数据库
本系统将一键云托管数据库,让阿里云数据库平台维护数据库。
3) 云服务器
考虑到本平台系统的实时运算比较多,可能会使用多台服务器,而在分布式计算、效用计算、负载均衡、并行计算、网络存储、热备份冗杂和虚拟化等方面,云服务器平台的服务也更专业。所以,本平台网站相关业务将一键部署到云服务器上。
4) CDN加速服务
为了提高网站的访问体验,本平台将使用CDN加速服务对网站的静态资源进行加速。
5) 短信服务
为了方便开发和维护,本平台使用云服务中配套的短信服务。
6) 域名加速服务
使用域名加速服务加快用户访问网站的速度,提升用户体验。
4.3.2 百度地图接口
本系统使用百度地图提供的在线2D、3D地图和VR实景地图接口,提供地图供用户使用,让用户能够更直观地选择景点和路线。
4.3.3 图片,文字,视频的健康识别
使用阿里云提供的内容健康识别接口,实现对系统收集信息和用户发布信息内容的实时识别。根据识别结果,对违规信息进行处理,以保证平台的正常运行。
5 平台测试
通过以上的步骤实现大学生文旅智慧服务平台的初步架构后,还要使用自动化和手动化结合的方式测试平台的各个功能模块是否能够正常运行[9]。对于前端界面,页面总体色彩搭配统一,各类组织控件完备,动态交互显示正常,用户能够正常登录注册账号,经过一系列的测试,显示前端一切正常。对于功能方面,测试游客资料的上传、游客信息的管理、旅游信息更新与发布、旅行预订、VR实景等功能是否正常,最终结果表明,平台服务功能已基本完备,达到了预期的效果,该平台工作一切正常,能够应用于大学生文旅服务。部分功能测试数据如表1所示。
6 结束语
智慧文化旅游是基于“互联网+”产生的一种新型旅游方式,借助5G、云计算、物联网等新技术,以“文化”为主要旅游资源实现智慧化旅游[10]。本文旅服务平台的建设符合智慧文化旅游的要求,方便大学生群体借助本平台开展文旅活动,在疫情的形势下了解景区实时信息,开展VR游览活动,创建属于自己的文旅圈。目前平台前后端基本功能开发已完成,下一阶段将根据用户的反馈等不断完善改进。