springboot个人旅游系统---附源码61233

摘要

信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。个人旅游系统小程序问题,对个人旅游系统小程序进行研究分析,然后开发设计出基于springboot个人旅游系统小程序以解决问题。

个人旅游系统小程序的设计是采取面对对象的开发模式进行软件的开发和硬体的架设,能很好的满足实际使用的需求,完善了对应的软体架设以及程序编码的工作,采用的数据库是Mysql,使用Spring Boot框架技术构建的一个管理系统,实现了本系统的全部功能。本次报告,首先分析了研究的背景、作用、意义,为研究工作的合理性打下了基础。个人旅游系统小程序的各项需求以及技术问题进行分析,证明了系统的必要性和技术可行性,然后对设计系统需要使用的技术软件以及设计思想做了基本的介绍,最后来实现个人旅游系统小程序的部署运行使用它。

关键词:个人旅游系统小程序 Spring Boot框架;Mysql数据库

Abstract

In the information society, there is a need for targeted information acquisition channels, but the expansion of these channels is basically the direction that people are striving for. Due to the deviation in their perspective, people often have access to different types of information, which is also the most difficult problem for technology to overcome. Research and analyze the personal tourism system mini program problem, and then develop and design a personal tourism system mini program based on Springboot to solve the problem.

The design of the personal tourism system mini program adopts an object-oriented development model for software development and hardware setup, which can well meet the practical needs of use, improve the corresponding software setup and program coding work, use MySQL database, and use Spring Boot framework technology to build a management system, realizing all the functions of this system. This report first analyzes the background, role, and significance of the research, laying the foundation for the rationality of the research work. The various requirements and technical issues of the personal tourism system mini program were analyzed, proving the necessity and technical feasibility of the system. Then, a basic introduction was made to the technical software and design ideas required for designing the system. Finally, the deployment and operation of the personal tourism system mini program were implemented.

Keywords:Personal travel system mini program; Spring Boot framework; MySQL database;

目录

摘要

Abstract

第1章 引 言

1.1 选题背景及意义

1.2 国内外研究概况

1.3 论文结构安排

第2章 系统分析

2.1 系统可行性分析

2.1.1 技术可行性分析

2.1.2 经济可行性分析

2.1.3 操作可行性分析

2.2 系统需求分析

2.2.1 功能需求分析

2.2.2 非功能性需求分析

2.3 系统用例分析

2.4 本章小结

第3章 系统设计

3.1 系统架构设计

3.2 系统功能模块设计

3.3 数据库设计

3.3.1 数据库概念结构设计

3.3.2 数据库逻辑结构设计

4章 关键模块的设计与实现

4.1 登录模块

4.2 注册模块

4.3 景区中心模块

4.4 购票订单模块

4.5 取消订单模块

4.6 系统用户界面

4.7 资讯管理界面

第5章 系统测试

5.1 测试的目的

5.2 系统部分测试

5.3 系统测试结果

第6章 结论

参考文献

致谢

第1章 引 言

1.1 选题背景及意义

在当今数字化社会背景下,个性化服务的需求日益凸显,尤其是在旅游行业,用户对于个性化、精准推荐的旅游产品与服务有着强烈需求。基于协同过滤算法的个人旅游系统小程序应运而生,其选题旨在利用大数据和人工智能技术,通过对海量用户行为数据进行深度挖掘与分析,实现对用户兴趣偏好、消费习惯等个体特征的精准把握。该系统通过协同过滤算法,能够有效发掘用户间的隐性关联,找出具有相似行为模式的群体,进而为每个用户提供定制化的旅游路线、景点推荐及各类旅行服务信息。其重要意义在于提升用户体验,提高旅游产品的转化率,推动旅游行业的智能化升级,同时也有助于旅游企业优化资源配置,实现更高效的市场营销和服务策略。

1.2 国内外研究概况

近年来,国内外对于基于协同过滤算法的个人旅游系统的研究与应用呈现出蓬勃发展的态势。在国外,诸如TripAdvisor、Expedia等知名在线旅游平台,已经将协同过滤算法广泛应用于个性化推荐系统中,通过分析用户的浏览历史、评价记录以及购买行为等多维度数据,实现对全球各地旅游资源的精准匹配和个性推送。在国内,随着移动互联网的普及和旅游业的快速发展,诸多旅游类小程序如马蜂窝、去哪儿网等也在积极探索并实践协同过滤算法在旅游个性化推荐中的运用,结合本土化特点,深入挖掘用户个性化需求,以期在激烈的市场竞争中提供差异化的服务体验。

与此同时,学术界也针对协同过滤算法在旅游推荐领域的适应性和优化进行了深入研究,包括改进传统协同过滤算法的冷启动问题、探索深度学习与协同过滤的有效融合、以及考虑时间、地点等多元因素对旅游推荐效果的影响等,不断丰富和完善了基于协同过滤的个人旅游系统的设计理论与方法体系。

1.3 论文结构安排

论文主要架构、章节安排如下所示:

第一章:引言,介绍研究背景和动机,概述研究目的和意义,概括国内外研究现状,并提供论文结构概述。

