springboot  航班信息管理系统

摘  要

随着航空业的快速发展,航班信息管理系统的需求不断增加,尤其是在提升航空服务质量和航班管理效率方面具有重要意义。本文基于Spring Boot框架设计并实现了一款航班信息管理系统,该系统为用户提供了全面的航班查询、预订、改签、退票等功能,并为工作人员和管理员提供了高效的航班信息管理与统计分析工具。系统分为三类用户角色:普通用户、工作人员和管理员。普通用户可进行注册登录、查看和修改个人信息、浏览机场资讯、查询航班信息、预订机票、管理订单及查看系统消息等操作;工作人员负责管理航班信息、订单、机场和航空公司数据,同时进行信息统计和航班动态管理;管理员则具备对工作人员及系统资源进行管理的权限。系统采用Spring Boot框架与MySQL数据库结合,前端使用Vue.js进行展示,支持多种查询方式,并提供实时的航班动态、机场公告和航班统计报表等功能。通过系统的设计与实现,提高了航班信息管理的效率与用户体验,为航空公司和机场的运营提供了智能化的解决方案,具有广泛的应用价值。

关键词航班信息管理系统;Spring Boot框架;Vue.js;MySQL数据库

Abstract

With the rapid development of the aviation industry, the demand for flight information management systems continues to increase, especially in improving the quality of aviation services and flight management efficiency, which is of great significance. This article designs and implements a flight information management system based on the Spring Boot framework. The system provides users with comprehensive functions such as flight inquiry, booking, rescheduling, and ticket refund, and provides efficient flight information management and statistical analysis tools for staff and administrators. The system is divided into three types of user roles: regular users, staff, and administrators. Ordinary users can register, log in, view and modify personal information, browse news and information, check flight information, book tickets, manage orders, and view system messages; The staff is responsible for managing flight information, orders, airport and airline data, as well as conducting information statistics and flight dynamic management; Administrators have the authority to manage staff and system resources. The system adopts the Spring Boot framework combined with MySQL database, and uses Vue.js for front-end display. It supports multiple query methods and provides real-time flight dynamics, airport announcements, and flight statistics reports. Through the design and implementation of the system, the efficiency and user experience of flight information management have been improved, providing intelligent solutions for the operation of airlines and airports with wide application value.

Keywords: Flight Information Management System; Spring Boot framework; Vue.js; MySQL database

目 录

引  言

第一章  绪论

1.1 研究背景

1.2 研究意义

1.3 国内外研究现状

1.3.1 国内研究现状

1.3.2国外研究现状

1.4论文结构与章节安排

第二章  关键技术

2.1 Java

2.2 B/S模式

2.3 Spring Boot框架

2.4 MySQL

引  言

随着全球航空业的飞速发展,航班信息的高效管理和及时服务成为提升航空公司竞争力和优化旅客体验的关键因素。传统的航班信息管理往往依赖人工操作和单一的信息传递方式,存在着信息滞后、管理效率低以及用户体验不足等问题。随着信息技术的不断进步,尤其是云计算、大数据和物联网等技术的应用,现代航班信息管理系统朝着智能化、自动化和集成化方向发展,致力于提高航班调度、客流管理、票务服务等多个环节的工作效率,并为旅客提供更加便捷和实时的服务。

然而,当前许多航空公司和机场在航班信息管理上仍面临数据整合不及时、信息传递不准确、用户服务质量差等问题。因此,设计并开发一套高效、稳定、便捷的航班信息管理系统,对于解决这些问题具有重要意义。本研究提出了一种基于Spring Boot框架的航班信息管理系统,系统通过集成航班查询、机票预订、航班动态更新、订单管理等多个功能模块,不仅为用户提供便捷的航班查询与票务服务,也为工作人员提供高效的航班信息管理和统计分析工具。

在系统的设计与实现过程中,注重了系统架构的合理性和功能模块的清晰划分。系统采用Spring Boot框架作为后端开发平台,结合MySQL数据库进行数据存储,前端使用Vue.js进行展示,确保了系统的高效性、稳定性与良好的用户体验。为了满足不同用户角色的需求,系统设定了普通用户、工作人员和管理员三种角色,每个角色具有不同的功能权限,确保了系统的灵活性和可操作性。

本论文对系统的功能模块进行了详细描述,分析了其设计理念、实现过程及其运行效果,验证了该系统在实际应用中的可行性和价值。通过系统的实现,能够有效提升航班信息管理的效率,优化用户服务体验,并为航空公司和机场提供科学的运营数据支持。该系统的设计和实现不仅具有较高的应用价值,而且在未来具备广泛的扩展性和推广前景。

第一章  绪论

1.1 研究背景

随着全球航空运输业的蓬勃发展,航空公司和机场的运营面临着越来越复杂的管理挑战。航空业涉及到航班调度、票务管理、旅客服务、航班动态监控等多个方面,这些工作往往需要高效的信息管理系统来支撑。然而,传统的航班信息管理方式多依赖人工操作或较为陈旧的技术手段,存在数据处理滞后、信息孤岛、服务响应缓慢等问题,无法满足现代航空服务对高效率和精确度的需求。

近年来,随着信息技术的进步,尤其是互联网技术和大数据分析的迅猛发展,航空业开始逐步引入智能化、数字化的管理手段[1]。航班信息管理系统作为航空业数字化转型的重要组成部分,承载着航班查询、机票预订、订单管理、航班动态更新等核心功能,是提升服务质量、优化运营流程、减少管理成本的重要工具。现代航班信息管理系统的设计和实现,不仅要解决基础的航班信息存储和查询问题,还要满足多元化的用户需求,提供实时的数据分析和决策支持功能,帮助航空公司和机场高效调度资源和优化服务[2]。

1.2 研究意义

航班信息管理系统的研究具有重要的理论价值和实践意义。随着航空业的快速发展,传统的人工管理模式和单一的信息系统已无法满足现代航空公司和机场在航班调度、票务管理等方面日益增长的需求。通过设计和实现高效、智能的航班信息管理系统,不仅能够提升航空公司和机场的管理效率,减少人工干预,提高信息处理的准确性,还能改善用户体验,使乘客能够实时获取航班动态、便捷地进行机票预订和退改签等操作,从而提高满意度并降低投诉。系统还通过数据分析提供决策支持,帮助航空公司优化资源调配和价格策略,实现精确的市场预测。此外,系统的开发和应用推动了航空行业信息化和智能化的进程,促进了航空公司和机场的数字化转型。综上所述,该研究不仅为航空业的信息管理提供了新的技术框架和实践经验,还能推动学术研究与产业应用的结合,为行业的发展提供理论支持和技术指导,具有广泛的应用前景和深远的社会价值[3]。

