(免费领源码)基于SpringBoot的机票订票管理系统的设计与实现37612-计算机毕设JAVA、PHP、python、爬虫、APP、小程序、C# 、C++、数据可视化、大数据、全套文案

部署运行你感兴趣的模型镜像

摘要

科技进步的飞速发展引起人们日常生活的巨大变化,电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用。信息时代的到来已成为不可阻挡的时尚潮流,人类发展的历史正进入一个新时代。在现实运用中,应用软件的工作规则和开发步骤,采用SpringBoot技术建设机票订票管理系统。

本设计主要实现集人性化、高效率、便捷等优点于一身的机票订票管理系统,完成公共管理、用户管理、资讯管理、航班信息、订单信息、退票信息、机型信息等功能模块。系统通过浏览器与服务器进行通信,实现数据的交互与变更。本系统通过科学的管理方式、便捷的服务提高了工作效率,减少了数据存储上的错误和遗漏。机票订票管理系统使用Java语言,采用SpringBoot技术进行开发,使用MyEclipse编译器编写。数据存储方面,可以选择微软的MySQL关系型数据库作为数据存储媒介。同时,配合前台的HTML+CSS技术,完成系统的开发。通过科学的管理方式和便捷的服务,该机票订票管理系统可以提高工作效率,减少数据存储上的错误和遗漏。它将成为一个高效且方便使用的工具,帮助用户更便捷地在线浏览并订票机票信息。

关键词:机票订票管理系统;Java语言;SpringBoot框架;MySQL数据库

Abstract

The rapid development of technological progress has caused tremendous changes in people's daily lives, and the rapid development of electronic information technology has popularized and applied the application level of electronic information technology in various fields. The arrival of the information age has become an unstoppable fashion trend, and the history of human development is entering a new era. In practical applications, the working rules and development steps of the application software are used to build a ticket booking management system using SpringBoot technology.

This design mainly implements a ticket booking management system that combines the advantages of humanization, high efficiency, and convenience, completing functional modules such as public management, user management, information management, flight information, order information, refund information, and aircraft type information. The system communicates with the server through a browser to achieve data exchange and change. This system improves work efficiency and reduces errors and omissions in data storage through scientific management and convenient services. The flight reservation management system is developed using Java language, SpringBoot technology, and MyEclipse compiler. In terms of data storage, Microsoft's MySQL relational database can be chosen as the data storage medium. At the same time, cooperate with the front-end HTML+CSS technology to complete the system development. Through scientific management methods and convenient services, the ticket booking management system can improve work efficiency and reduce errors and omissions in data storage. It will become an efficient and convenient tool to help users browse and book flight information online more conveniently.

Keywords: Flight reservation management system; Java language; SpringBoot 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.1.4功能需求分析

2.1.5非功能性需求分析

2.3系统用例分析

2.4 系统流程分析

2.4.1数据增加流程

2.4.2数据修改流程

2.4.3数据删除流程

第3章 系统设计

3.1系统功能模块设计

3.2数据库设计

3.2.1数据库概念结构设计

3.2.2数据库逻辑结构设计

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

4.1系统首页模块

4.2登录模块

4.3注册模块

4.4密码修改模块

4.5新闻资讯模块

4.6航班信息模块

4.8用户个人中心模块

4.9用户管理模块

4.10机型信息管理模块

第5章 系统测试

5.1测试的目的

5.2系统部分测试

5.3系统测试结果

第6章 结语

参考文献

结束语

第1章 引 言

1.1选题背景及意义

随着全球订票业的快速发展和航空运输的普及,人们对飞机票订票管理系统的需求逐渐增加。传统的机票订票方式通常需要到航空公司的售票处或订票社实体店面进行订票,这不仅需要消耗大量的时间和精力,还存在着信息不及时、订票不便捷等问题。而随着互联网的普及和电子商务技术的成熟,许多航空公司和订票网站纷纷推出了在线机票订票服务,实现了机票订票的自主化和便捷化。