第二章:系统需求分析,通过用户需求分析和功能需求分析,明确用户对系统的需求和系统应具备的功能。

第三章:系统设计,设计系统架构,包括选择合适的架构模式和数据库设计,以及各个模块的详细设计。

第四章:系统实现,选择合适的技术工具和框架,逐一实现各个模块,建立数据库连接并实现前端界面开发。

第五章:系统测试,进行单元测试、集成测试和整体系统测试,确保系统功能的正确性、协调性和稳定性。

第六章,总结,总结研究工作的主要内容和成果,评价系统的优点和不足,并提出改进和进一步研究的建议,强调研究的意义和影响。

第2章 系统分析

2.1 系统可行性分析

2.1.1 技术可行性分析

个人旅游系统小程序采用了Spring Boot框架,开发了功能完备、使用简单的前端应用程序,并建立、维护了一个数据完整、安全、稳定性强的后台数据库系统。

系统使用Spring Boot框架和Mysql数据库作为设计工具,可简单易行地学习操作。用户角色之间的相结合开发一套个人旅游系统小程序是值得尝试的,数据完整性和许多品质为数据的功能分配和管理提供了依据。它也是数据库安全平台的重要组成部分,是提高和增强数据安全性的重要手段。此外,为了提供更平滑,更智能和更有效的基本控制方法,定义了同时构建对安全计算环境的支持所需的步骤,并帮助维护安全性。因为在这两种开发工具中,功能强大且免费且界面良好,所以个人旅游系统小程序在技术方面是可行的。

2.1.2 经济可行性分析

个人旅游系统小程序管理的开发是由开发者自己开发,不需要购买其他软件或者端口之类的,而且在个人旅游系统小程序管理的开发之前所做的市场调研及其他的个人旅游系统小程序,都是没有任何费用的,通过开发者自己的努力,所有的工作的都是自己亲力亲为,在碰到自己比较难以解决的问题,大多是通过同学和指导老师的帮助进行相关信息的解决,所以对于个人旅游系统小程序的开发在经济上是完全可行的,没有任何费用支出的。

使用Spring Boot框架是比较成熟的技术,所以个人旅游系统小程序的开发在经济上是没有问题的。

2.1.3 操作可行性分析

可操作性主要是对个人旅游系统小程序系统设计完成后,用户的使用体验度,对于管理员可以通过系统随时管理相关的数据信息,并且对于管理员、用户角色,都可以简单明了的进入到自己的系统界面,通过界面导航菜单可以简单明了地操作功能模块,方便用户信息需求和考资讯管理数据信息,对于系统的操作,不需要专业人员都可以直接进行功能模块的操作管理,所以在系统的可操作性是完全可以的。本系统的操作使用的也是界面窗口进行登录,所以操作人员只要会简单的电脑操作就完全可以的。

2.2 系统需求分析

2.2.1 功能需求分析

个人旅游系统小程序我划分为了用户管理模块和管理员模块模块这两大部分。

旅游用户功能:

  1. 登录:个人旅游系统小程序前台注册后的用户是可以通过自己的账户名和密码进行登录的,当用户输入完整的自己的账户名和密码后,点击“登录”按钮后,将会首先验证输入的有没有空数据,再次验证输入的账户名+密码和数据库中当前保存的用户信息是否一致,只有在一致后将会登录成功并自动跳转到个人旅游系统小程序的首页中;否则将会提示相应错误信息。

2旅游攻略:当用户点击下方导航栏“旅游攻略”这一菜单按钮,会显示管理员在后台发布的所有的旅游攻略,可以查看详情,进行收藏、点赞、评论等。

3景区中心:当用户点击下方导航栏“景区中心”这一菜单按钮,会显示管理员在后台发布的所有的景区中心,可以查看详情,进行预下单购票、点赞、评论、收藏等。

(4)我的模块:旅游用户在前台点击“我的”可以对用户的基本信息、收藏、购票订单、取消订单、留言板管理)等信息进行管理。

管理员端:

(1)系统用户:包括用户账号的添加、编辑和删除操作,可以查看用户信息、修改用户权限、冻结或解冻用户账号等。

(2)购票订单管理:点击“购票订单”这个菜单,可以查看到所有购票订单详情,可以进行增删改查等操作。

(3)取消订单管理:点击“取消订单”这个菜单,可以查看到所有取消订单详情,可以进行增删改查等操作。

4)系统管理:当管理员点击“系统管理”时,可查看轮播图管理,如需添加新的轮播图,点击右侧“新增”按钮,上传图片,输入标题,点击“确认”按钮进行添加。

5旅游公告管理:当管理员点击“旅游公告管理”时,可查看旅游公告信息理,如需添加新的公告信息,点击右侧“新增”按钮,上传图片,输入标题,点击“确认”按钮进行添加。

6)资源管理:当管理员点击“资源管理”时,可查看旅游攻略、攻略分类;如需添加新的资讯列表,点击左侧“添加”按钮,上传封面图,输入标题,选择分类,输入标签、描述和正文,点击“提交”按钮进行添加。同时可以对资讯信息进行增删改查。