1.3 国内外研究现状

1.3.1 国内研究现状

随着我国民航事业的快速发展,航班信息管理系统在保障航班安全、提高效率及优化乘客体验方面起到了至关重要的作用。国内的研究重点主要集中在航班号管理、航班时刻管理以及乘客指引系统的智能化与自动化上。吴鹏(2024)在《民航管理》一文中指出,航班号管理是确保航空运输顺利进行的重要环节,然而随着我国民航飞行流量的急剧增长,航班号冲突问题日益显著。这一问题不仅影响了飞行指挥的准确性,还增加了误操作的风险,尤其是在同一管制区域内,机组人员与空管员之间可能出现“误听、误发”的情况,从而影响航班的正常运行和航空安全。吴鹏提出了改进航班号管理系统的建议,强调了增强信息系统智能化和自动化的重要性,以减少人为干预和冲突的可能性[4]。另一方面,殷悦等(2024)在《电脑知识与技术》上讨论了航班指引系统的设计与实现,提出了一种基于微信小程序和网页操作界面的智能航班指引系统。该系统不仅能实时获取航班信息,还能为乘客提供准确的登机提醒,从而减少乘客因未能及时到达登机口而导致的误机风险。此系统的应用有效地提升了乘客的乘机体验,并通过实时信息更新降低了乘客的等待时间,具有较高的实用价值[5]。此外,胥宝新等(2023)提出了新的航班时刻管理系统,该系统响应了民航局对航班时刻集中化管理的要求,通过合理配置航班时刻资源,既提高了航班的运行效率,又加强了航空安全性。系统的设计理念不仅为我国民航的高质量发展提供了支持,也为其他航空管理领域的智能化发展提供了有益的参考[6]。彭文路(2023)提出了一种基于5G通信技术的航班信息管理系统,该系统能够实现高速、高效的数据传输,从而大大提高了航班数据更新的实时性与准确性。通过采用数字信号处理技术,该系统能够在高数据负荷下稳定运行,且在航班延误预警和数据更新方面表现出色(彭文路,2023)[7]。

1.3.2国外研究现状

在国外,航班信息管理系统的研究已进入高度智能化的阶段,研究重点多集中在数据传输技术、实时监控和多系统集成等方面。Hoffmann et al.(2023)在研究中分析了在航空作业中,飞行时间、飞行速度、飞机与投放系统的配合等多个因素对任务效率的影响。研究结果表明,通过优化飞行路径和飞行速度,可以显著提高航班任务的执行效率,并减少运营成本。该研究为航班信息管理系统的优化提供了有益的参考,特别是在提高系统实时性和精度方面[8]。

此外,Lee等(2023)在其研究中设计了一个集成化的城市空中出行(UAM)飞行管理系统,旨在提高低空飞行环境中航班的安全性和效率。该系统集成了多个模块,包括空中交通管理(UATM)、地面交通管理(UGTM)和飞行运营管理(UFOM),并通过数字孪生技术进行实时模拟与监控。该系统的设计为航班信息管理系统的多维度管理提供了新的思路,尤其是在复杂的城市空域环境下,如何实现飞行器之间的有效协调和信息共享[9]。此外,随着5G通信技术的应用,现代机场的航班信息管理系统也得到了极大的提升。

综上所述,国外的航班信息管理系统研究更多地聚焦于新兴技术的应用,尤其是在数据传输和智能算法方面的创新。国外的研究强调多系统协作、实时数据处理和高效的飞行管理,以适应未来航空运输的复杂需求。这些研究为全球航班信息管理系统的发展提供了宝贵的经验和理论支持,同时也为我国航班信息管理的未来发展提供了启示。

1.4论文结构与章节安排

本文共分为七章,章节内容安排如下:

第一章:前言,主要介绍航班信息管理系统领域研究的背景和意义,概述研究的现状和系统特点。

第二章:关键技术,主要探讨和说明实现航班信息管理系统的关键技术。

第三章:系统分析,主要从航班信息管理系统的可行性、功能、性能等方面进行分析,为后续系统设计提供理论支持。

第四章:系统设计,主要对航班信息管理系统功能模块、数据库进行功能设计。

第五章:系统实现,主要介绍了航班信息管理系统各个顾客用户的功能、系统界面的实现。

第六章:系统测试,主要对航班信息管理系统进行测试,验证功能完整性、稳定性和安全性,评估系统在实际运行中的性能表现。

第七章:结束语。总结全文研究内容,提出对航班信息管理系统领域未来发展的展望和建议,指出研究的不足和可优化之处,为相关领域的进一步探索提供参考。

第二章  关键技术

2.1 Java

Java是一种跨平台的编程语言,广泛用于开发各种类型的应用程序,包括Web应用、移动应用和大型软件系统。在航班信息管理系统中,Java通常用于后端开发,提供强大的处理能力和稳定性。同时Java是一种面向对象的编程语言,支持封装、继承和多态等特性,使代码更易于维护和重用。还拥有丰富的标准库和第三方框架,如Spring、Hibernate等,可以大大提高开发效率。

2.2 B/S模式

B/S模式(Browser/Server模式)是一种网络应用架构,其中浏览器(Browser)作为客户端与服务器(Server)进行通信[10] 。这种模式使用户可以通过普通的Web浏览器访问应用程序,而无需安装额外的客户端软件。用户通过浏览器发送请求,服务器接收并处理这些请求,然后将结果返回给浏览器显示给用户。在航班信息管理系统中,Spring Boot结合B/S模式的优势包括跨平台的兼容性,用户可以在不同操作系统和设备上访问应用程序[11] 。维护和部署也更为简便,并且能够实现较高的安全性,因为服务器端控制了应用程序和数据的访问权限。

2.3 Spring Boot框架

Spring Boot是一个用于构建微服务的Java框架,简化了Spring应用程序的开发和部署过程[12] 。Spring Boot通过自动配置和约定优于配置的理念,简化了Spring应用程序的开发过程,使开发者可以更快地构建和部署应用程序。拥有丰富的生态系统,如Spring Cloud、Spring Security等,可以满足各种企业级应用的需求[13] 。在航班信息管理系统中,Spring Boot可以帮助开发团队快速搭建后端服务,并实现各种功能模块的集成和管理。