机票订票管理系统作为一种新型的订票工具,可以为航空公司、订票社和旅客提供更加高效和便捷的服务。通过该系统,航空公司可以实现航班信息的实时更新和管理、座位订票的自动化处理、机票销售的电子化等功能,提高运营效率和服务品质;订票社可以将航空公司的航班信息整合到自己的平台上,实现机票产品的推广和销售;旅客则可以通过网络随时查询航班信息、比较价格、订票机票,实现自主选择和购买。

然而,目前市面上的机票订票管理系统仍存在一些问题和不足,如界面设计不够友好、性能表现不稳定、功能模块单一等,导致用户体验不佳、操作繁琐等情况。因此,对机票订票管理系统的研究和优化具有重要的实际意义和发展潜力。

对机票订票管理系统进行深入研究和优化,具有重要的实际意义和发展潜力。优化机票订票管理系统的设计和功能,可以实现航空公司和订票社的业务流程自动化和管理效率的提升,为旅客提供更加高效和便捷的订票服务。通过改进系统的界面设计和功能模块,提升用户体验和操作便捷性,减少用户在订票过程中的困扰和误操作,提高用户满意度和忠诚度。完善机票订票管理系统的功能和服务,增加系统的灵活性和可扩展性,可以吸引更多的航空公司和订票社接入,扩大平台的覆盖范围和市场份额。

1.2国内外研究概况

随着互联网的发展,机票订票已成为航空运输行业的重要一环。机票订票管理系统的研究和开发,已在国内外各大航空公司和订票社广泛应用。

国内方面,中国国航、南方航空、东方航空等大型航空公司早在2000年左右就开始使用机票订票管理系统。通过该系统,旅客可以在网上查询航班信息、选择航班、订票机票,并且可以在线完成支付和退改签操作。该系统有效提高了出行的便利性和效率,而且也为航空公司提供了更好的管理和运营手段。

国外方面,美国的航空公司也积极推行机票订票管理系统。美国联合航空、达美航空等航空公司已经建立起了覆盖全球的机票订票系统。这些系统不仅提供了机票订票服务,还提供了订票规划、航班订票、租车服务等一站式订票解决方案。通过该系统,用户可以方便地查找最佳的航班和住宿方案,节省时间和精力。

综上所述,机票订票管理系统已成为航空运输行业不可或缺的一部分。通过该系统,旅客可以方便地查询、订票机票,同时航空公司也能够更好地管理和运营业务。随着技术的进一步发展,机票订票管理系统还有很大的改进和创新空间,可以进一步提升订票体验和服务质量。因此,对机票订票管理系统的研究和应用具有重要的意义。

1.3论文结构安排

论文将分层次经行编排,除去论文摘要致谢文献参考部分,正文部分还会对系统需求做出分析,以及阐述大体的设计和实现的功能,最后罗列部分调测记录,论文主要架构如下:

第1章 交代项目的背景、开发这个系统的现状以及论文相关章节安排情况。

第2章 对系统的具体需求展开分析。

第3章 阐述了系统的设计,其中涵盖了功能设计以及数据库的设计。

第4章 阐明了机票订票管理系统各个功能模块的实现,以图文的形式进行展示。

第5章 罗列了部分系统调试与测试的记录。

第6章 结论。

第2章 系统需求分析

2.1系统可行性分析

2.1.1技术可行性分析

机票订票管理系统在数据的存储上使用的MySQL数据库,在机票订票管理系统开发中使用了Java、HTML、Tomcat、SpringBoot这些开发工具的使用,能够给我们的编写工作带来许多的便利。系统使用B/S模式进行开发,使系统的可扩展性和维护性更佳,减少系统配置代码,简化编程代码,目前B/S模式是目前最受欢迎的一种模式

2.1.2经济可行性分析

在开发机票订票管理系统中所使用的开发软件像IDEA开发工具、Tomcat服务器、MySQL数据库等,这些都是开源免费的,这些环境在学校都进行了系统的学习,自己能够独立操作完成,不需要额外花费,而且系统的开发工具从网上都可以直接下载,因此在经济方面是可行的。

2.1.3操作可行性分析

此次项目设计的时候我参考了很多类似系统的成功案例,对它们的操作界面以及功能都进行了系统的分析,将众多案例结合在一起,突出以人为本简化操作,所以具有基本计算机知识的人都会操作本项目。因此操作可行性也没有问题。