2.2.2.非功能性需求分析

 非功能性分析旨在评估个人旅游系统小程序的非功能需求和性能要求。通过对性能、可靠性、安全性、可用性和扩展性等方面进行评估,确保平台能够满足用户和系统运行的要求。具体如下3-1表格中:

2.1  个人旅游系统小程序非功能需求表

非功能性要求

说明

性能

评估响应时间、并发用户数、吞吐量等指标,以确保平台稳定高效地运行。

可靠性

评估系统的稳定性、容错能力和数据完整性,保障系统在故障情况下正常运行。

安全性

评估用户身份认证、数据加密和访问控制等,保护用户信息和交易的安全。

可用性

评估系统的稳定性、故障处理能力和用户界面友好性,提供良好的用户体验。

扩展性

评估系统的可扩展性和灵活性,以便根据需求进行功能扩展和升级。

2.3系统用例分析

系统用例分析是对个人旅游系统小程序中各个功能模块的用户需求和行为进行分析,以识别和描述不同的用户用例。通过系统用例分析,可以深入了解用户在平台上的操作流程,为系统设计和开发提供指导,并确保平台能够满足用户的需求和期望。

个人旅游系统小程序旅游用户角色用例图如图2.1所示:

图2.1旅游用户角色用例图

 个人旅游系统小程序中管理员用例图如图2.2所示:

图2.2 管理员用例图、

2.4 本章小结

在系统分析的章节中,我们通过可行性分析、功能分析和系统用例分析等方法,全面评估了个人旅游系统小程序的可行性、功能需求以及用户需求。这些分析为后续的系统设计和开发提供了重要的指导和决策依据,确保平台能够满足用户需求,并实现预期目标和效益。

第三章  系统设计

个人旅游系统小程序总体设计包括系统架构、数据库设计、用户界面设计等方面。通过三层架构模式,确保系统的可靠性和可扩展性。设计规范化的数据库结构,以存储和管理商品信息、用户数据等。同时,注重用户界面的友好性和易用性,提供便捷的功能操作和良好的用户体验。总体设计的目标是实现一个稳定、安全、高效的个人旅游系统小程序,满足用户的需求。

3.1 系统架构设计

在系统架构设计中,我们将确定系统的整体结构和组件之间的关系。这包括选择适当的架构风格,划分系统的层次结构,并定义各个模块的职责和交互方式。架构图如下图所示。

图3-1个人旅游系统小程序架构设计图

表现层(Presentation Layer):负责与用户进行交互,将系统的功能和数据以易于理解和操作的方式展示给用户。通常包括用户界面、页面设计和用户输入验证等。

业务逻辑层(Business Logic Layer):处理系统的核心业务逻辑,包括对用户请求的处理、业务规则的执行以及数据的处理和转换。它独立于表现层和数据层,实现了业务逻辑的封装和复用。

数据层(Data Layer):负责数据的存储、访问和管理,包括数据库和持久化机制。数据层提供了对数据的增删改查操作,并与业务逻辑层进行交互,使系统能够有效地存储和检索数据。

这三个层次相互独立,通过明确的接口和协议进行通信,实现了系统的模块化和可扩展性。表现层负责将用户的请求传递给业务逻辑层,业务逻辑层处理请求并返回结果,最后数据层负责与数据库交互并提供数据支持。这种分层架构有助于实现系统的可维护性、灵活性和可测试性。

3.2 系统功能模块设计

通过整体功能模块设计,我们将根据需求分析的结果,将系统的功能划分为不同的模块。每个模块负责实现特定的功能,并与其他模块进行协作。我们将详细定义每个模块的输入、输出、处理逻辑和相互依赖关系。具体的功能模块图如图3.1所示。

图3.1 个人旅游系统小程序功能模块图

3.3 数据库设计

数据库设计是系统开发中至关重要的一环,它涉及到数据的组织、存储和管理。在数据库设计中,我们将根据系统的需求设计数据库的概念结构和逻辑结构,包括定义实体、属性、关系和约束等。

3.3.1 数据库概念结构设计

数据库概念结构设计主要涉及数据库的实体和实体之间的关系。通过实体-关系模型或者其他适当的模型,我们将定义系统中涉及的各个实体以及它们之间的联系。下面是整个个人旅游系统小程序的总E-R关系图。

图3.2  个人旅游系统小程序总E-R关系图

3.3.2 数据库逻辑结构设计

数据库逻辑结构设计则是在概念结构的基础上,进行具体的数据库表设计。我们将定义每个表的结构、字段和约束,并建立表与表之间的关系。具体如下。

表access_token (登陆访问时长)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

token_id

int

10

0

N

Y

临时访问牌ID

2

token

varchar

64

0

Y

N

临时访问牌

3

info

text

65535

0

Y

N

4

maxage

int

10

0

N

N

2

最大寿命:默认2小时

5

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

6

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

7

user_id

int

10

0

N

N

0

用户编号:

表article (文章:用于内容管理系统的文章)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

article_id

mediumint

8

0

N