2.4 MySQL

MySQL是一种流行的开源关系型数据库管理系统,用于存储和管理数据。在航班信息管理系统中,MySQL可以用于数据存储、数据查询和数据管理等方面,用户可以免费使用和修改源代码,为平台提供可靠和高性能的数据库支持[14]。MySQL支持多种存储引擎,如InnoDB和MyISAM,可以根据不同的应用场景选择合适的存储引擎,提高性能;提供了多种数据安全机制,如用户权限管理、数据加密和备份恢复等,保证数据的安全性[15]。

第三章  系统分析

3.1可行性分析

3.1.1技术可行性

从技术角度来看,Spring Boot作为一种轻量级、快速构建的Java框架,能够提高开发效率,降低系统的复杂程度,易于维护和升级。MySQL作为关系型数据库,能够支持平台数据的存储与管理,保障系统的稳定性和高效性。因此,本系统具有技术可行性。

3.1.2经济可行性

从经济角度来看,基于Spring Boot搭建航班信息管理系统的投入成本相对较低,因为Spring Boot本身是一个免费、开源的框架,可以节省开发成本。使用MySQL作为数据库也具有成本效益高的优势。因此,本系统具有经济可行性。

3.1.3操作可行性

从操作角度来看,Spring Boot的简洁性和高度集成的特点使得系统的部署和运行相对简单,容易维护和管理的同时,能够提供一个界面直观友好和操作简单高效的系统,能满足用户的各项要求,方便用户快速上手使用。因此,本系统具有操作可行性。

3.1.4运行可行性

从运行角度来看,正因为本系统是在服务器的基础上开发的,系统开发成功以后,用户无需导航指导便可自己上手进行操作。系统一经开发测试后,在计算机移动客户端能上网的情况下,只需在浏览器里完成所有可用操作,也无需配置复杂的使用和运行环境,只需一个网址便可进入系统。因此,本系统具有运行可行性。

综合来看,基于Spring Boot的航班信息管理系统的设计与实现在经济、技术、操作、运行等方面都具有较高的可行性,能够为用户提供便捷的服务,促进共建共享的理念。

3.2功能需求分析

本航班信息管理系统设计分为两个主要用户角色:用户和管理员。以下是两个角色的功能需求的详细描述。

(1)用户功能模块

  1. 用户注册与登录:用户可通过填写个人信息注册,并设置密码进行登录。
  2. 通知公告:用户能够查看系统发布的最新通知和公告。
  3. 航空资讯:用户可以查看最新的航空相关机场资讯。
  4. 航班信息:用户能够浏览航班信息,并可以对想感兴趣的航班信息进行点赞收藏及评论。
  5. 机票信息:用户能够浏览机票信息,并可以对机票信息进行预购,点预购页面填写购票信息,根据购买票数自动计算金额,同样购买票数自动递减,购买超过剩余票数会提示票数不足,支持对机票信息点赞、收藏及评论。
  6. 个人中心:个人中心:用户可以管理个人资料、查看订单、充值信息、退票记录等内容。

个人首页:显示用户的基本信息、账户余额等概况信息。

用户账户:用户可以编辑个人信息,如联系方式、密码等。

充值信息:查看用户充值历史记录,余额及充值方式。

我的订单:展示用户的所有订单,用户可查看订单状态、航班信息等。

退票改签:用户可以申请退票或改签,查看退票改签的状态和记录。

退票记录:查看历史退票记录,包含退票原因和处理进度。

延误取消:查看航班是否有延误或取消,并获取最新的航班信息和处理结果。

提醒通知:接收系统推送的通知,提醒用户重要信息,如航班变化、订单状态更新等。

收藏:用户可以收藏感兴趣的航班、机票等信息,便于后续查看和预订。

(2)管理员功能模块

  1. 管理员首页:展示机票信息、用户订单信息、航班信息等,通过图表和列表形式展示。
  2. 系统用户管理:管理员可以管理不同类型的用户账户,如管理员和会员用户,进行增删改查。
  3. 用户账户管理:包括会员用户的账户信息管理,支持账户的创建、编辑和删除。
  4. 充值信息管理:管理员可以查看和管理用户的充值记录。
  5. 航班信息管理:对航班信息进行添加、删除和编辑,确保航班数据的准确性。
  6. 机票信息管理:管理员负责添加、删除和更新机票信息,包括票价、航班时间等内容。
  7. 我的订单管理:管理用户的订票记录,查看订单状态,并能进行退票和改签操作。
  8. 退票改签管理:管理员处理用户的退票和改签请求,确保信息及时更新。
  9. 退票记录管理:查看和管理所有退票记录,包括退票原因和时间等详细信息。
  10. 延误取消管理:管理员可查看和处理航班延误和取消的情况,及时通知用户。
  11. 提醒通知管理:发布系统通知,及时向用户提醒重要信息,如航班延误、机票预定信息等。
  12. 系统管理(轮播图):管理员可以管理首页的轮播图内容,更新展示的图片和广告。
  13. 机场公告管理:管理员发布和管理机场相关公告,如临时通知、设备故障等。
  14. 资源管理(航空资讯、资讯分类):管理员负责管理系统中的航空资讯和资讯分类,确保信息的准确性和及时性。
  15. 航班信息管理:管理员负责管理航班信息,包括添加、编辑和删除展览资料。
  16. 机票信息管理:管理员可对系统中的机票信息进行管理。。
  17. 退票记录管理:管理员可以查看和管理用户取消预约记录。
  18. 系统管理:管理员对轮播图和敏感词进行管理。
  19. 通知公告管理:管理员可以发布系统公告和重要信息。
  20. 资源管理:管理员可以管理系统中的机场资讯和新闻分类。

普通用户角色用例如图3-1所示。

图3-1普通用户用例图

管理员角色用例如3-2所示。

图3-2 管理员用例图

3.3系统非功能性需求分析

非功能性分析是系统设计的重要组成部分,其目标是保证系统在各种负载条件下的高效、稳定和可靠。对于航班信息管理系统的设计与实现,系统非功能性需求分析表如表3-1所示。

表3-1 非功能性需求表

项目

内容

性能

系统应支持至少500个并发用户访问,响应时间不超过2秒

安全性

