潘琦 李雪竹 王月 何佳莉 王嘉婕
摘 要:本文研究并设计了一种基于SSM的智慧旅游系统。该系统能够实现旅游资源的优化配置和游客体验的提升,为旅游行业提供全面、智能的服务。该系统采用了当前流行的Spring MVC框架和MyBatis数据访问层接口,保证了系统的稳定性和可扩展性。并用关系型数据库结构设计了用于存储系统日志、缓存数据等的辅助表,以增强游客在旅游方面的指导作用。
关键词:SSM框架;大数据技术;旅游领域
一、引言
当前旅游业的信息量庞大,旅游系统在运营过程中需要处理大量的信息。因此,需要对旅游相关信息进行有效的管理,以便及时了解各种信息的变更,并根据变化及时做出调整,从而提高管理效率和资源利用率。现有的旅游景点服务网站在信息及时性、完整性、扩展性等方面存在不足。为了改善这一问题,提高旅游景点服务网站的及时性和扩展性,保证系统能够长期、安全、稳定、可靠、高效的运行是十分必要的。开发功能更加完善、更强大的系统对于实现旅游信息管理工作的规范化、系统化、自动化至关重要。这有助于提高管理信息的效率、资源利用率以及利润的最大化;减轻旅游工作人员的工作负担;为旅游业的运营带来更高的效率和更好的用户体验;提升旅游业的市场竞争力。
二、系统架构设计
(一)整体架构。本系统采用分层架构,分为表现层、业务逻辑层和数据层。表现层包括用户界面和移动端应用;业务逻辑层包括核心业务逻辑和数据处理;数据层包括数据库和数据存储。
(二)技术选型
表现层:采用Spring MVC框架构建Web界面,使用React等前端框架构建移动端应用。
业务逻辑层:使用Spring框架进行核心业务逻辑实现,包括用户管理、景点管理、订单管理、支付管理等。同时,使用MyBatis作为数据访问层接口。
数据层:使用MySQL数据库存储数据,采用分布式存储系统(如Hadoop)存储大规模数据。
(三)数据库设计
数据库采用MySQL,设计关系型数据库结构,包括游客信息表、景点信息表、订单信息表、支付信息表等。同时,设计用于存储系统日志、缓存数据等的辅助表。顶层数据流图如图一所示:
(四)接口设计。系统提供API接口,供第三方应用调用。接口包括用户注册、登录、景点信息查询、订单提交、支付等。接口设计遵循RESTful风格,接口地址遵循统一资源标识符(URI)规范。
(五)安全性设计。系统采用多层次的安全措施,包括用户身份认证、访问控制、加密传输、数据备份等。同时,使用防火墙和入侵检测系统,确保系统安全。
三、系统详细设计
(一)数据库访问层的实现。系统通过JDBC和MySQL实现了连接,新建一个jdbc.properties文件来填写与数据库连接所需要的驱动和参数。后台与数据库访问主要是通过HQL语句来进行查询的,查询语句中的表名是表格的实体类名,因此*是不允许使用的,除非适合聚合函数一起使用才可以。
(二)注册模块的实现。用户在填写数据时,必须与注册页面上的验证相匹配否则会注册失败。注册页面的表单验证通过JavaScript进行验证,用户名的长度必须在6到18之间,邮箱必须带有@符号,密码和密码确认必须相同。系统会根据输入密码的强度给出相应的值。电话号码和身份证号码必须要求输入格式与生活相符合。用户在前台验证通过后,点击注册,表单会将输入的值通过name值传递给后台并保存到数据库中。
(三)登录模块的实现。主要由两部分组成:登录界面和登录后的用户功能界面。在登录界面,用户需要输入用户名和密码。如果用户名和密码为空,系统会给出提示“用户名、密码不能为空”。获取用户名和密码后,系统会到数据库中查找对应的用户信息。如果用户名存在且密码正确,则登录成功;否则登录失败。登录失败后,系统会给出提示信息并将焦点停在文本框中。登录成功后,会将该次会话的全局变量username设置为用户名。登录成功后进入会员功能模块,主要有会员基本信息修改、景点信息管理、发布信息和退出功能。退出功能会清除全局变量username的值并跳转到首页。
(四)用户资料修改模块的实现。用户登录或注册成功后可以修改自己的基本信息。在修改页面的表单中,每个input的name值都需要与实体类中的参数相匹配。如果修改后的用户名与数据库中已存在的用户名重复,页面会提示该用户名已存在。否则,系统会根据id查询用户信息并修改为表单提交的数据。
(五)资讯数据管理模块的实现。管理员可以通过查询资讯数据的基本信息来查询资讯数据。查询资讯数据是通过Ajax技术进行的,需要传递资讯数据的标题、编号等参数,然后在返回到该页面中。管理员可以选中要修改或删除的资讯数据,如果选中了超过一条数据,页面会弹出窗口提醒只能选择一条数据;如果没有选中数据,也会弹出窗口提醒必须选择一条数据。选择确认修改后,系统会根据传过来的id到数据库查询资讯数据,并将结果返回到修改页面中,可以在修改页面中修改刚刚选中的资讯数据。点击确认后,从前端发出的form表单会将修改的数据提交到后台并保存到数据库中。
(六)景点购票模块的实现。景点购票功能需要考虑高并发情况,防止景点重复购票、景点状态显示出错等问题。为此,我们增加了锁机制。在乐观锁、悲观锁以及线程锁中,综合考虑性能效率和错误的可接受性,我们选择了乐观锁机制。乐观锁的实现方式是使用版本标识来确定读到的数据与提交时的数据是否一致。提交后修改版本标识,不一致时可以采取丢弃和再次尝试的策略。在数据库设计中增加了version字段,每次数据提交时判断version是否匹配,若不匹配停止本次提交,若匹配则提交成功并增加version的值。景点购票功能的整体流程是:用户浏览景点信息时,同时会显示景点的状态。系统在显示详细信息的页面时会判断景点的状态。若景点状态为可购票,则会显示购票链接按钮。用户点击购票按钮时,会先通过拦截器判断用户是否登录。若未登录,会跳转至登录页面;若为登录用户就会跳转至填写购票信息的页面。填写好购票信息后点击提交按钮,购票成功后会返回提示信息告知用户购票成功。
(七)景点信息模块的实现。此模块的关键是编写景点信息,包括景点编号、名称、详情等。单击提交按钮以完成信息的添加。如果未写入完整的景点信息(例如未写入景点编号),系统将给出相应的错误提示并无法成功输入数据。数据的写入以概念的形式以onsubmit="return checkForm()"的形式写入进行检查。checkForm()函数是一种用于写入数据的不同类型的校对方法,如检查是否为空也是通过form表单中的onsubmit=checkForm()来检查的。
(八)地区管理模块的实现。地区管理模块需要实现添加、删除或修改地区信息的功能。删除或修改地区时,系统会根据地区的状态判定为可删除状态下才会给出删除或修改链接按钮。点击删除链接按钮时,请求到达后台还会先查询地区状态再次做出判定能否删除。点击修改链接按钮时,会跳转到修改信息的页面重新填写好数据后提交到
四、结语
基于SSM的智慧旅游系统设计具有诸多优点,能够为游客提供智能化、个性化的旅游服务,提高用户体验和服务质量。在未来的开发中,需要不断优化和改进系统,提高系统的稳定性和易用性。
参考文献:
[1]周金玉.乡村振兴背景下广州市乡村旅游电子商务创新发展研究[J].西部旅游,2022(02):20-22.
[2]赵静.基于SSM+VUE框架的企业合规管理系统[J].数字通信世界,2022(11):17-19.
[3]曹华山.SSM框架在Web应用开发中的设计与实现[J].无线互联科技,2021,18(11):108-109.