Y

文章id:[0,8388607]

2

title

varchar

125

0

N

Y

标题:[0,125]用于文章和html的title标签中

3

type

varchar

64

0

N

N

0

文章分类:[0,1000]用来搜索指定类型的文章

4

hits

int

10

0

N

N

0

点击数:[0,1000000000]访问这篇文章的人次

5

praise_len

int

10

0

N

N

0

点赞数

6

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

7

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

8

source

varchar

255

0

Y

N

来源:[0,255]文章的出处

9

url

varchar

255

0

Y

N

来源地址:[0,255]用于跳转到发布该文章的网站

10

tag

varchar

255

0

Y

N

标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开

11

content

longtext

2147483647

0

Y

N

正文:文章的主体内容

12

img

varchar

255

0

Y

N

封面图

13

description

text

65535

0

Y

N

文章描述

表article_type (文章分类)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

type_id

smallint

5

0

N

Y

分类ID:[0,10000]

2

display

smallint

5

0

N

N

100

显示顺序:[0,1000]决定分类显示的先后顺序

3

name

varchar

16

0

N

N

分类名称:[2,16]

4

father_id

smallint

5

0

N

N

0

上级分类ID:[0,32767]

5

description

varchar

255

0

Y

N

描述:[0,255]描述该分类的作用

6

icon

text

65535

0

Y

N

分类图标:

7

url

varchar

255

0

Y

N

外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置

8

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表auth (用户权限管理)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

auth_id

int

10

0

N

Y

授权ID:

2

user_group

varchar

64

0

Y

N

用户组:

3

mod_name

varchar

64

0

Y

N

模块名:

4

table_name

varchar

64

0

Y

N

表名:

5

page_title

varchar

255

0

Y

N

页面标题:

6

path

varchar

255

0

Y

N

路由路径:

7

position

varchar

32

0

Y

N

位置:

8

mode

varchar

32

0

N

N

_blank

跳转方式:

9

add

tinyint

3

0

N

N

1

是否可增加:

10

del

tinyint

3

0

N

N

1

是否可删除:

11

set

tinyint

3

0

N

N

1

是否可修改:

12

get

tinyint

3

0

N

N

1

是否可查看:

13

field_add

text

65535

0

Y

N

添加字段:

14

field_set

text

65535

0

Y

N

修改字段:

15

field_get

text

65535

0

Y

N

查询字段:

16

table_nav_name

varchar

500

0

Y

N

跨表导航名称:

17

table_nav

varchar

500

0

Y

N

跨表导航:

18

option

text

65535

0

Y

N

配置:

19

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

20

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表cancel_order (取消订单)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

cancel_order_id

int

10

0

N

Y

取消订单ID

2

order_number

varchar

64

0

N

N

订单号

3

attraction_name

varchar

64

0

Y

N

景点名称

4

types_of_attractions

varchar

64

0

Y

N

景点类型

5

cover

varchar

255

0

Y

N

封面

6

ticketing_unit_price

int

10

0

Y

N

0

售票单价

7

tourist_attraction_phone_number

varchar

64

0

Y

N

景点电话

8

attraction_address

varchar

64

0

Y

N

景点地址

9

cancel_date

date

10

0

Y

N

取消日期

10

ticketing_users

int

10

0

Y

N

0

购票用户

11

mobile_phone_number

varchar

64

0

Y

N

手机号码

12

cancel_quantity

int

10

0

Y

N

0

取消数量

13

refund_amount

varchar

64

0

Y

N

返款金额

14

examine_state

varchar

16

0

N

N

未审核

审核状态

15

examine_reply

varchar

16

0

Y

N

审核回复

16

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

17

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表collect (收藏)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

collect_id

int

10

0

N

Y

收藏ID:

2

user_id

int

10

0

N

N

0

收藏人ID:

3

source_table

varchar

255

0

Y

N

来源表:

4

source_field

varchar

255

0

Y

N

来源字段:

5

source_id

int

10

0

N

N

0

来源ID:

6

title

varchar

255

0

Y

N

标题:

7

img

varchar

255

0

Y

N

封面:

8

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表comment (评论)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

comment_id

int

10

0

N

Y

评论ID:

2

user_id

int

10

0

N

N

0

评论人ID:

3

reply_to_id

int

10

0

N

N

0

回复评论ID:空为0

4

content

longtext

2147483647

0

Y

N

内容:

5

nickname

varchar

255

0

Y

N

昵称:

6

avatar

varchar

255

0

Y

N

头像地址:[0,255]

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

9

source_table

varchar

255

0

Y

N

来源表:

10

source_field

varchar

255

0

Y

N

来源字段:

11

source_id

int

10

0

N

N

0

来源ID:

表hits (用户点击)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

hits_id

int

10

0

N

Y

点赞ID:

2

user_id

int

10

0

N

N

0

点赞人:

3

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

表message (留言板)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

message_id

int

10

0

N

Y

留言板ID:

2

user_id

int

10

0

N

N

0

用户ID:

3

title

varchar

64

0

Y

N

标题:

4

content

longtext

2147483647

0