用户数据需加密,系统应具备防攻击机制(如SQL注入、XSS防护)

可用性

系统年可用性应达到99.5%,保证大部分时间能够正常访问

可维护性

代码易于阅读与修改,文档齐全,便于后期维护和功能扩展

扩展性

系统架构应支持后续功能的扩展,易于添加新模块或功能

兼容性

系统应支持主流浏览器(如Chrome、Firefox、Safari)

用户体验

界面友好、简洁,操作应当简便,避免用户困惑

3.4系统流程分析

3.4.1程序操作流程

用户访问平台网站,可以选择进行注册或登录操作。注册成功后,用户可以使用注册的账号登录平台。登录后的用户可以进入系统功能界面,使用自己权限内的功能操作。程序操作流程图如图3-4所示。

图3-4 程序操作流程图

3.4.2登录流程

用户访问平台的网站,进入登录页面页面,入其用户名和密码,后端服务接收登录请求,验证用户提供的用户名和密码是否匹配数据库中存储的信息,验证通过即可登录成功。登录流程图如图3-5所示。

图3-5 登录流程图

3.4.3注册流程

未有账号的用户可进入注册界面进行注册操作,填写注册表格,包括用户名、密码、电子邮件等必要信息。后台系统验证并保存用户提交的信息。分配唯一用户标识符。注册成功后,用户可以使用账号密码进行登录。用户注册流程图如图3-6所示。

图3-6 注册流程图

第四章  系统设计

4.1系统架构设计

本项目采用B/S架构,遵循MVC设计思想,采用前后端分离的方式进行架构搭建。系统主要由表示层、控制层、业务逻辑层和数据层构成,系统架构如图4-1所示。

图4-1 系统整体架构图

系统使用Spring Boot与Vue框架进行搭建,架构分为视图层、控制层、业务逻辑层、数据持久层和数据库服务器。视图层利用Vue框架和Element UI界面渲染工具构建前端页面,前端页面通过HTTP协议发送请求至控制层。控制层与业务逻辑层通过Spring Boot框架搭建,控制层接收前端请求,进行解析和数据校验,将数据传递至Service层进行业务逻辑处理。业务处理完成后,通过数据持久层访问数据库服务器,执行数据库操作,最终将结果返回至控制层,并传递至前端进行页面处理。

4.2系统功能模块设计

根据系统分析,航班信息管理系统后台管理端设计为登录、系统用户(管理员、会员用户)用户账户管理、用户账户管理、充值信息管理、航班信息管理、机票信息管理、我的订单管理、退票改签管理、退票记录管理、延误取消管理、提醒通知管理、系统管理(轮播图)、机场公告管理、资源管理(航空资讯、资讯分类)管理等,其中管理员可以对系统的所有模块进行管理。用户端通过电脑浏览器访问系统,用户端设计的功能模块有登录或注册、机场公告、航空资讯、航班信息、机票信息、个人中心(个人首页、用户账户、充值信息、我的订单、退票改签、退票记录、延误取消、提醒通知、收藏)等。整个系统的功能模块设计如图4-2所示。

图4-2 系统功能模块图

4.3数据库设计

数据库设计是一种用于创建数据库结构的过程,通过需求分析确定数据类型和操作需求,并使用实体-关系图表达数据的实体、属性及其关系,形成概念模型。在此基础上,将概念模型转化为特定数据库系统可识别的逻辑模型,确定表结构、字段、数据类型及约束关系。数据库设计通常分为概念设计、逻辑设计两个阶段。

4.3.1概念设计

概念设计作为数据库设计的关键环节,通过高层次的抽象描述系统中的数据结构和关系,明确系统的数据需求。通常采用E-R图来展现数据的实体、属性及关系,形成逻辑完整的模型,更加清晰地表达和传达设计意图。在该阶段,需要确定关键数据实体,定义属性并表达关系类型,为数据库的逻辑设计和物理设计奠定必要基础。以下是系统各个实体图和总体E-R图。

(1)管理员实体属性图如下图4-3所示

图4-3管理员实体属性图

(2) 用户实体属性如下图4-4所示

图4-4用户实体属性图

(3) 机票信息实体属性如下图4-5所示

图4-5机票信息实体属性图

(4) 航班信息实体属性如下图4-6所示

图4-6航班信息实体属性图

(5) 订单实体属性如下图4-7所示

图4-7订单信息实体属性图

(6)航班信息管理系统总E-R图如下图4-8所示

图4-8航班信息管理系统总E-R图

4.3.2逻辑设计

逻辑设计是数据库设计中的关键环节,主要任务是将概念设计中的抽象模型转化为数据库管理系统可识别的结构,确定表结构、字段名称、数据类型、主键和外键等要素,从而构建数据的逻辑框架。逻辑设计明确了数据的存储方式和关联规则,维持数据一致性与完整性,并提升查询与管理的效率。以下是系统的数据库表设计。

表comment (评论)

编号

名称

数据类型

长度

允许空值

说明

1

comment_id

int

10

N

评论ID:

2

user_id

int

10

N

评论人ID:

3

reply_to_id

int

10

N

回复评论ID:空为0

4

content

longtext

2147483647

Y

内容:

5

nickname

varchar

255

Y

昵称:

6

avatar

varchar

255

Y

头像地址:[0,255]

7

create_time

timestamp

19

N

创建时间:

8

update_time

timestamp

19

N

更新时间:

9

source_table

varchar

255

Y

来源表:

10

source_field

varchar

255

Y

来源字段:

11

source_id

int

10

N

来源ID:

表delay_cancellation (延误取消)

编号

名称

数据类型

长度

允许空值

主键

说明

1

delay_cancellation_id

int

10

N

Y

延误取消ID

2

member_users

int

10

Y

N

会员用户

3

user_name

varchar

64

Y

N

用户姓名

4

flight_number

varchar

64

Y

N

航班编号

5

departure_airport

varchar

64

Y

N

出发机场

6

arriving_at_the_airport

varchar

64

Y

N

到达机场

7

pre_order_ticket_count

double

9

Y

N

预购票数

8

delay_time

varchar

64

Y

N

延误时长

9

cancel_time

datetime

19

Y

N

取消时间

10

cancel_quantity

double

9

Y

N

取消数量

11

reason_for_delay

text

65535

Y

N

延误原由

12

details_remarks

text

65535

Y

N

详情备注

13

create_time

datetime

19

N

N

创建时间

14

update_time

