# 63-航班订票系统 - 功能说明
# 项目概述
航班订票系统是一个集航班查询、在线订票、订单管理于一体的综合性Web应用系统。采用前后端分离架构,基于Vue 3和Spring Boot技术栈,为用户提供便捷的航班查询和机票预订服务。系统支持多航空公司、多机场、多航线的航班信息管理,提供经济舱、商务舱、头等舱三种舱位选择,实现从航班查询、座位选择、乘客信息填写到订单支付的完整预订流程。
# 项目概览
# ✨ 创新点
# 1. 专业的航空业务体系
- 五大航空公司支持:中国国航、南方航空、东方航空、海南航空、四川航空,覆盖主流航司。
- 十大城市机场覆盖:北京、上海、广州、成都、深圳、西安、杭州、南京、武汉、长沙,航线网络完善。
- 航班班次管理:支持同一航班不同日期、不同时段的班次管理,价格灵活调整。
- 三种舱位体系:经济舱、商务舱、头等舱,满足不同需求的旅客。
# 2. 完善的座位管理系统
- 座位实时状态:可选、已占用、已锁定三种状态,实时更新座位可用性。
- 座位号精细管理:每个航班班次自动生成座位号(如1A、1B、2A等),便于选座。
- 多乘客订票支持:一个订单可预订多个座位,支持团队出行。
- 座位类型关联:座位与舱位类型绑定,价格自动匹配。
# 3. 智能化订单管理
- 订单号自动生成:采用唯一订单编号,便于订单追踪和管理。
- 订单状态流转:待支付→已支付→已取消,状态清晰可追溯。
- 乘客信息管理:支持多乘客信息录入,姓名、身份证号、乘客类型(成人/儿童/婴儿)完整记录。
- 联系人信息:订单记录联系人姓名和电话,便于航司通知航班变动。
# 4. 灵活的航班查询机制
- 多维度查询:支持按出发城市、到达城市、航班日期、航空公司等条件查询。
- 价格展示:经济舱、商务舱、头等舱价格一目了然,方便价格对比。
- 剩余座位提示:实时显示可用座位数,避免无效预订。
- 航班状态标识:正常、延误、取消等状态实时展示。
# 5. 技术架构先进性
- 前后端分离:Vue 3前端+Spring Boot后端,职责清晰,开发高效。
- JWT认证:基于Token的无状态认证,安全可靠。
- MyBatis Plus ORM:简化数据库操作,提高开发效率。
- 响应式布局:Element Plus组件库,适配多端设备。
# ✨ 项目亮点
# 一、业务功能亮点
- 完整的订票业务闭环:从航班查询、座位选择、乘客信息填写、订单确认到支付,流程完整。
- 真实的航空业务模型:航空公司、机场、航班、班次、座位五层结构,贴近真实业务场景。
- 灵活的价格体系:同一航班不同日期、不同时段、不同舱位价格独立设置,支持动态定价。
- 多场景适配:个人出行、家庭出行、团队出行等多种订票场景全覆盖。
- 用户反馈机制:用户可对订单、航班服务提交反馈,管理员可回复处理,提升服务质量。
# 二、技术实现亮点
- 现代化前端技术栈:Vue 3.4 + Element Plus 2.8 + Vite 5.3,开发高效体验流畅。
- 稳定可靠的后端架构:Spring Boot 3.2 + MyBatis Plus 3.5,构建稳健后端服务。
- 完善的数据库设计:11张核心表,utf8mb4字符集,支持完整业务流程。
- 安全性设计:JWT Token认证、密码加密存储、接口权限控制。
- 数据完整性保证:外键索引、唯一性约束、状态管理确保数据准确性。
# 三、用户体验亮点
- 双端界面设计:
- 前台:水平导航,首页、航班查询、订票、订单管理、公告,简洁直观。
- 管理后台:侧边导航,功能集中,高效管理。
- 交互优化:
- 实时消息提示。
- 航班查询结果实时展示。
- 座位选择可视化。
- 订单状态实时更新。
- 数据可视化:管理后台提供统计报表,订单量、销售额、热门航线可视化展示。
- 移动端适配:响应式设计,支持手机、平板等多端访问。
# 管理员
# 系统管理
管理员管理:管理全部管理员账号,支持新增、编辑、删除、启用/禁用操作。
普通用户管理:管理全部用户账号,可修改用户信息、状态,支持重置密码、删除用户。
# 航空公司管理
航空公司管理:管理航空公司基本信息(代码、名称、logo、联系电话、公司简介),支持新增、编辑、删除。
航空公司查询:按代码、名称查询航空公司信息。
# 机场管理
机场信息管理:管理机场基本信息(三字码、机场名称、所在城市、所在省份、详细地址),支持新增、编辑、删除。
机场查询:按三字码、城市、省份查询机场信息。
# 航班管理
航班信息管理:管理航班基本信息(航班号、航空公司、出发机场、到达机场、机型、座位配置),支持新增、编辑、删除。
座位配置:设置总座位数、经济舱座位数、商务舱座位数、头等舱座位数。
航班查询:按航班号、航空公司、出发/到达机场查询航班信息。
# 航班班次管理
班次信息管理:管理航班班次(航班日期、起飞时间、到达时间、各舱位价格、剩余座位、状态),支持新增、编辑、删除。
价格设置:独立设置经济舱、商务舱、头等舱价格。
班次状态管理:设置班次状态(正常/延误/取消)。
班次查询:按航班、日期、状态查询班次信息。
# 座位管理
座位信息管理:管理航班班次的座位信息(座位号、座位类型、状态),支持批量生成、编辑、删除。
座位状态管理:设置座位状态(可选/已占用/已锁定)。
座位查询:按航班班次、座位类型、状态查询座位信息。
# 订单管理
订单信息管理:管理全部订单,查看订单详情(订单号、用户、航班班次、乘客数量、总价、联系人、状态)。
订单状态管理:修改订单状态(待支付/已支付/已取消)。
订单查询:按订单号、用户、航班、日期、状态查询订单。
订单统计:统计订单量、销售额、热门航线等数据。
# 乘客信息管理
订单乘客管理:查看订单关联的乘客信息(乘客姓名、身份证号、乘客类型、座位类型、票价)。
乘客信息查询:按订单、姓名、身份证号查询乘客信息。
# 公告管理
公告发布:发布系统公告(标题、内容),支持富文本编辑。
公告管理:编辑、删除公告。
公告查询:按标题、创建时间查询公告。
# 反馈管理
用户反馈查看:查看用户提交的反馈内容(用户、关联订单、反馈内容、状态)。
反馈回复:管理员回复用户反馈,更新反馈状态(待处理/已处理)。
反馈查询:按用户、订单、状态查询反馈。
# 普通用户
# 航班查询
航班搜索:
- 选择出发城市、到达城市
- 选择出发日期
- 选择航空公司(可选)
- 点击"查询航班"
查询结果展示:
- 航班号、航空公司
- 出发机场、到达机场
- 起飞时间、到达时间
- 机型、剩余座位
- 经济舱/商务舱/头等舱价格
- 航班状态(正常/延误/取消)
航班详情:查看航班详细信息,包括座位分布、价格明细。
# 在线订票
选择航班:从查询结果中选择合适的航班,点击"预订"。
选择座位:
- 查看座位分布图(可选座位高亮显示)
- 选择座位类型(经济舱/商务舱/头等舱)
- 选择座位号
- 支持选择多个座位
填写乘客信息:
- 乘客姓名
- 身份证号
- 乘客类型(成人/儿童/婴儿)
- 座位类型
- 票价(自动计算)
填写联系人信息:
- 联系人姓名
- 联系人电话
确认订单:
- 查看航班信息
- 查看乘客信息
- 查看总价
- 确认无误后提交订单
订单支付:
- 订单生成后,进入支付页面
- 选择支付方式(当前为模拟支付)
- 支付成功后,订单状态变为"已支付"
# 订单管理
我的订单:
- 查看全部订单
- 按状态筛选(待支付/已支付/已取消)
- 查看订单详情(航班信息、乘客信息、座位信息、支付信息)
订单操作:
- 待支付订单:去支付、取消订单
- 已支付订单:查看详情、申请退票(需联系管理员)
订单查询:按订单号、航班、日期查询订单。
# 个人中心
个人信息:修改个人信息(用户名、昵称、头像、手机号、邮箱、身份证号)。
修改密码:修改登录密码。
我的反馈:
- 提交反馈(反馈内容、关联订单)
- 查看反馈历史
- 查看管理员回复
# 公告浏览
公告列表:浏览系统公告、航班变动通知、优惠活动等信息。
公告详情:查看公告详细内容,支持富文本展示。
# 功能权限对照表
| 功能模块 | 管理员 | 普通用户 |
|---|---|---|
| 首页 | ✓ | ✓ |
| 管理员管理 | ✓ | - |
| 用户管理 | ✓ | - |
| 航空公司管理 | ✓ | - |
| 机场管理 | ✓ | - |
| 航班信息管理 | ✓ | - |
| 航班班次管理 | ✓ | - |
| 座位管理 | ✓ | - |
| 航班查询 | ✓ | ✓ |
| 在线订票 | - | ✓ |
| 订单管理(全部) | ✓ | - |
| 订单管理(个人) | - | ✓ |
| 乘客信息管理(全部) | ✓ | - |
| 公告管理 | ✓ | - |
| 公告浏览 | ✓ | ✓ |
| 反馈管理 | ✓ | - |
| 用户反馈 | - | ✓ |
| 个人信息 | ✓ | ✓ |
| 修改密码 | ✓ | ✓ |
# 订单状态说明
# 订单状态流转
- 待支付:订单已创建,等待用户支付
- 已支付:用户已完成支付,订单确认
- 已取消:用户取消订单或订单超时自动取消
# 座位状态
- 可选:座位未被占用,用户可选择
- 已占用:座位已被预订并支付,不可选择
- 已锁定:座位已被加入订单但未支付,暂时锁定(支付超时自动释放)
# 航班状态
- 正常:航班按时起飞
- 延误:航班延误,具体时间待定
- 取消:航班取消,不可预订
# 默认账号
# 管理员
用户名: admin
密码: admin
2
# 测试用户
用户名: user01
密码: 123456
昵称: 张三
身份证: 110101199001011234
用户名: user02
密码: 123456
昵称: 李四
身份证: 110101199002022345
用户名: user03
密码: 123456
昵称: 王五
身份证: 110101199003033456
2
3
4
5
6
7
8
9
10
11
12
13
14
# 核心业务流程
# 用户注册流程
1. 进入注册页面
2. 填写注册信息(用户名、密码、昵称、手机号、邮箱、身份证号)
3. 系统创建用户账号(状态:启用)
4. 跳转到登录页
2
3
4
# 航班查询流程
1. 进入首页或航班查询页面
2. 选择出发城市(如:北京)
3. 选择到达城市(如:上海)
4. 选择出发日期(如:2025-01-05)
5. 可选:选择航空公司
6. 点击"查询航班"
7. 系统展示符合条件的航班列表
8. 显示航班号、起飞时间、到达时间、价格、剩余座位等信息
2
3
4
5
6
7
8
# 订票支付流程
1. 从查询结果中选择合适的航班,点击"预订"
2. 进入座位选择页面
3. 选择座位类型(经济舱/商务舱/头等舱)
4. 选择座位号(支持多选)
5. 填写乘客信息:
- 乘客1:姓名、身份证号、乘客类型
- 乘客2:姓名、身份证号、乘客类型
- ...
6. 填写联系人信息(姓名、电话)
7. 系统自动计算总价(乘客数量 × 对应舱位价格)
8. 确认订单信息,点击"提交订单"
9. 生成订单号,订单状态:待支付
10. 跳转到支付页面,选择支付方式
11. 支付成功,订单状态变为"已支付"
12. 座位状态从"已锁定"变为"已占用"
13. 航班剩余座位数减少
14. 用户可在"我的订单"中查看订单详情
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 订单取消流程
1. 进入"我的订单"页面
2. 找到待支付的订单
3. 点击"取消订单"
4. 确认取消操作
5. 订单状态变为"已取消"
6. 已锁定的座位释放,状态变为"可选"
7. 航班剩余座位数恢复
2
3
4
5
6
7
# 用户反馈流程
1. 进入"个人中心"-"我的反馈"
2. 点击"提交反馈"
3. 选择关联订单(可选)
4. 填写反馈内容(如:航班延误、服务问题等)
5. 提交反馈,状态:待处理
6. 管理员在后台查看反馈
7. 管理员填写回复内容
8. 反馈状态变为"已处理"
9. 用户可查看管理员回复
2
3
4
5
6
7
8
9
# 航班班次管理流程
1. 管理员进入"航班班次管理"
2. 选择航班(如:CA1234 北京-上海)
3. 添加班次:
- 航班日期:2025-01-10
- 起飞时间:08:00
- 到达时间:10:30
- 经济舱价格:680元
- 商务舱价格:1580元
- 头等舱价格:3200元
- 剩余座位:180(根据航班座位配置)
- 状态:正常
4. 系统自动为该班次生成座位(根据航班座位配置)
5. 座位号自动分配(1A、1B、1C...),状态:可选
6. 班次信息保存成功,用户可查询到该航班
2
3
4
5
6
7
8
9
10
11
12
13
14
# 技术说明
# 系统架构
- 前端:Vue 3.4.29 + Element Plus 2.8.4 + Vite 5.3.1
- 后端:Spring Boot 3.2.10 + MyBatis Plus 3.5.6
- 数据库:MySQL 5.7+
- 认证:JWT Token
# 访问地址
- 后端API:http://localhost:1000
- 前端页面:http://localhost:5173(开发环境)
# 数据库
- 数据库名:a_63_flight_booking_system
- 字符集:utf8mb4
- 总表数:11张表
# 核心表说明
- admin:管理员表
- user:普通用户表
- airline:航空公司表(代码、名称、logo、联系电话、简介)
- airport:机场表(三字码、名称、城市、省份、地址)
- flight:航班信息表(航班号、航空公司、出发机场、到达机场、机型、座位配置)
- flight_schedule:航班班次表(航班日期、起飞时间、到达时间、价格、剩余座位、状态)
- seat:座位表(航班班次、座位号、座位类型、状态)
- order_info:订单表(订单号、用户、航班班次、乘客数量、总价、联系人、状态、支付时间)
- order_passenger:订单乘客表(订单、座位、乘客姓名、身份证、乘客类型、座位类型、票价)
- announcement:公告表(标题、内容、创建时间)
- feedback:用户反馈表(用户、订单、反馈内容、管理员回复、状态)
# 系统特色
# 航班管理特色
- 真实的航空业务模型:航空公司→机场→航班→班次→座位五层结构,完整还原真实业务
- 灵活的班次管理:同一航班可设置不同日期、不同时段的班次,价格独立设置
- 三舱位价格体系:经济舱、商务舱、头等舱价格分别管理,满足不同需求
- 座位精细化管理:每个班次座位独立生成,座位号、座位类型、状态一目了然
# 订票服务特色
- 完整的订票流程:航班查询→座位选择→乘客信息→订单确认→支付,流程顺畅
- 多乘客订票支持:一个订单可预订多个座位,支持家庭、团队出行
- 实时座位查询:座位状态实时更新,避免超售
- 订单状态追踪:待支付→已支付→已取消,状态清晰可查
# 用户体验特色
- 直观的查询界面:出发城市、到达城市、日期三要素,快速查询
- 清晰的价格展示:三种舱位价格对比展示,方便选择
- 座位可视化选择:座位分布图展示,可选座位高亮,直观选择
- 订单详情完整:航班信息、乘客信息、座位信息、支付信息全面展示
# 数据管理特色
- 航班数据完整:5家航空公司、10个机场、13条航线,数据丰富
- 班次数据真实:未来7天航班班次,每日多班,贴近真实场景
- 价格数据合理:根据航线距离、舱位等级,价格区间合理
- 订单数据规范:订单号唯一、乘客信息完整、状态管理规范
# 反馈机制特色
- 用户反馈渠道:用户可提交反馈,关联订单,描述问题
- 管理员回复功能:管理员可查看反馈,填写回复,更新状态
- 反馈状态管理:待处理、已处理状态清晰,问题闭环管理
# 项目优势
# 1. 业务模型真实完整
- 五层业务结构:航空公司→机场→航班→班次→座位,完整还原真实航空订票业务
- 三舱位体系:经济舱、商务舱、头等舱,满足不同需求旅客
- 多乘客支持:一个订单支持多人预订,适合家庭、团队出行
- 完整的订票流程:查询、选座、填写信息、确认、支付,流程完整
# 2. 数据设计规范合理
- 11张核心表:覆盖航空公司、机场、航班、班次、座位、订单、乘客、公告、反馈等全部业务
- 外键索引完善:flight_id、schedule_id、user_id等外键索引,保证数据完整性
- 唯一性约束:航空公司代码、机场三字码、航班号、订单号等唯一性约束,避免重复
- 状态管理规范:订单状态、座位状态、航班状态清晰定义,流转规范
# 3. 技术实现先进
- 前后端分离:Vue 3前端 + Spring Boot后端,开发效率高,维护方便
- MyBatis Plus增强:简化数据库操作,提供代码生成器,快速开发
- JWT认证:基于Token的无状态认证,保障账户安全
- 响应式设计:适配手机、平板、电脑,多端访问流畅
# 4. 用户体验优秀
- 操作简单:界面清晰,流程顺畅,新手也能快速上手
- 实时反馈:座位状态、订单状态实时更新,信息及时
- 多端适配:手机端、PC端都能流畅使用
- 数据可视化:管理后台提供订单统计、热门航线分析等可视化功能
# 5. 扩展性强
- 支持多航司:航空公司表独立管理,方便新增航司
- 支持多机场:机场表独立管理,方便新增航线
- 支持多舱位:舱位类型可扩展,如超级经济舱、豪华商务舱等
- 支持多支付:支付方式可扩展,如微信、支付宝、银联等