2.2系统需求分析

2.1.4功能需求分析

机票订票管理系统将提供以下功能:用户可以通过系统浏览航班信息、查看公告通知新闻资讯,并进行订票和点赞、收藏评论等操作。管理员则可以管理系统用户对系统的轮播图公告通知新闻资讯信息进行管理,还可以对前台展示的航班信息以及相关的订单信息、退票信息、机型信息等内容进行管理。系统旨在提升航班管理效率、用户订票体验和竞争力。具体如下:

普通用户端:

(1)首页:展示航班信息和推荐内容,包括航班编号、航空公司、航班类型、出发地点、出发时间、预计时长、终点名称、飞机型号、机票数量、机票价格等,吸引用户浏览和订票

(2)公告通知:浏览航班最新的活动、优惠和特别公告,方便用户参与和了解航班的相关信息。

(3)新闻资讯:查看航班相关的新闻、文章和订票指南等,为用户提供有用的订票建议和信息。

4航班信息:浏览各类航班的详细信息,包括航班编号、航空公司、航班类型、出发地点、出发时间、预计时长、终点名称、飞机型号、机票数量、机票价格、航班详情等信息,可以进行订票、点赞、收藏、评论等,帮助用户选择合适的航班并订票

(5)我的账户:在前台点击“我的”下面的“我的账户”可以对个人资料+密码修改进行管控。

(6)个人中心:普通用户在前台点击“个人中心”可以对个人首页、订单信息、退票信息和自己收藏的信息进行管理。

管理员端:

(1)轮播图:管理首页轮播图的展示内容和顺序,包括上传、删除和调整轮播图图片,提供优质的用户体验和视觉效果。

(2)公告通知:发布和编辑航班公告通知,包括活动内容、时间、地点和参与方式等,吸引用户参与和提高活动效果

3用户管理:管理系统的用户账号,包括添加、编辑和删除管理员普通用户,确保系统安全和权限管理。

4资讯管理:发布和编辑航班相关的新闻、文章和订票指南,提供有价值的信息给用户,增加用户粘性和满意度。

5航班信息:管理具体航班的详细信息,包括航班编号、航空公司、航班类型、出发地点、出发时间、预计时长、终点名称、飞机型号、机票数量、机票价格、航班详情等信息,确保准确的航班管理和订票管控

6订票信息:查看和处理用户订票信息,包括审核、确认、调整和退票等操作,确保订票流程的顺利进行。

7退票信息:查看和处理用户退票信息,包括审核、退款处理和记录退票信息原因等,及时解决退票事宜并保障用户权益。

(8)机型信息:管理员可以对航班飞机信息所属的机型信息进行添加、修改。

2.1.5非功能性需求分析

机票订票管理系统的非功能性需求比如机票订票管理系统的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等。具体可以表示在如下2.1表格中:

2.1 机票订票管理系统非功能需求表

安全性

主要指机票订票管理系统数据库的安装,数据库的使用和密码的设定必须合乎规范。

可靠性

可靠性是指机票订票管理系统能够安装用户的指示进行操作,经过测试,可靠性90%以上。

性能

性能是影响机票订票管理系统占据市场的必要条件,所以性能最好要佳才好。

可扩展性

比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。

易用性

用户只要跟着机票订票管理系统的页面展示内容进行操作,就可以了。

可维护性

机票订票管理系统开发的可维护性是非常重要的,经过测试,可维护性没有问题

2.3系统用例分析

机票订票管理系统中用户角色用例图如图2.1所示:

图2.1用户角色用例图

机票订票管理系统中管理员用例图如图2.2所示:

图2.2 管理员用例图

2.4 系统流程分析

数据流程分析是对机票预订管理系统中信息的流动和处理过程进行评估和描述。通过构建数据流图和数据字典,明确数据从输入到输出的路径,以及各个处理步骤和数据存储的关系。这有助于理解平台的功能和业务流程,并为系统设计和开发提供指导。

2.4.1数据增加流程

用户成功登入系统后能够实现增加数据的操作,增加数据的编号是特定的,系统生成,用户不能随意填写,除了编号以外,其他增加信息用户自己填写,填写后的信息经过系统验证,验证合法通过就显示增加数据成功了,相反的话,就没有增加成功,图2.3显示的就是在增加数据时的流程。