timestamp

19

N

N

更新时间

15

source_table

varchar

255

Y

N

来源表

16

source_id

int

10

Y

N

来源ID

17

source_user_id

int

10

Y

N

来源用户

表flight_information (航班信息)

编号

名称

数据类型

长度

允许空值

主键

说明

1

flight_information_id

int

10

N

Y

航班信息ID

2

flight_number

varchar

64

N

N

航班编号

3

aircraft_model

varchar

64

N

N

飞机型号

4

departure_airport

varchar

64

Y

N

出发机场

5

arriving_at_the_airport

varchar

64

Y

N

到达机场

6

takeoff_time

datetime

19

Y

N

起飞时间

7

arrival_time

datetime

19

Y

N

到达时间

8

flight_pictures

varchar

255

Y

N

航班图片

9

flight_status

varchar

64

Y

N

航班状态

10

baggage_allowance

varchar

64

Y

N

行李限额

11

boarding_entrance

varchar

64

Y

N

登机入口

12

crew_members

text

65535

Y

N

机组人员

13

details_remarks

text

65535

Y

N

详情备注

14

hits

int

10

N

N

点击数

15

praise_len

int

10

N

N

点赞数

16

collect_len

int

10

N

N

收藏数

17

comment_len

int

10

N

N

评论数

18

create_time

datetime

19

N

N

创建时间

19

update_time

timestamp

19

N

N

更新时间

表member_users (会员用户)

编号

名称

数据类型

长度

允许空值

主键

说明

1

member_users_id

int

10

N

Y

会员用户ID

2

user_name

varchar

64

Y

N

用户姓名

3

user_gender

varchar

64

Y

N

用户性别

4

user_phone_number

varchar

16

N

N

用户电话

5

examine_state

varchar

16

N

N

审核状态

6

user_id

int

10

N

N

用户ID

7

create_time

datetime

19

N

N

创建时间

8

update_time

timestamp

19

N

N

更新时间

表my_order (我的订单)

编号

名称

数据类型

长度

允许空值

主键

说明

1

my_order_id

int

10

N

Y

我的订单ID

2

member_users

int

10

Y

N

会员用户

3

user_name

varchar

64

Y

N

用户姓名

4

flight_number

varchar

64

Y

N

航班编号

5

departure_airport

varchar

64

Y

N

出发机场

6

arriving_at_the_airport

varchar

64

Y

N

到达机场

7

shipping_space

varchar

64

Y

N

舱位等级

8

ticket_prices

double

9

Y

N

机票价格

9

reservation_time

datetime

19

Y

N

预定时间

10

pre_order_ticket_count

double

9

Y

N

预购票数

11

pre_order_amount

double

9

Y

N

预购金额

12

pre_order_remarks

text

65535

Y

N

预购备注

13

pay_state

varchar

16

N

N

支付状态

14

pay_type

varchar

16

Y

N

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

15

refund_and_change_of_ticket_limit_times

int

10

N

N

改签限制次数

16

refund_record_limit_times

int

10

N

N

退票限制次数

17

delay_cancellation_limit_times

int

10

N

N

延误取消限制次数

18

create_time

datetime

19

N

N

创建时间

19

update_time

timestamp

19

N

N

更新时间

20

source_table

varchar

255

Y

N

来源表

21

source_id

int

10

Y

N

来源ID

22

source_user_id

int

10

Y

N

来源用户

表notice (公告)

编号

名称

数据类型

长度

允许空值

主键

说明

1

notice_id

mediumint

8

N

Y

公告id:

2

title

varchar

125

N

N

标题:

3

content

longtext

2147483647

Y

N

正文:

4

create_time

timestamp

19

N

N

创建时间:

5

update_time

timestamp

19

N

N

更新时间:

表recharge_information (充值信息)

编号

名称

数据类型

长度

允许空值

主键

说明

1

recharge_information_id

int

10

N

Y

充值信息ID

2

member_users

int

10

Y

N

会员用户

3

user_name

varchar

64

Y

N

用户姓名

4

user_phone_number

varchar

64

Y

N

用户电话

5

recharge_time

datetime

19

Y

N

充值时间

6

recharge_amount

double

9

Y

N

充值金额

7

pay_state

varchar

16

N

N

支付状态

8

pay_type

varchar

16

Y

N

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

9

create_time

datetime

19

N

N

创建时间

10

update_time

timestamp

19

N

N

更新时间

11

source_table

varchar

255

Y

N

来源表

12

source_id

int

10

Y

N

来源ID

13

source_user_id

int

10

Y

N

来源用户

表refund_and_change_of_ticket (退票改签)

编号

名称

数据类型

长度

允许空值

主键

说明

1

refund_and_change_of_ticket_id

int

10

N

Y

退票改签ID

2

member_users

int

10

Y

N

会员用户

3

user_name

varchar

64

Y

N

用户姓名

4

flight_number

varchar

64

Y

N

航班编号

5

departure_airport

varchar

64

Y

N

出发机场

6

arriving_at_the_airport

varchar

64

Y

N

到达机场

7

shipping_space

varchar

64

Y

N

舱位等级

8

change_date

datetime

19

Y

N

改签时间

9

reason_for_rescheduling

varchar

64

Y

N

改签原由

10

handling_fees

double

9

Y

N

手续费用

11

examine_state

varchar

16

N

N

审核状态

12

examine_reply

varchar

16

Y

N

审核回复

13

pay_state

varchar

16

N

N

支付状态

14

pay_type

varchar

16

Y

N

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

15

create_time

datetime

19

N

N

创建时间

16

update_time

timestamp

19

N

N

更新时间

17

source_table

varchar

255

Y

N

来源表

18

source_id

int

10

Y

N

来源ID

19

source_user_id

int

10

Y

N

来源用户

表refund_record (退票记录)

编号

名称

数据类型

长度

允许空值

主键

说明

1

refund_record_id

int

10

N

Y

退票记录ID

2

member_users

int

10

Y

N

会员用户

3

user_name

varchar

64

Y

N

用户姓名

4

flight_number

varchar

64

Y

N

航班编号

5

shipping_space

varchar

64

Y

N

舱位等级

6

pre_order_ticket_count

double

9

Y

N

预购票数

7

refund_time

datetime

19

Y

N

退票时间

8

number_of_ticket_refunds

double

9

Y

N

退票数量

9

reason_for_ticket_refund

text

65535

Y