N

N

内容:

5

nickname

varchar

32

0

N

N

昵称:

6

avatar

varchar

255

0

Y

N

头像:

7

email

varchar

125

0

Y

N

留言者邮箱

8

phone

varchar

11

0

Y

N

留言者手机号码

9

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

11

reply

longtext

2147483647

0

Y

N

回复

12

reply_state

tinyint

4

0

Y

N

0

回复状态

表notice (公告)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

notice_id

mediumint

8

0

N

Y

公告id:

2

title

varchar

125

0

N

N

标题:

3

content

longtext

2147483647

0

Y

N

正文:

4

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

5

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表praise (点赞)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

praise_id

int

10

0

N

Y

点赞ID:

2

user_id

int

10

0

N

N

0

点赞人:

3

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

8

status

bit

1

0

N

N

1

点赞状态:1为点赞,0已取消

表scenic_area_center (景区中心)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

scenic_area_center_id

int

10

0

N

Y

景区中心ID

2

attraction_name

varchar

64

0

Y

N

景点名称

3

types_of_attractions

varchar

64

0

Y

N

景点类型

4

cover

varchar

255

0

Y

N

封面

5

ticketing_unit_price

int

10

0

Y

N

0

售票单价

6

tourist_attraction_phone_number

varchar

64

0

Y

N

景点电话

7

attraction_address

varchar

64

0

Y

N

景点地址

8

introduction_to_scenic_spots

longtext

2147483647

0

Y

N

景点介绍

9

hits

int

10

0

N

N

0

点击数

10

praise_len

int

10

0

N

N

0

点赞数

11

recommend

int

10

0

N

N

0

智能推荐

12

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

13

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表slides (轮播图)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

slides_id

int

10

0

N

Y

轮播图ID:

2

title

varchar

64

0

Y

N

标题:

3

content

varchar

255

0

Y

N

内容:

4

url

varchar

255

0

Y

N

链接:

5

img

varchar

255

0

Y

N

轮播图:

6

hits

int

10

0

N

N

0

点击量:

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表ticket_purchase_order (购票订单)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

ticket_purchase_order_id

int

10

0

N

Y

购票订单ID

2

order_number

varchar

64

0

Y

N

订单号

3

attraction_name

varchar

64

0

Y

N

景点名称

4

types_of_attractions

varchar

64

0

Y

N

景点类型

5

cover

varchar

255

0

Y

N

封面

6

ticketing_unit_price

int

10

0

Y

N

0

售票单价

7

tourist_attraction_phone_number

varchar

64

0

Y

N

景点电话

8

attraction_address

varchar

64

0

Y

N

景点地址

9

booking_period

date

10

0

Y

N

订票日期

10

ticketing_users

int

10

0

Y

N

0

购票用户

11

mobile_phone_number

varchar

64

0

Y

N

手机号码

12

number_of_tickets_purchased

int

10

0

Y

N

0

购票数量

13

payment_amount

varchar

64

0

Y

N

支付金额

14

pay_state

varchar

16

0

N

N

未支付

支付状态

15

pay_type

varchar

16

0

Y

N

支付类型: 微信、支付宝、网银

16

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