图2.3 数据增加流程图

2.4.2数据修改流程

数据修改时的流程和上面介绍的数据增加时的流程差不多,如图2.4所示。

图2.4 数据修改流程图

2.4.3数据删除流程

如果系统里面存在一些没有用的数据的话相关的管理人员还可以对这些数据进行删除,图2.5就是数据删除时的流程图。

图2.5 数据删除流程图

第3章系统设计

3.1系统功能模块设计

机票订票管理系统总体分为前台用户模块和后台管理员模块。

两个模块表现上是分别独立存在,但是访问的数据库是一样的。每一个模块的功能都是根据先前完成的需求分析,并查阅相关资料后整理制作的。

综上所述,系统功能结构图如下图所示。

图3.1 机票订票管理系统功能模块图

3.2数据库设计

数据库的设计承载者系统的各种数据,在建立数据库的时候,主要是数据库模型的设计以及各个数据库表的设计两部分。

3.2.1数据库概念结构设计

下面是整个机票订票管理系统中主要的数据库表总E-R实体关系图。

图3.2 机票订票管理系统总E-R关系图

3.2.2数据库逻辑结构设计

通过前面E-R关系图可以看到项目需要创建很多个数据表。以下是项目中的主要数据库表的关系模型:

表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

更新时间:

表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:

表flight_information (航班信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

flight_information_id

int

10

0

N

Y

航班信息ID

2

flight_number

varchar

64

0

Y

N

航班编号

3

cover_photo

varchar

255

0

Y

N

封面图片

4

airlines

varchar

64

0

Y

N

航空公司

5

flight_type

varchar

64

0

Y

N

航班类型

6

departure_location

varchar

64

0

Y

N

出发地点

7

departure_time

datetime

19

0

Y

N

出发时间

8

estimated_duration

varchar

64

0

Y

N

预计时长

9

end_point_name

varchar

64

0

Y

N

终点名称

10

aircraft_model

varchar

64

0

Y

N

飞机型号

11

number_of_air_tickets

int

10

0

Y

N

0

机票数量

12

air_ticket_prices

int

10

0

Y

N

0

机票价格

13

flight_details

longtext

2147483647

0

Y

N

航班详情

14

praise_len

int

10

0

N

N

0

点赞数

15

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

16

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表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:

表model_information (机型信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

model_information_id

int

10

0

N

Y

机型信息ID

2

order_code

varchar

64

0

Y

N

机型名称

3

model_and_model

varchar

64

0

Y

N

机型型号

4

affiliated_company

varchar

64

0

Y

N

所属公司

5

parking_location

varchar

64

0

Y

N

停放地点

6

model_details

varchar

64

0

Y

N

机型详情

7

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表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

更新时间:

表order_information (订单信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

order_information_id

int

10

0

N

Y

订单信息ID

2

flight_number

varchar

64

0

Y

N

航班编号

3

airlines

varchar

64

0

Y

N

航空公司

4

flight_type

varchar

64

0

Y

N

航班类型

5

booking_users

int

10

0

Y

N

0

订票用户

6

booking_time

datetime

19

0

Y

N

订票时间

7

air_ticket_prices

varchar

64

0

Y

N

机票价格

8

booking_quantity

int

10

0

Y

N

0

订票数量

9

booking_status

varchar

64

0

Y

N

订票状态

10

total_price

varchar

64

0

Y

N

合计总价

11

note_details

text

65535

0

Y

N

备注详情

12

pay_state

varchar

16

0

N

N

未支付

支付状态

13

pay_type

varchar

16

0

Y

N

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

14

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

15

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已取消

表refund_information (退票信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

refund_information_id

int

10

0

N

Y

退票信息ID

2

flight_number

varchar

64

0

Y

N

航班编号

3

airlines

varchar

64

0

Y

N

航空公司

4

flight_type

varchar

64

0

Y

N

航班类型

5

refund_user

int

10

0

Y

N

0

退票用户

6

ticket_refund_time

datetime

19

0

Y

N

退票时间

7

reason_for_refund

varchar

64

0

Y

N

退票原因

8

refund_status

varchar

64

0

Y

N

退票状态

9

refund_remarks

text

65535

0

Y

N

退票备注

10

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

11

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表registered_users (注册用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

registered_users_id

int

10

0

N

Y

注册用户ID

2

user_name

varchar

64

0

Y

N

用户名称

3

user_gender

varchar

64

0

Y

N

用户性别

4

user_age

int

10

0

Y

N

0

用户年龄

5

examine_state

varchar

16

0

N

N

已通过

审核状态

6

user_id

int

10

0

N

N

0

用户ID

7

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

8

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

更新时间:

表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系统首页界面图

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.2所示。

图4.3 注册界面图

登录的逻辑代码如下所示。

/**

     * 登录

     * @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.select(map, new HashMap<>()).getResultList();

        }

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

            map.put("email", email);

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

        }

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

            map.put("phone", phone);

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

        }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.select(groupMap, new HashMap<>()).getResultList();

        if (groupList.size()<1){

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

        }

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

        //查询用户审核状态

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

            String sql = "select examine_state from "+ userGroup.getSourceTable() +" WHERE user_id = " + byUsername.getUserId();

            String res = String.valueOf(service.runCountSql(sql).getSingleResult());

            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());

            tokenService.save(accessToken);

            // 返回用户信息

            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.4密码修改模块

用户使用该系统注册完成后,用户对登录密码有修改需求时,系统也可以提供用户修改密码权限。系统中所有的操作者能够变更自己的密码信息,执行该功能首先必须要登入系统,然后选择密码变更选项以后在给定的文本框中填写初始密码和新密码来完成修改密码的操作。在填写的时候,假如两次密码填写存在差异,那么此次密码变更操作失败。 界面如下图所示。

图4.4 密码修改界面图

密码修改代码如下:

    /**

     * 修改密码

     * @param data

     * @param request

     * @return

     */

    @PostMapping("change_password")

    public Map<String, Object> change_password(@RequestBody Map<String, String> data, HttpServletRequest request){

        // 根据Token获取UserId

        String token = request.getHeader("x-auth-token");

        Integer userId = tokenGetUserId(token);

        // 根据UserId和旧密码获取用户

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

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

        query.put("user_id" ,String.valueOf(userId));

        query.put("password" ,service.encryption(o_password));

        int count = service.selectBaseCount(service.count(query, service.readConfig(request)));

        if(count > 0){

            // 修改密码

            Map<String,Object> form = new HashMap<>();

            form.put("password",service.encryption(data.get("password")));

            service.update(query,service.readConfig(request),form);

            return success(1);

        }

        return error(10000,"密码修改失败!");

    }

4.5新闻资讯模块

新闻资讯:查看航班相关的新闻、文章和订票指南等,为用户提供有用的订票建议和信息。界面如下图所示。

图4.5 新闻资讯界面图

查询新闻资讯关键代码如下:

   @RequestMapping("/get_list")

    public Map<String, Object> getList(HttpServletRequest request) {

        Map<String, Object> map = service.selectToPage(service.readQuery(request), service.readConfig(request));

        return success(map);

    }

4.6航班信息模块

航班信息:浏览各类航班的详细信息,包括航班编号、航空公司、航班类型、出发地点、出发时间、预计时长、终点名称、飞机型号、机票数量、机票价格、航班详情等信息,可以进行订票、点赞、收藏、评论等,帮助用户选择合适的航班进行订票。航班信息界面如下图所示。

图4.6 航班信息界面图

订票信息提交界面如下图所示。

图4.7 订票信息提交界面图

4.8用户个人中心模块

前台用户个人中心:可以查看和管理个人相关的信息和任务,可以对包括个人首页、订单信息、退票信息、收藏等信息进行管理。

个人中心界面如下图所示。

图4.8个人中心界面图

4.9用户管理模块

用户管理:管理系统的用户账号,包括添加、编辑和删除管理员和普通用户,确保系统安全和权限管理。界面如下图所示。

图4.9系统用户管理界面图

4.10机型信息管理模块

管理员执行机型信息管理,在“机型信息管理”一栏可查看机型信息描述等信息,管理员可进行添加、重置或删除等相应操作。机型信息管理界面如下图所示。

图4.10机型信息管理界面图

第5章 系统测试

5.1测试的目的

通过前面章节的介绍,我们可以看到机票订票管理系统已经完成了,但是能不能投入使用还是未知,因为在每个项目正式使用之前必须对开发的项目进行测试,如果不进行测试一旦投入使用可能会出现很多未可知的问题,比如使用人数太多导致系统瘫痪,比如某一功能存在bug信息填写错误等,这些错误将给使用者带来很多的困扰,甚至造成更大的损失,因此测试是项目投入使用的最后一步,为用户提供一个运行顺畅、完美的项目也就是我们进行最后测试的目的。

5.2系统部分测试

用户登录功能测试:

表5.1 用户登录功能测试表

测试名称

测试功能

操作过程

预期结果

测试结果

用户登录模块测试

用户登录成功的情况

点击前登录界面输入账号和密码分别输入admin和admin后点击“登录”按钮。

登录成功并调整到用户界面

正确

航班信息添加功能测试:

表5.2 航班信息添加功能测试表

测试名称

测试功能

操作过程

预期结果

测试结果

航班信息添加模块测试

航班信息添加成功的情况

在航班信息的页面中将点击添加,输入航班相关信息,输入正确的信息后然后点击“提交”按钮。

提示添加成功

正确

航班信息添加模块测试

航班信息添加失败的情况

在航班信息页面中不填写的航班名称,其他信息正常输入“提交”按钮。

提示“添加失败,信息不能为空”

正确

查询新闻资讯功能模块测试:

表5.3 查询新闻资讯功能测试表

测试名称

测试功能

操作过程

预期结果

测试结果

查询新闻资讯功能测试

查询成功的情况

在新闻资讯界面输入标题进行查询

查询成功

正确

订单信息添加功能测试:

表5.4 订单信息添加功能测试表

测试名称

测试功能

操作过程

预期结果

测试结果

订单信息添加模块测试

订单信息添加成功的情况

在订单信息添加管理的页面中,输入订单信息,输入正确的信息后然后点击“提交”按钮。

提示添加成功

正确

订单信息添加模块测试

订单信息添加失败的情况

在订单信息页面中不填写的订票时间,其他信息正常输入“提交”按钮。

提示“添加失败,信息不能为空”

正确

5.3系统测试结果

通过编写机票订票管理系统的测试用例,已经检测完毕用户的登录模块、航班信息添加模块、新闻资讯查询模块、订单信息添加模块的功能测试,在对以上功能得测试过程中,发现了系统中的很多漏送并进行了完善,经过多人在线进行测试,系统完全可以正常运行,当然在后期的维护中系统将不断完善。

第6章 结语

此时项目已经完成,即使实施的时间不是很长,但是这个过程中需要准备很长的一段时间去对系统设计开发所实际到的技术进行学习。在学习的过程中,我逐渐认识得到了我自身存在的一些不足。对于一些控制是必要的应用技能,能够理解,整个过程中仅仅是一个掌握了常用的性能和控制方法,我觉得挺容易的。从该系统中,系统的分析和设计的调查数据,并且已经经历了几个月,并努力几个月,该系统已经完成。很显然,该系统仍有很多不成熟,在系统设计过程中有许多技术缺陷存在。在设计的过程中也涉及到了很多自己无法解决的问题,主要通过找专业的网站和论坛来解决这些问题,对于圆满完成我的毕业设计,他们也贡献了很大一部分力量。系统的开发环境和配置都是可以自行安装的,系统使用SpringBoot开发技术和比较成熟的MySQL数据库进行对系统前台及后台的数据交互,根据技术语言对数据库,结合需求进行修改维护,可以使得系统运行更具有稳定性和安全性,从而完成实现系统的开发。

在以后的学习及工作中,我将继续努力学习计算机方面的技术,以期在平台开发中可以更好更快的实现需求功能。

参考文献

[1]Wang Q ,Ma Y ,Mao J , et al.Driving the implementation of hospital examination reservation system through hospital management.[J].BMC health services research,2024,24(1):44-44.

[2]张莹,王运霞,易超等.铁路企业差旅酒店预订系统数据治理技术研究[J].铁路计算机应用,2023,32(10):23-26.

[3]Pediatric Urgent Care Service Launches New Online Booking System for Enhanced Convenience[J].M2 Presswire,2023,

[4]王芬,罗春凤.Web Tours订票系统软件测试技术研究[J].科技与创新,2023,(18):14-17.DOI:10.15913/j.cnki.kjycx.2023.18.004.

[5]Farhan J ,Ashfaq Z K ,Shahzad R , et al.A Novel Energy-Efficient Reservation System for Edge Computing in 6G Vehicular Ad Hoc Network.[J].Sensors (Basel, Switzerland),2023,23(13):

[6]王志亮,纪松波.基于SpringBoot的Web前端与数据库的接口设计[J].工业控制计算机,2023,36(03):51-53.

[7]纪龙晨.基于深度学习的廉航客运需求预测系统的设计与实现[D].华东师范大学,2022.DOI:10.27149/d.cnki.ghdsu.2022.004873.

[8]张晶晶.航空票务管理网站开发与实现[J].现代信息科技,2022,6(20):26-30.DOI:10.19850/j.cnki.2096-4706.2022.20.007.

[9]江琳,张志强,贾静等.铁路客票系统云培训平台设计及应用[J].铁路计算机应用,2022,31(06):36-39.

[10]Flight bookings to the USA soar[J].M2 Presswire,2021,

[11]喻佳,吴丹新.基于SpringBoot的Web快速开发框架[J].电脑编程技巧与维护,2021,(09):31-33.DOI:10.16184/j.cnki.comprg.2021.09.013.

[12]陈盼.民航订票系统旅客信息动态脱敏方法研究[D].中国民航大学,2021.DOI:10.27627/d.cnki.gzmhy.2021.000497.

[13]林心达.基于民航旅客订票行为的潜在价值实证研究[D].上海财经大学,2021.DOI:10.27296/d.cnki.gshcu.2021.000435.

[14]王良升,刘小英.电影院订票系统的设计与实现[J].电脑编程技巧与维护,2021,(01):54-56.DOI:10.16184/j.cnki.comprg.2021.01.020.

[15]方兴林.线上机票预订业务中利益主体博弈关系及管理策略分析[J].中国民航飞行学院学报,2020,31(04):71-75+80.

[16]唐兴元.民航收益管理系统中的需求预测[D].中国科学院大学(中国科学院大学工程科学学院),2020.DOI:10.27983/d.cnki.ggckx.2020.000030.

[17]肖佩隆.航空订票系统的性能要求与测试分析[J].数码世界,2020,(04):65.

[18]朱程,景区门票线上预订管理系统V1.0.湖南省,湖南领先国际旅行社有限责任公司,2020-03-16.

[19]赵英明,张德栋,徐东平等.铁路客票发售与预订系统风险评估研究[J].铁道运输与经济,2020,42(01):72-76+83.DOI:10.16668/j.cnki.issn.1003-1421.2020.01.13.

[20]黄向东,解艳君.企业差旅订票系统设计与应用[J].中国管理信息化,2020,23(01):187-189.

结束语

至此论文结束,感谢您的阅读。在此我要特别的感谢我的导师,虽然我在实习期间很忙,论文撰写的时候经常是停停改改,但是我的导师依旧十分的负责,时不时的询问我的任务进展情况,跟进我的论文进度,在指导老师的帮助下,我逐步完成了自己的论文和程序,从导师身上也学习到很多知识和经验,这些知识和经验令我受益匪浅。同时我也从导师身上看到了自己的不足,不论是在技术层面上还是在对待工作的态度上,导师如同明镜一般照出了我的缺点我的不足。此外,我还要感谢在我实习期间在论文和程序上帮助过我的同学和社会人士,此前我对于SpringBoot框架方面的一些知识还不了解,是他们在我编写程序过程中给了我很多的启发和感想,也帮助了我对于程序的调试和检测。没有他们我是不能顺利完成本次毕业设计的。至此,我的毕业设计就画上了一个圆满的句号了。

免费领取项目源码,请关注❥点赞收藏并私信博主,谢谢!

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值