N

退票原由

10

examine_state

varchar

16

N

N

审核状态

11

create_time

datetime

19

N

N

创建时间

12

update_time

timestamp

19

N

N

更新时间

13

source_table

varchar

255

Y

N

来源表

14

source_id

int

10

Y

N

来源ID

15

source_user_id

int

10

Y

N

来源用户

表reminder_notification (提醒通知)

编号

名称

数据类型

长度

允许空值

主键

说明

1

reminder_notification_id

int

10

N

Y

提醒通知ID

2

member_users

int

10

Y

N

会员用户

3

user_name

varchar

64

Y

N

用户姓名

4

reminder_time

datetime

19

Y

N

提醒时间

5

reminder_title

varchar

64

Y

N

提醒标题

6

reminder_content

text

65535

Y

N

提醒内容

7

create_time

datetime

19

N

N

创建时间

8

update_time

timestamp

19

N

N

更新时间

表ticket_information (机票信息)

编号

名称

数据类型

长度

允许空值

主键

说明

1

ticket_information_id

int

10

N

Y

机票信息ID

2

flight_number

varchar

64

N

N

航班编号

3

aircraft_model

varchar

64

N

N

飞机型号

4

airplane_pictures

varchar

255

Y

N

飞机图片

5

departure_airport

varchar

64

Y

N

出发机场

6

arriving_at_the_airport

varchar

64

Y

N

到达机场

7

takeoff_time

datetime

19

Y

N

起飞时间

8

arrival_time

datetime

19

Y

N

到达时间

9

shipping_space

varchar

64

Y

N

舱位等级

10

ticket_prices

double

9

Y

N

机票价格

11

remaining_votes

double

9

Y

N

剩余票数

12

sales_amount

double

9

Y

N

销售金额

13

sales_ranking

double

9

Y

N

销售排名

14

rule_explanation

text

65535

Y

N

规则说明

15

hits

int

10

N

N

点击数

16

praise_len

int

10

N

N

点赞数

17

collect_len

int

10

N

N

收藏数

18

comment_len

int

10

N

N

评论数

19

my_order_limit_times

int

10

N

N

预购限制次数

20

create_time

datetime

19

N

N

创建时间

21

update_time

timestamp

19

N

N

更新时间

第五章  系统实现

5.1用户功能模块实现

5.1.1机场资讯

用户登录后,点击“机场资讯”进入模块。在机场资讯首页,可以查看所有发布的新闻,点击任意新闻标题以查看详细内容。页面下方有“评论”和“点赞”按钮,点击评论按钮后可以进行评论。用户填写标题和内容,选择相关标签,点击“提交”按钮发布评论。交流论坛功能效果图如图5-1所示。

图5-1 机场资讯功能效果图

5.1.2通知公告

用户在主页点击“通知公告”进入通知列表。每条通知以标题和发布日期显示,用户可以点击标题查看详细内容。用户可以通过搜索框输入关键词,快速找到相关公告。通知公告功能效果图如图5-2所示。

图5-2通知公告功能效果图

5.1.3机票信息

进入机票用户能够浏览机票信息,并可以对机票信息进行预购,点预购页面填写购票信息,根据购买票数自动计算金额,同样购买票数自动递减,购买超过剩余票数会提示票数不足,支持对机票信息点赞、收藏及评论。

f)个人中心:个人中心:用户可以管理个人资料、查看订单、充值信息、退票记录等内容。进入“航班信息”后,用户会看到所有可预约展览的信息卡片。显示展览照片、基本信息。用户点击具体展览的卡片后,将进入详细信息页面,用户可以查看更多详细描述。若希望预约展览,用户需点击“申请预约”按钮,填写信息并提交。航班信息功能效果图如图5-3所示。

图5-3 机票信息功能效果图

5.1.3个人中心

进入个人中心用户可以管理个人资料、查看订单、充值信息、退票记录等内容。个人中心功能效果图如图5-4所示。

图5-4 个人中心功能效果图

5.2 管理员功能模块实现

5.2.1航班信息管理

管理员登录后,进入“航班信息管理”模块。在列表中,可以查看所有航班信息,点击任意条目进入编辑页面。管理员可更新预约状态、修改航班信息或删除不再适用的条目。更改完成后,需点击“保存”按钮,确认修改。航班信息管理功能效果图如图5-5所示。

图5-5 航班信息管理功能效果图

5.2.2机票信息管理

在“机票信息管理”中,管理员可查看所有机票列表。点击“机票信息添加”按钮进入创建页面,填写机票信息描述后,点击“提交”以添加新机票信息。已存在机票信息可通过点击“编辑”按钮进行修改,或点击“删除”按钮将其移除。机票信息管理功能效果图如图5-6所示。

图5-6机票信息管理功能效果图

5.2.3退票记录管理

进入“退票记录管理”后,管理员可以查看所有退票记录。每条记录包括航班编号舱位等级。管理员可选择特定记录点击查看详情或审核退票信息,必要时可进行更新或删除操作。退票记录管理功能效果图如图5-7所示。

图5-7退票记录管理功能效果图

5.2.4通知公告管理

管理员在“通知公告管理”模块可发布新公告。点击“添加”按钮,填写标题和内容后点击“发布”。管理员还可以查看和编辑已有公告,必要时删除不再适用的公告。通知公告管理功能效果图如图5-8所示。

图5-8通知公告管理功能效果图

5.2.5资源管理

在“资源管理”中,管理员可查看系统内所有新闻。管理员也可以对机场资讯和新闻类型进行管理进行管理。资源管理功能效果图如图5-9所示。

图5-9资源管理功能效果图

第六章  系统测试

6.1测试目的

软件测试的目的在于识别系统缺陷,验证软件对需求的符合程度,使其功能、性能和安全性达到设计标准。在开发过程中,测试能够及时发现潜在问题,降低发布后出现故障的风险。测试不仅关注系统的正常运行,还模拟各种异常情况,评估在不同环境和边界条件下的表现,从而提升软件的可靠性和稳定性,为用户提供更高质量的产品体验,增强信任感。测试过程中的数据和经验积累能完善测试策略,改进开发流程,成为后续项目的参考。软件测试贯穿开发生命周期,是实现产品质量和发布标准的重要环节。

6.2测试方法