17

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表tourism_users (旅游用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

tourism_users_id

int

10

0

N

Y

旅游用户ID

2

user_name

varchar

64

0

Y

N

用户姓名

3

mobile_phone_number

varchar

64

0

Y

N

手机号码

4

examine_state

varchar

16

0

N

N

已通过

审核状态

5

user_id

int

10

0

N

N

0

用户ID

6

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

7

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表types_of_attractions (景点类型)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

types_of_attractions_id

int

10

0

N

Y

景点类型ID

2

types_of_attractions

varchar

64

0

Y

N

景点类型

3

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表upload (文件上传)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

upload_id

int

10

0

N

Y

上传ID

2

name

varchar

64

0

Y

N

文件名

3

path

varchar

255

0

Y

N

访问路径

4

file

varchar

255

0

Y

N

文件路径

5

display

varchar

255

0

Y

N

显示顺序

6

father_id

int

10

0

Y

N

0

父级ID

7

dir

varchar

255

0

Y

N

文件夹

8

type

varchar

32

0

Y

N

文件类型

表user (用户账户:用于保存用户登录信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

user_id

mediumint

8

0

N

Y

用户ID:[0,8388607]用户获取其他与用户相关的数据

2

state

smallint

5

0

N

N

1

账户状态:[0,10](1可用|2异常|3已冻结|4已注销)

3

user_group

varchar

32

0

Y

N

所在用户组:[0,32767]决定用户身份和权限

4

login_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

上次登录时间:

5

phone

varchar

11

0

Y

N

手机号码:[0,11]用户的手机号码,用于找回密码时或登录时

6

phone_state

smallint

5

0

N

N

0

手机认证:[0,1](0未认证|1审核中|2已认证)

7

username

varchar

16

0

N

N

用户名:[0,16]用户登录时所用的账户名称

8

nickname

varchar

16

0

Y

N

昵称:[0,16]

9

password

varchar

64

0

N

N

密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成

10

email

varchar

64

0

Y

N

邮箱:[0,64]用户的邮箱,用于找回密码时或登录时

11

email_state

smallint

5

0

N

N

0

邮箱认证:[0,1](0未认证|1审核中|2已认证)

12

avatar

varchar

255

0

Y

N

头像地址:[0,255]

13

open_id

varchar

255

0

Y

N

针对获取用户信息字段

14

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

15

vip_level

varchar

255

0

Y

N

会员等级

16

vip_discount

double

11

2

Y

N

0.00

会员折扣

表user_group (用户组:用于用户前端身份和鉴权)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

group_id

mediumint

8

0

N

Y

用户组ID:[0,8388607]

2

display

smallint

5

0

N

N

100

显示顺序:[0,1000]

3

name

varchar

16

0

N

N

名称:[0,16]

4

description

varchar

255

0

Y

N

描述:[0,255]描述该用户组的特点或权限范围

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

8

register

smallint

5

0

Y

N

0

注册位置:

9

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

4章 关键模块的设计与实现

4.1 登录模块

用户登录界面用于已注册用户进行账号登录,用户需要输入正确的用户名和密码才能成功登录系统。登录界面应对用户的输入进行验证,并提供密码找回或重新注册的选项。界面如下图所示。其主界面展示如下图4.1所示。

图4.1 登录界面图

登录代码如下:

 /**

     * 登录

     * @param data

     * @param httpServletRequest

     * @return

     */

    @PostMapping("login")

    public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {

        log.info("[执行登录接口]");

        String username = data.get("username");

        String email = data.get("email");

        String phone = data.get("phone");

        String password = data.get("password");

        List resultList = null;

        Map<String, String> map = new HashMap<>();

        if(username != null && "".equals(username) == false){

            map.put("username", username);

            resultList = service.selectBaseList(service.select(map, new HashMap<>()));

        }

        else if(email != null && "".equals(email) == false){

            map.put("email", email);

            resultList = service.selectBaseList(service.select(map, new HashMap<>()));

        }

        else if(phone != null && "".equals(phone) == false){

            map.put("phone", phone);

            resultList = service.selectBaseList(service.select(map, new HashMap<>()));

        }else{

            return error(30000, "账号或密码不能为空");

        }

        if (resultList == null || password == null) {

            return error(30000, "账号或密码不能为空");

        }

        //判断是否有这个用户

        if (resultList.size()<=0){

            return error(30000,"用户不存在");

        }

        User byUsername = (User) resultList.get(0);

        Map<String, String> groupMap = new HashMap<>();

        groupMap.put("name",byUsername.getUserGroup());

        List groupList = userGroupService.selectBaseList(userGroupService.select(groupMap, new HashMap<>()));

        if (groupList.size()<1){

            return error(30000,"用户组不存在");

        }

        UserGroup userGroup = (UserGroup) groupList.get(0);

        //查询用户审核状态

        if (!StringUtils.isEmpty(userGroup.getSourceTable())){

            String res = service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId());

            if (res==null){

                return error(30000,"用户不存在");

            }

            if (!res.equals("已通过")){

                return error(30000,"该用户审核未通过");

            }

        }

        //查询用户状态

        if (byUsername.getState()!=1){

            return error(30000,"用户非可用状态,不能登录");

        }

        String md5password = service.encryption(password);

        if (byUsername.getPassword().equals(md5password)) {

            // 存储Token到数据库

            AccessToken accessToken = new AccessToken();

            accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));

            accessToken.setUser_id(byUsername.getUserId());

            Duration duration = Duration.ofSeconds(7200L);

            redisTemplate.opsForValue().set(accessToken.getToken(), accessToken,duration);

            // 返回用户信息

            JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));

            user.put("token", accessToken.getToken());

            JSONObject ret = new JSONObject();

            ret.put("obj",user);

            return success(ret);

        } else {

            return error(30000, "账号或密码不正确");

        }

    }

4.2 注册模块

用户注册界面用于新用户进行账号注册,用户需要填写必要的个人信息并选择合适的用户名和密码。注册界面应该进行输入验证和数据格式检查,确保用户提供有效的信息。界面如下图所示。其主界面展示如下图4.2所示。

图4.2 注册界面图

注册代码如下:

  /**

     * 注册

     * @param user

     * @return

     */

    @PostMapping("register")

    public Map<String, Object> signUp(@RequestBody User user) {

        // 查询用户

        Map<String, String> query = new HashMap<>();

        Map<String,Object> map = JSON.parseObject(JSON.toJSONString(user));

        query.put("username",user.getUsername());

        List list = service.selectBaseList(service.select(query, new HashMap<>()));

        if (list.size()>0){

            return error(30000, "用户已存在");

        }

        map.put("password",service.encryption(String.valueOf(map.get("password"))));

        service.insert(map);

        return success(1);

}   

 4.3 景区中心模块

景区中心:当用户点击下方导航栏“景区中心”这一菜单按钮,会显示管理员在后台发布的所有的景区中心,可以查看详情,进行预下单购票、收藏、点赞、评论等。界面如下图所示。

   

图4.3 景区中心查看界面图

景区中心管理:点击“景区中心”这个菜单,可以查看到所有景区中心详情,可以进行增删改查等操作。界面如下图所示。

图4.4 景区中心添加界面图

4.4 购票订单模块

购票订单:当用户点击下方导航栏“购票订单”这一菜单按钮,可以查看详情,进行相对应操作。界面如下图所示。

   

图4.5 购票订单查看界面图

购票订单管理:可以查看到所有购票订单详情,进行查询,添加、删除等操作。界面如下图所示。

图4.6购票订单管理界面图

4.5 取消订单模块

取消订单:当用户点击下方导航栏“取消订单”这一菜单按钮,可以查看详情,进行相对应操作界面如下图所示。

图4.7 取消订单界面图

取消订单管理:可以查看到取消订单详情,进行查询,添加、删除等操作,界面如下图所示。

图4.8 取消订单管理界面图

4.6 系统用户界面

系统用户:包括用户账号的添加、编辑和删除操作,可以查看用户信息、修改用户权限、冻结或解冻用户账号等。界面如下图所示。

图5.9系统用户界面图

4.7 资讯管理界面

资讯管理:管理员点击“资讯管理”这个菜单,可以查看到所有资讯详情,可以进行增删改查等操作。界面如下图所示。

图5.10资讯管理界面图

  

第五章  系统测试

5.1 测试的目的

测试目的是为了验证系统的功能、性能和稳定性,以确保系统在实际应用中能够达到预期的要求。通过测试,可以发现潜在的问题和缺陷,并及时进行修复和改进。测试还可以评估系统的可靠性、安全性和用户体验,以提供一个高质量和可信赖的产品。此外,测试也有助于验证系统是否满足用户需求和预期,是否符合相应的标准和规范。总之,测试的目的是为了确保系统的质量和可靠性,从而为用户提供良好的使用体验和价值。

5.2 系统部分测试

表5.1 用户注册测试用例

测试编号

测试内容

预期结果

TC-001

输入有效信息

注册成功,跳转到登录页面

TC-002

输入已存在账号

显示账号已存在的提示信息

TC-003

输入无效信息

显示注册失败的提示信息,要求重新输入有效信息

表5.2 用户登录测试用例

测试编号

测试内容

预期结果

TC-004

输入正确的账号密码

登录成功,跳转到个人主页

TC-005

输入错误的账号密码

显示登录失败的提示信息,要求重新输入正确的账号密码

表5.3 修改密码测试用例

测试编号

测试内容

预期结果

TC-006

输入有效密码

密码修改成功,显示修改成功的提示信息

TC-007

输入无效密码

显示密码无效的提示信息,要求重新输入有效密码

TC-008

输入错误原密码

显示原密码错误的提示信息,要求重新输入正确原密码

表5.4 取消订单测试用例

测试编号

测试内容

预期结果

TC-009

输入有效的取消订单试驾

取消订单成功,显示记录成功的提示信息

TC-010

输入无效的取消订单试驾

显示记录失败的提示信息,要求重新输入有效信息

表5.5查看购票订单测试用例

测试编号

测试内容

预期结果

TC-014

点击查看购票订单

显示购票订单页面,展示相关的文章、新闻等内容

TC-015

选择其他分类

显示所选分类下的相关文章、新闻等内容

TC-016

无可用购票订单信息

显示暂无购票订单的提示信息,提醒用户重新选择分类

5.3 系统测试结果

综上所述,个人旅游系统小程序在功能测试中表现良好,通过了所有测试用例。系统提供的用户注册、登录、修改密码、查看景区中心和查看购票订单等主要功能都能正常运行,并能够给出预期的提示信息和结果。然而,为了确保系统的全面稳定性和质量,仍建议进行更多的综合性测试,包括性能测试、安全性测试和用户体验测试等,以进一步验证和改进系统的功能和性能。

第六章  结论

本研究设计并实现了个人旅游系统小程序。通过对系统进行功能测试和评估,得出以下结论:该系统在功能上经过验证,用户注册、登录、取消订单、景区中心、购票订单等功能都能正常运行;技术上具备稳定性和可扩展性,小程序提供跨平台应用,springboot框架简化开发,MySQL数据库支持数据存储与查询;从经济角度看,小程序开发成本低,springboot和MySQL均为免费且开源;操作上易用性好,小程序界面简洁明了,springboot的自动化部署与MySQL的管理工具提供便捷操作。

综上所述,个人旅游系统小程序在功能、技术、经济和操作上均具有优势。满足用户需求并提供更好的用户体验。

参考文献

[1]王晓俊,易雪,赵旭等. 微信小程序在手术室医疗设备管理中的应用 [J]. 检验医学与临床, 2024, 21 (04): 552-555.

[2]陈锦. 校园智能导览小程序的设计与实现 [J]. 襄阳职业技术学院学报, 2024, 23 (01): 88-92.

[3]孙梦菲,周天源,王天澍. 基于微信小程序的校园社团管理系统设计与实现 [J]. 现代信息科技, 2024, 8 (03): 40-44. DOI:10.19850/j.cnki.2096-4706.2024.03.009.