测试方法是一系列用于评估和验证产品、软件或系统性能的技术和程序[17] 。这些方法根据测试目标的不同,可以划分为黑盒测试、白盒测试和灰盒测试等多种类型。黑盒测试关注输入和输出,不涉及内部逻辑结构。白盒测试深入代码和系统内部结构,检查程序流程和逻辑错误。灰盒测试介于两者之间,对内部结构有部分了解。其他方法还包括自动化测试、手动测试、性能测试和安全测试,各自具有特定的应用场景和优势。性能测试检验系统的响应时间和稳定性,安全测试识别潜在的安全漏洞。选择适当的测试方法能够有效发现问题,提高产品的质量和可靠性。

6.3测试内容

系统采用黑盒测试对系统功能进行测试,以下是测试的详细用例表。

表6-1 评论功能测试用例表

测试目的

验证评论功能

测试条件

用户已登录

测试步骤

1. 登录系统。

2. 进入航班评论模块。

3. 发布评论。

4. 回复他人评论。

5. 删除自己的评论。

预期效果

能成功发布、回复和删除评论

实际效果

与预期结果一致

结论

测试通过

表6-2 航班信息功能测试用例表

测试目的

验证航班信息功能

测试条件

用户已登录

测试步骤

1. 登录系统。

2. 进入航班信息模块。

3. 浏览航班信息列表。

4. 点击查看详细信息。

预期效果

能正常查看航班信息

实际效果

与预期结果一致

结论

测试通过

表6-3 机票信息功能测试用例表

测试目的

验证机票信息功能

测试条件

用户已登录

测试步骤

1. 登录系统。

2. 进入机票信息模块。

3. 浏览机票信息列表。

4. 点击查看详细信息。

预期效果

能正常查看机票信息

实际效果

与预期结果一致

结论

测试通过

表6-4 退票记录功能测试用例表

测试目的

验证退票记录功能

测试条件

用户已登录

测试步骤

1. 登录系统。

2. 进入退票记录模块。

3. 浏览退票记录列表。

4. 点击查看具体内容。

预期效果

能正常查看知识内容

实际效果

与预期结果一致

结论

测试通过

表6-5 航班信息管理功能测试用例表

测试目的

验证航班信息管理功能

测试条件

管理员已登录

测试步骤

1. 登录系统。

2. 进入航班信息管理模块。

3. 添加新的航班信息。

4. 修改已有航班信息。

5. 删除航班信息。

预期效果

能正常添加、修改和删除信息

实际效果

与预期结果一致

结论

测试通过

表6-6 机票信息管理功能测试用例表

测试目的

验证机票信息管理功能

测试条件

管理员已登录

测试步骤

1. 登录系统。

2. 进入机票信息管理模块。

3. 添加新的机票信息。

4. 修改已有机票信息。

5. 删除机票信息。

预期效果

能正常添加、修改和删除信息

实际效果

与预期结果一致

结论

测试通过

表6-7 取消记录管理功能测试用例表

测试目的

验证取消记录管理功能

测试条件

管理员已登录

测试步骤

1. 登录系统。

2. 进入取消记录管理模块。

3. 查看所有取消记录。

4. 删除某条记录。

预期效果

能正常查看和删除记录

实际效果

与预期结果一致

结论

测试通过

6.4测试结论

通过对航班信息评论、航班信息、机票信息、退票记录及其管理模块的详细测试,涵盖了用户和管理员的多个关键功能。测试内容涉及用户在论坛中发布、回复、删除评论,浏览和查看机票信息,管理员对机票信息的管理、取消记录的查看与删除,以及交流内容的管理等重要操作。所有测试功能均符合预期结果,未发现明显问题,显示出系统在当前测试条件下的稳定性和可靠性。这些结果表明,系统能够有效支持用户和管理员顺畅完成各自的核心活动,未出现操作障碍或功能缺陷。

第七章  总结与展望

7.1总结

在本次毕业设计项目中,成功开发了一个基于Web航班信息管理系统,目标在于解决传统航班中信息管理效率低下的问题。通过采用Spring Boot框架、MySQL数据库和前端Vue.js技术,该系统实现了航班信息的在线管理与预约的数字化处理,强化了用户权限管理与数据安全保护措施。这一系列功能的实现显著提升了航班管理的效率,为航班管理迈出了重要一步。

在研究过程中也面临了一些问题和挑战。当前的技术选型在满足基本需求的同时,对于不断变化的业务环境和用户期望显得较为僵化。用户体验方面,系统的界面设计与交互逻辑尚需优化,以符合现代用户对高效、直观操作的要求。随着网络安全威胁的上升,保护用户数据的安全性与隐私问题亦需持续重视。

7.2展望

未来的研究将集中于以下几个方向:探索更灵活、高效的技术架构的应用提升系统的可扩展性与维护性。将引入前沿的设计理念,进一步改善用户界面并增强用户体验。在数据安全方面,研究更为先进的加密技术与安全策略,保障系统能够应对复杂的网络安全挑战。随着人工智能与大数据技术的发展,未来的研究还将探索如何利用这些技术提供智能化分析与决策支持,进一步提升展览管理效率与服务质量。

致 谢

时光荏苒,四年的求学生涯在不经意间画上了圆满的句号。在这段充满挑战与成长的旅程中,许多人给予了我无私的支持与鼓励。在此,我怀着无比感激的心情,向所有帮助和关心过我的人致以诚挚的感谢。

首先,我要特别感谢我的指导老师。您不仅是知识的传播者,更是我人生道路上的引路人。您严谨治学、孜孜不倦的精神深深感染了我,让我明白了追求真理的重要性。无论是细致的反馈,还是启发性的建议,您都让我感受到一种无形的力量,激励着我不断超越自我。感谢您在我最迷茫的时刻,为我指明方向,给予我勇气,让我在道路上走得更加坚定。

我要感谢我的父母。感谢你们无私的爱与支持,是你们的辛勤付出让我得以追逐梦想,成就自我。无论是在我遇到挫折时的鼓励,还是在我获得成绩时的欢笑,你们总是我最坚实的后盾。在你们的呵护下,我得以在知识的海洋中遨游,体会到求知的乐趣与美好。你们教会我如何面对生活中的风雨,教会我如何在困境中寻找希望。每当我回首过往,心中涌起的都是对你们的感激与爱戴。没有你们的支持,我无法走到今天这一步。愿在未来的日子里,能用自己的努力回报你们的厚爱。