[4]李娇雅,汪济旭,李雨欣等. 基于微信小程序的远程医疗预约系统设计 [J]. 集成电路应用, 2024, 41 (02): 78-79. DOI:10.19339/j.issn.1674-2583.2024.02.028.

[5]Hsiung S C ,Yu T L ,Ching W W . Investigating the spatial effect of operational performance in China’s regional tourism system [J]. Humanities and Social Sciences Communications, 2024, 11 (1):

[6]陈欣苹,赵子潇,程文莉. 基于大数据的题库微信小程序的设计与开发 [J]. 电脑知识与技术, 2024, 20 (03): 65-68. DOI:10.14004/j.cnki.ckt.2024.0060.

[7]白茹鑫. 基于SpringBoot+SSM框架的企业安全培训管理系统设计与实现 [J]. 现代信息科技, 2024, 8 (01): 44-49. DOI:10.19850/j.cnki.2096-4706.2024.01.009.

[8]Wu J ,Chen N ,Xia H , et al. Design and development of the intelligent voice recognition‐based cognitive assessment WeChat mini‐program [J]. Alzheimer's & Dementia, 2023, 19 (S11):

[9]姜一波. 基于SpringBoot+Vue的在线考试系统设计与实现 [J]. 无线互联科技, 2023, 20 (23): 68-71.

[10]刘瑞享,王玉婷. 智能城市旅游发展现状与趋势分析 [J]. 智能城市, 2023, 9 (11): 73-76. DOI:10.19301/j.cnki.zncs.2023.11.023.

[11]Na T ,Xieyu C . Research on Factors Influencing User Growth of Mini-program Games [J]. Academic Journal of Humanities & Social Sciences, 2023, 6 (22):

[12]游晶,邱淑丽,李敬文. 基于SpringBoot的校园智慧报修系统的设计与实现 [J]. 电脑知识与技术, 2023, 19 (32): 50-52+65. DOI:10.14004/j.cnki.ckt.2023.1718.

[13]Mengdi L ,Yifang D ,Xiaoman W . Evaluation of the coupling and coordination degree of eco-cultural tourism system in the Jiangsu-Zhejiang-Shanghai-Anhui region [J]. Ecological Indicators, 2023, 156

[14]李蓉,沈克印. 乡村体育旅游助力乡村振兴的作用机制与推进策略[C]// 中国体育科学学会. 第十三届全国体育科学大会论文摘要集——专题报告(体育产业分会). 武汉体育学院;, 2023: 3. DOI:10.26914/c.cnkihy.2023.067638.

[15]张大秀,朱屹诚. 基于Java的碧海苍梧旅游系统设计与实现 [J]. 现代信息科技, 2023, 7 (11): 1-6. DOI:10.19850/j.cnki.2096-4706.2023.11.001.

[16]赵培培,鲁明勇. 新基建与旅游业的关联研究[C]// 中国旅游研究院. 2023中国旅游科学年会论文集(下). 吉首大学;, 2023: 9. DOI:10.26914/c.cnkihy.2023.078576.

[17]陶旭文,肖诚,谷余等. 南岳虚拟旅游系统设计 [J]. 旅游与摄影, 2023, (07): 74-76.

[18]王婷. 数字化背景下景区智慧旅游系统游客使用意愿影响机制研究 [J]. 旅游纵览, 2023, (01): 35-39.

[19]Cheng F . Talent Recruitment Management System for Small and Micro Enterprises Based on Springboot Framework [J]. Advances in Educational Technology and Psychology, 2021, 5 (2):

[20]莫晶,裴大容. 基于微信小程序的旅游系统的实现 [J]. 电脑编程技巧与维护, 2020, (07): 55-57. DOI:10.16184/j.cnki.comprg.2020.07.020.

致谢

在完成本论文的过程中,我要由衷感谢所有支持和帮助我的人。首先,我要感谢我的指导教练,他们给予了我宝贵的指导和建议,帮助我顺利完成研究工作。他们的专业知识和经验对我产生了深远的影响。此外,我要感谢我的家人和朋友,他们在我整个研究过程中给予了我无尽的鼓励和支持。他们相信我能够克服困难、坚持不懈地追求目标,这让我时刻保持积极向上的心态。最重要的是,我要感谢自己。在研究的过程中,我遇到了各种挑战和困难,但我从未放弃,始终保持着坚定的信念和努力的精神。正是这种勇气和毅力使我能够完成这项研究工作,并取得了令人满意的成果。

通过这次研究,我学到了很多知识和技能,也收获了自信和成长。我相信,只要我坚持努力和持续学习,就能够实现更大的成就和突破。因此,我将继续努力,为自己的梦想奋斗,成为一个有影响力和价值的人。最后,我再次向所有支持和帮助过我的人表示深深的感谢。你们的支持是我前进的动力,我会铭记于心,并用更好的成绩回报你们的期望和信任。谢谢!

点赞+收藏+关注  →私信领取本源代码、数据库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值