我也要感谢我的同学们。在这四年的岁月里,我们共同经历了无数的挑战与欢笑。无论是一起熬夜复习的辛酸,还是考试后的欢庆,你们的陪伴让我不再孤单。在学习上,我们相互借鉴、共同进步。在生活中,我们彼此扶持、携手前行。与你们的友谊让我感受到青春的热情与力量。每一次的团结合作,都让我意识到团队的力量是无穷的。感谢你们在我人生旅途中的陪伴,你们的存在让我的大学生活更加丰富多彩。

最后,感谢这个校园。这里承载了我的青春与梦想,见证了我的成长与蜕变。每一处熟悉的角落,都蕴藏着我无数的回忆。无论是静谧的图书馆,还是热闹的操场,都成为我心中不可磨灭的印记。这里的每一位老师、每一位同学、每一段经历,都将成为我人生旅途中最珍贵的财富。

在即将踏入新的人生阶段之际,我衷心地感谢所有给予我帮助与关心的人。是你们的陪伴让我在这条路上走得更加坚定与自信。未来的路途或许会有荆棘与挑战,但我将带着你们给予我的勇气与力量,勇敢前行。愿在不久的将来,能够以自己的成就来回馈你们的厚爱。

再次感谢每一位在我生命中出现的人,愿我们都能在各自的人生舞台上,绽放出属于自己的光彩。

参考文献

  1. 张晓娜,王磊,潘振杰,等.基于微服务的机场资源管理系统[J].中国科技信息,2022,(21):112-114.
  2. 薛峰,商朝阳.中国民航航线航班管理系统研发实践及前瞻性思考[J].空运商务,2022,(07):55-59.
  3. 孙慧.基于微服务架构的机场旅客服务系统设计与实现[D].西安石油大学,2022.DOI:10.27400/d.cnki.gxasc.2022.001009. 
  4. 吴鹏.航班号管理工作现状及改进建议[J].民航管理,2024,(07):17-20.
  5. 殷悦,圣立明,刘雨欣,等.航班指引系统的设计与实现[J].电脑知识与技术,2024,20(11):45-48.DOI:10.14004/j.cnki.ckt.2024.0481.
  6. 胥宝新,孔明星,刘宝峰,等.新航班时刻管理系统设计[J].信息化研究,2023,49(06):71-76.
  7. 彭文路.基于5G通信技术的现代机场航班信息管理系统设计[J].自动化仪表,2023,44(09):97-100+106.DOI:10.16086/j.cnki.issn1000-0380.2022080075.
  8. Youngjae L ,Chan G ,Sangyeul B , et al.Functional Analysis and Validation of a UAM Integrated Flight Management (UIFM) System[J].International Journal of Aeronautical and Space Sciences,2023,25(2):749-758.
  9. D B H ,Adam T ,Greg Q , et al.Quantification of flight times of aerial treatments targeting invasive species: The interplay of helicopter or drone with bait delivery systems, flight speed and bait form.[J].Pest management science,2023,79(6):2050-2055.
  10. 赵惠. 基于B/S模式的实验室管理系统设计和实现 [J]. 中国新通信, 2023, 25 (21): 72-74.
  11. 田应权,尹瑞雪. 基于三层B/S模式的飞机结构损伤信息管理系统设计与实现 [J]. 机械工程师, 2023, (06): 36-39.
  12. 罗光武,陈典灿,吴荷,等. 应用Spring boot + Vue框架的时间管理软件的设计与实现 [J]. 工业控制计算机, 2024, 37 (04): 64-66.
  13. 刘慧玲,谭定英,陈平平. 基于Spring Boot和Vue.js的大学生团队管理系统的设计 [J]. 电脑编程技巧与维护, 2024, (03): 120-122. 
  14. 杨芬,MySQL数据库应用的课程教学分析[J]电子技术,2023,52(10):180-181.
  15. 赵停停.基于MySQL数据库技术的Web动态网页设计研究[J].信息与电脑(理论版),2023,35(17):174-176.
  16. 石德宝.空港口岸进口货物流水线处理系统的设计与实现[D].西安电子科技大学,2021.DOI:10.27389/d.cnki.gxadu.2021.002270. 
  17. 刘逸玮.民航机场群数据信息区块链管理方案[D].北京工业大学,2021.DOI:10.26935/d.cnki.gbjgu.2021.000043. 
  18. 张沛然.空管运行业务数据交换平台的研究与实现[D].北京林业大学,2020.DOI:10.26949/d.cnki.gblyu.2020.000420. 
  19. 李晶.T公司航空货运管理信息系统优化研究[D].河北工业大学,2020.DOI:10.27105/d.cnki.ghbgu.2020.000513. 
  20. 杨永琪,董国泰,朱文豪.基于Java和数据库系统设计的航空售票系统[J].电脑知识与技术,2020,16(06):75-76.DOI:10.14004/j.cnki.ckt.2020.0646.

附录:

注册代码如下:

  /**

     * 注册

     * @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, "用户已存在");

        }

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

        service.insert(map);

        return success(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, "账号或密码不正确");

        }

    }

航班信息查询代码如下:

 @PostMapping("/upload")

    public Map<String, Object> upload(@RequestParam("file") MultipartFile file) {

        log.info("进入方法");

        if (file.isEmpty()) {

            return error(30000, "没有选择文件");

        }

        try {

            //判断有没路径,没有则创建

            String filePath = System.getProperty("user.dir") + "/src/main/resources/static/";

            File targetDir = new File(filePath);

            if (!targetDir.exists() && !targetDir.isDirectory()) {

                if (targetDir.mkdirs()) {

                    log.info("创建目录成功");

                } else {

                    log.error("创建目录失败");

                }

            }

            String fileName = file.getOriginalFilename();

            File dest = new File(filePath + fileName);

            log.info("文件路径:{}", dest.getPath());

            log.info("文件名:{}", dest.getName());

            file.transferTo(dest);

            JSONObject jsonObject = new JSONObject();

            jsonObject.put("url", "/api/upload/" + fileName);

            return success(jsonObject);

        } catch (IOException e) {

            log.info("上传失败:{}", e.getMessage());

        }

        return error(30000, "上传失败");

    }

机票信息添加代码如下:

  @RequestMapping(value = {"/sum_group", "/sum"})

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

        Integer value = service.selectSqlToInteger(service.sum(service.readQuery(request), service.readConfig(request)));

        return success(value);

    }

请关注点赞+私信博主,免费领取项目源码

更多推荐