基于Spring Boot+Vue的校园共享无人机服务系统设计与实现
摘要
随着智慧校园建设的不断推进以及无人机在教学实践、科研创新和校园活动中的广泛应用,无人机共享与租赁需求日益增长,传统人工管理方式逐渐暴露出设备状态不透明、预约流程繁琐、资源利用率低及资金管理不规范等问题。针对上述问题,本文设计并实现了一套基于Spring Boot与Vue技术的校园共享无人机服务系统。系统采用B/S架构,前端基于Vue框架构建响应式用户界面,实现良好的交互体验;后端采用Spring Boot框架构建业务逻辑,具备良好的扩展性与稳定性;数据存储选用MySQL数据库,保障系统数据的安全性与一致性。系统主要划分为普通用户与管理员两类角色:普通用户可实现注册登录、无人机信息浏览、预约租赁、在线充值、支付领用、收藏点赞及评论管理等功能;管理员则负责用户信息管理、无人机信息维护、预约订单审核、充值到账处理、公告资讯发布及系统日志管理等操作。该系统通过整合无人机资源管理与在线租赁服务流程,实现了设备共享、业务流程规范化及数据集中管理,有效提升了校园无人机设备的利用效率与管理水平,具有良好的应用前景与推广价值。
关键词:校园共享无人机服务系统;SpringBoot;Vue;MySQL;
Abstract
With the continuous promotion of smart campus construction and the widespread application of drones in teaching practice, scientific research innovation, and campus activities, the demand for drone sharing and leasing is increasing. Traditional manual management methods are gradually exposing problems such as opaque equipment status, cumbersome appointment processes, low resource utilization, and non-standard fund management. In response to the above issues, this article designs and implements a campus shared drone service system based on Spring Boot and Vue technology. The system adopts B/S architecture, and the front-end is based on Vue framework to build a responsive user interface, achieving a good interactive experience; The backend adopts the Spring Boot framework to build business logic, which has good scalability and stability; MySQL database is used for data storage to ensure the security and consistency of system data. The system is mainly divided into two roles: ordinary users and administrators. Ordinary users can achieve functions such as registration and login, drone information browsing, rental reservation, online recharge, payment and usage, favorite likes, and comment management; Administrators are responsible for user information management, drone information maintenance, appointment order review, recharge and account processing, announcement and information release, and system log management. The system integrates drone resource management and online rental service processes, achieving device sharing, standardized business processes, and centralized data management, effectively improving the utilization efficiency and management level of campus drone equipment, and has good application prospects and promotion value.
Keywords: Campus shared drone service system; SpringBoot; Vue; MySQL;
目录
[1 绪论](#1 绪论)
[1.1 研究背景与意义](#1.1 研究背景与意义)
[1.1.1 研究背景](#1.1.1 研究背景)
[1.1.2 研究意义](#1.1.2 研究意义)
[1.2 国内外研究现状](#1.2 国内外研究现状)
[1.2.1 国内研究现状](#1.2.1 国内研究现状)
[1.2.2 国外研究现状](#1.2.2 国外研究现状)
[2 相关技术介绍](#2 相关技术介绍)
[2.1 SpringBoot框架](#2.1 SpringBoot框架)
[2.2 Vue技术](#2.2 Vue技术)
[2.3 B/S模式](#2.3 B/S模式)
[2.4 MySQL数据库](#2.4 MySQL数据库)
[3 需求分析](#3 需求分析)
[3.1 功能需求分析](#3.1 功能需求分析)
[3.1.1 普通用户功能](#3.1.1 普通用户功能)
[3.1.2 管理员功能](#3.1.2 管理员功能)
[3.2 非功能需求分析](#3.2 非功能需求分析)
[3.3 可行性分析](#3.3 可行性分析)
[3.3.1 技术可行性](#3.3.1 技术可行性)
[3.3.2 操作可行性](#3.3.2 操作可行性)
[3.3.3 经济可行性](#3.3.3 经济可行性)
[4 系统设计](#4 系统设计)
[4.1 系统架构设计](#4.1 系统架构设计)
[4.2 系统总体流程设计](#4.2 系统总体流程设计)
[4.2.1 通知公告管理流程](#4.2.1 通知公告管理流程)
[4.2.2 新闻资讯发布流程](#4.2.2 新闻资讯发布流程)
[4.3 系统总体功能设计](#4.3 系统总体功能设计)
[4.4 用户注册时序图](#4.4 用户注册时序图)
[4.5 用户登录时序图](#4.5 用户登录时序图)
[4.6 数据库设计](#4.6 数据库设计)
[4.6.1 概念设计](#4.6.1 概念设计)
[4.6.2 数据库表设计](#4.6.2 数据库表设计)
[5 系统实现](#5 系统实现)
[5.1 普通用户功能模块实现](#5.1 普通用户功能模块实现)
[5.1.1 注册登录模块](#5.1.1 注册登录模块)
[5.1.2 首页模块](#5.1.2 首页模块)
[5.1.3 无人机信息模块](#5.1.3 无人机信息模块)
[5.1.4 在线充值模块](#5.1.4 在线充值模块)
[5.1.5 预约订单模块](#5.1.5 预约订单模块)
[5.1.6 个人中心模块](#5.1.6 个人中心模块)
[5.2 管理员功能模块实现](#5.2 管理员功能模块实现)
[5.2.1 后台首页模块](#5.2.1 后台首页模块)
[5.2.2 无人机信息管理模块](#5.2.2 无人机信息管理模块)
[5.2.3 支付领用管理模块](#5.2.3 支付领用管理模块)
[5.2.4 系统管理模块](#5.2.4 系统管理模块)
[5.2.5 通知公告管理模块](#5.2.5 通知公告管理模块)
[5.2.6 资源管理模块](#5.2.6 资源管理模块)
[6 系统测试](#6 系统测试)
[6.1 测试目的](#6.1 测试目的)
[6.2 测试方法](#6.2 测试方法)
[6.3 测试内容](#6.3 测试内容)
[6.4 测试结论](#6.4 测试结论)
[7 总结](#7 总结)
[附 录](#附 录)
1绪论
1.1研究背景与意义
1.1.1研究背景
随着智慧校园建设的不断推进以及无人机技术在教学实践、科研创新和校园活动中的广泛应用,无人机逐渐成为高校重要的实践设备资源。然而,在实际管理过程中,传统无人机借用与管理方式多依赖人工登记与线下协调,存在设备信息分散、使用状态更新滞后、预约流程繁琐及管理效率低下等问题,难以满足当前校园对资源高效利用与信息化管理的需求。同时,由于缺乏统一的管理平台,设备使用记录不完整、资金流转不透明以及责任追溯困难等现象也日益突出,严重制约了无人机资源的合理配置与规范化使用。
在此背景下,随着Web技术、前后端分离架构及数据库技术的不断发展,为构建智能化设备管理系统提供了良好的技术支撑。基于Spring Boot的后端开发框架与Vue前端框架,能够实现系统高效稳定运行与良好的用户交互体验,并结合MySQL数据库实现数据的统一存储与管理。因此,设计并实现一套基于Spring Boot+Vue的校园共享无人机服务系统,通过信息化手段优化无人机预约、租赁及管理流程,实现设备资源共享与业务流程规范化,对于提升校园无人机管理水平具有重要的现实意义。
1.1.2研究意义
本课题的研究具有重要的理论意义与实际应用价值。在理论层面,围绕"资源共享与信息化管理"理念,将其具体落实到校园无人机服务系统的设计与实现中,探索了前后端分离架构在设备管理系统中的应用模式,丰富了软件工程技术在智慧校园与设备共享领域的研究内容。同时,通过引入Spring Boot与Vue技术,实现业务逻辑与用户界面的高效协同,为构建基于Web的设备全生命周期管理模型提供了实践参考,对相关系统设计具有一定的借鉴意义。
在实践层面,本研究针对当前校园无人机管理中存在的设备利用率低、预约流程复杂、信息不透明及管理效率低等问题,提出并实现了一体化解决方案。系统通过整合无人机信息管理、预约租赁、在线支付及后台管理等功能,实现了设备资源的集中管理与共享使用,有效简化了操作流程,提高了管理效率。同时,系统还通过数据集中存储与处理,实现了用户行为与业务数据的可追溯,有助于规范设备使用与提升管理水平。该系统不仅能够满足校园无人机共享服务的实际需求,还对推动校园信息化建设、促进资源合理配置具有积极意义。
1.2国内外研究现状
1.2.1国内研究现状
近年来,随着智慧校园建设的推进以及无人机技术在教学与科研中的广泛应用,国内学者逐渐关注基于信息化手段的设备共享与管理系统研究。目前,多数研究集中于共享设备管理平台、无人机租赁系统及校园资源管理系统的开发,普遍采用Spring Boot、Vue等主流技术构建前后端分离架构,实现设备信息管理、在线预约、订单处理及数据统计等功能。然而,现有研究多侧重基础功能实现,在系统智能化程度、业务流程优化及数据分析方面仍存在不足,如缺乏对设备状态实时监控、用户行为分析及系统扩展性的深入研究。同时,一些系统在实际应用中仍存在交互体验不佳、数据关联性不足等问题,有待进一步完善与提升。
张晔、刘相前在《新时代背景下无人机技术的发展现状及趋势》研究中指出,随着人工智能与自动控制技术的发展,无人机在自主飞行、智能控制及协同作业等关键技术上不断取得突破,同时通过优化设计实现多样化构型与低成本化发展,推动无人机在多领域的广泛应用与持续升级,体现出无人机技术向智能化、便捷化方向发展的趋势1。杨燈等人在《水利部无人机监测共享服务平台建设及应用研究》中基于B/S架构,结合遥感测绘、地理信息分析及时空大数据管理技术,构建了集任务规划调度、数据处理分析、三维展示及数据共享于一体的服务平台,实现了无人机资源的数字化调度与监测成果的高效共享,并成功应用于水利监测与防灾业务中2。廖小罕等人在《全国无人机遥感数据信息资源共享服务平台》研究中,针对无人机遥感数据结构复杂、类型多样的问题,通过构建统一的数据管理与服务平台,实现多源遥感数据的标准化管理与共享服务,有效解决了不同设备与载荷数据格式不统一的问题,提高了无人机数据资源的利用效率与共享水平3。
1.2.2国外研究现状
在国外,无人机技术应用起步较早,相关设备管理与服务平台研究也较为成熟,尤其在物流配送、农业监测及安防巡检等领域形成了较为完善的无人机管理体系。部分研究结合物联网技术与云平台,实现了无人机设备的远程监控、任务调度及数据实时传输,提升了系统的智能化水平。同时,共享经济模式在国外发展较为成熟,一些设备共享平台已实现在线租赁、自动计费及信用评价等功能。然而,国外研究多面向商业化与工业级应用场景,对校园场景下的轻量化共享系统研究相对较少。此外,相关系统通常成本较高、实现复杂,不完全适用于高校环境。因此,结合校园实际需求,设计简洁高效的无人机共享服务系统仍具有重要研究价值。
Hyeseon Han 等人在《Optimal drone delivery scheduling with split deliveries for multiple restaurants using a shared fleet》研究中,基于混合整数线性规划方法,构建了共享无人机配送调度模型,通过引入分批配送与动态任务分配机制,实现了多餐厅环境下无人机资源的高效调度,有效降低了配送延迟并提升了系统整体运行效率4。Neeraj Kumar 和 Rifaqat Ali 在《Biometric and smart contract enabled secure data sharing in drone-assisted battlefield systems》研究中,结合智能合约与生物识别多因素认证技术,在无人机物联网环境中设计了安全数据共享协议,实现了无人机数据的安全传输与访问控制,有效防御身份伪造、重放攻击等安全威胁,提升了系统的安全性与可靠性5。Stanislaw Gmyrek 等人在《Investigations into optimum non‐periodic bursts scheme in radar pulse train designed for fixed‐wing drone detections by multi‐function radar》研究中,基于多功能雷达平台,采用非周期脉冲发射方案优化雷达资源分配,通过任务共享机制提升无人机检测效率,在保证低功耗的同时实现多任务并行处理,提高了雷达系统对小型无人机的探测能力6。
2相关技术介绍
2.1SpringBoot框架
SpringBoot框架是一种基于Java语言的开源框架,旨在简化Spring应用程序的初始搭建和开发过程。该框架通过提供默认配置和自动装配机制,减少了开发者在配置方面的负担,使得开发者能够快速构建独立的、生产级别的Spring应用程序7。SpringBoot内嵌了Tomcat、Jetty等Servlet容器,无需额外部署WAR文件,可直接通过运行JAR包启动应用。SpringBoot还提供了丰富的Starter依赖,这些依赖模块能够自动集成常用的第三方库,如Spring Data、Spring Security等,极大地简化了依赖管理和项目构建的复杂性。通过SpringBoot Actuator,开发者可以方便地监控和管理应用程序的运行状态,获取健康检查、指标收集等信息。
SpringBoot框架支持RESTful API的开发,能够快速构建基于HTTP协议的Web服务。其核心思想是约定优于配置,通过默认配置和自动化机制,减少了XML配置文件的编写需求8。SpringBoot还支持多种数据访问技术,如JDBC、JPA、MyBatis等,能够与各种数据库进行无缝集成。SpringBoot的配置文件支持YAML和Properties格式,开发者可以根据需求灵活配置应用程序的行为。SpringBoot的自动配置机制基于条件注解实现,能够根据类路径下的依赖自动启用或禁用某些功能模块。SpringBoot还提供了对测试的全面支持,开发者可以通过JUnit、Mockito等工具进行单元测试和集成测试,确保代码的可靠性和稳定性。
2.2Vue技术
Vue技术是一种用于构建用户界面的渐进式JavaScript框架,其核心库专注于视图层的开发9。Vue采用组件化的开发模式,允许开发者将界面拆分为多个可复用的组件,每个组件包含自己的模板、逻辑和样式。Vue的模板语法基于HTML,通过指令和插值表达式实现数据与DOM元素的绑定。Vue支持双向数据绑定,当数据发生变化时,视图会自动更新,反之亦然。Vue还提供了计算属性和侦听器,用于处理复杂的逻辑和数据变化响应。Vue的响应式系统是其核心特性之一,通过Object.defineProperty或Proxy实现数据的劫持和监听,确保数据变化能够及时反映到视图上。
Vue框架支持单文件组件(SFC),将模板、脚本和样式封装在一个文件中,提高了代码的可维护性和可读性10。Vue还提供了丰富的生命周期钩子函数,开发者可以在组件的不同阶段执行特定的操作,如数据初始化、DOM操作等。Vue的路由功能通过Vue Router实现,支持动态路由、嵌套路由和路由守卫等功能,能够构建单页面应用(SPA)。Vue的状态管理通过Vuex实现,Vuex是一个专为Vue设计的状态管理库,采用集中式存储管理应用的所有组件的状态,并通过严格的规则确保状态变更的可预测性。Vue还支持服务端渲染(SSR),通过Nuxt.js等框架能够提升应用的性能和SEO效果。Vue的生态系统丰富,拥有大量的第三方插件和工具,能够满足不同场景下的开发需求。
2.3B/S模式
B/S模式是一种基于浏览器和服务器架构的软件设计模式,其核心思想是将应用程序的主要逻辑和数据处理放在服务器端,而客户端仅负责展示和用户交互。B/S模式通过HTTP协议实现客户端与服务器之间的通信,客户端通常通过浏览器访问服务器提供的Web页面11。B/S模式的优势在于客户端的零安装和跨平台特性,用户只需通过浏览器即可访问应用,无需安装额外的软件。B/S模式通常采用MVC(Model-View-Controller)设计模式,将应用分为模型、视图和控制器三层,模型负责数据处理,视图负责界面展示,控制器负责业务逻辑的调度12。
2.4MySQL数据库
MySQL数据库是一种关系型数据库管理系统(RDBMS),采用结构化查询语言(SQL)进行数据的操作和管理。MySQL支持多种存储引擎,如InnoDB、MyISAM等,每种存储引擎具有不同的特性和适用场景13。InnoDB是MySQL的默认存储引擎,支持事务处理、行级锁定和外键约束,适用于高并发和数据一致性要求较高的场景。MyISAM存储引擎不支持事务处理,但具有较高的查询性能,适用于读多写少的场景。MySQL数据库采用表结构存储数据,表由行和列组成,每行代表一条记录,每列代表一个字段。MySQL支持多种数据类型,如整数、浮点数、字符串、日期时间等,能够满足不同数据类型的存储需求14。
3需求分析
3.1功能需求分析
UML用例图是一种用于描述系统功能需求的图形化建模工具,主要用于展示系统与外部用户(参与者)之间的交互关系。用例图通过参与者、用例以及它们之间的关联关系,直观地表示系统的功能模块及其使用场景。参与者代表与系统交互的外部实体,用例则代表系统提供的具体功能。接下来将对系统按照角色模块进行需求分析。
3.1.1普通用户功能
(1)注册登录:用户通过填写用户名、密码、姓名及学号等基本信息完成注册,并使用账号密码进行身份验证登录系统。
|(2)首页:系统首页集中展示轮播图、热门无人机信息、通知公告及新闻资讯等内容,为用户提供平台整体信息入口。
(3)通知公告:用户可查看管理员发布的各类通知公告信息,及时了解平台规则、使用须知及相关活动。
(4)新闻资讯:用户可以浏览与无人机相关的新闻动态及校园资讯,获取最新行业及校园信息。
(5)无人机信息:用户可查看无人机的名称、型号、续航时间、租金价格、使用状态以及点赞数和点击数等详细信息。
(6)在线充值:用户通过填写充值金额提交充值申请,实现个人账户余额的在线增加。
(7)我的账户:用户可查看当前账户余额、消费情况以及充值记录等资金相关信息。
(8)修改密码:用户可对当前登录账号的密码进行修改,以提高账户的安全性。
(9)个人中心:用户可以查看并编辑个人基本信息,包括姓名、学号、联系方式及头像等内容。
(10)预约订单:用户根据无人机信息填写预约日期、时段及时长等内容,并提交无人机租用预约申请。
(11)支付领用:用户对已生成的预约订单进行费用支付,并完成无人机的领取操作。
(12)预约取消:用户可对尚未完成的预约订单进行取消操作,并更新订单状态。
(13)充值到账:用户可以查看充值申请的处理结果及到账状态,了解充值是否成功。
(14)收藏记录:用户可查看自己收藏的无人机或资讯信息,方便后续快速访问。
(15)点赞记录:用户可查看自己对无人机或资讯内容的点赞记录。
(16)评论管理:用户可以对无人机信息进行评论,并对自己的评论进行查看和管理。
普通用户用例图如图3-1所示。

图3-1 普通用户用例图
3.1.2管理员功能
(1)登录:管理员通过输入账号和密码登录后台管理系统,以进行系统维护与管理操作。
(2)后台首页:后台首页展示系统用户数量、无人机数量、订单数量等统计信息,方便管理员掌握系统运行情况。
(3)系统用户管理:管理员可对系统中的普通用户和管理员信息进行新增、修改、删除及查询操作。
(4)无人机信息管理:管理员可对无人机的基本信息进行维护,包括新增、编辑、删除及地图定位展示等功能。
(5)预约订单管理:管理员可查看所有用户的预约订单信息,并根据需要进行管理与状态更新。
(6)支付领用管理:管理员对用户的支付情况及无人机领用状态进行审核与管理。
(7)预约取消管理:管理员可处理用户提交的预约取消申请,并同步更新相关订单信息。
(8)在线充值管理:管理员对用户提交的充值申请进行审核与管理,确保数据准确。
(9)充值到账管理:管理员确认充值到账情况,并对用户账户余额进行更新处理。
(10)系统管理(轮播图管理):管理员对系统首页轮播图进行添加、修改和删除等维护操作。
(11)通知公告管理:管理员可发布、编辑及删除平台通知公告信息。
(12)资源管理(新闻资讯):管理员对新闻资讯及其分类进行新增、修改和删除等管理操作。
(13)操作日志:系统自动记录管理员的各类操作行为,用于后续的审计与追踪。
(14)设备管理:模块作为系统核心模块之一,实现对无人机信息的增删改查操作,并对设备状态(空闲、使用中、维修中)进行实时监控与管理,以保障设备运行的规范性与可控性。
管理员用例图如图3-2所示。

图3-2管理员用例图
3.2非功能需求分析
- 可用性
系统应具备高可用性,用户在任何时间都能顺畅访问。系统的正常运行时间应达到99.9%以上,用户不会因系统故障而影响操作体验。用户界面设计应简洁明了,降低操作复杂性。
- 可靠性
系统需要具备高可靠性,在故障发生时能够快速恢复。数据应定期备份,在意外情况下不丢失。系统应具备故障检测机制,自动识别并处理潜在问题。
- 安全性
系统应实现严格的安全控制,保护用户数据的隐私和完整性。用户信息应加密存储,传输过程中的数据也需采用加密协议,防止数据泄露。系统应具备权限管理功能,不同用户只能访问相应的数据和功能。
- 可扩展性
系统设计应具备良好的可扩展性,模块化设计使得新功能可以方便地集成,系统能够支持更高的用户负载而无需重构基础架构。
- 性能
系统的响应时间应控制在合理范围内,通常不超过2秒。
3.3可行性分析
3.3.1技术可行性
SpringBoot系统基于Java语言开发,兼容主流操作系统与数据库,具备跨平台特性。系统采用分层架构设计,支持模块化开发与分布式部署,满足高并发场景需求。SpringBoot框架提供自动化配置机制与内嵌服务器,简化部署流程,降低环境依赖性。现有开源社区提供稳定技术支持,第三方组件库覆盖身份认证、数据加密、消息队列等核心功能,开发周期可控。
3.3.2操作可行性
系统具备直观友好的用户界面,支持简便的导航和功能访问,极大地提升了用户的使用体验。系统提供了自定义的工作流程和角色权限管理,使不同层级的用户能够快速上手,完成各自的任务。
3.3.3经济可行性
系统所使用的软件为开源技术,降低了使用费用,同时硬件成本较低,使得整体初始投入相对合理,具备较高性价比。因此,系统在经济上是完全可行的。
4系统设计
4.1系统架构设计
本系统采用典型的B/S架构设计,整体划分为用户表示层、业务逻辑层、数据持久层和基础支撑层四个部分。用户表示层基于Vue框架开发,实现页面交互与数据展示,并通过HTTP与后端进行通信;业务逻辑层以Spring Boot为核心,结合Spring MVC处理业务请求,实现用户管理、无人机预约、订单处理等功能;数据持久层采用MySQL数据库存储系统数据,并通过MyBatis进行数据访问与管理;基础支撑层提供日志管理、安全认证及系统部署等支持服务。各层职责清晰、结构合理,有效降低系统耦合度并提升可维护性,其中Model层负责业务逻辑处理,DAO层负责数据持久化操作。整个系统架构如图4-1所示。

图4-1 系统架构图
4.2系统总体流程设计
4.2.1通知公告管理流程
通知公告管理流程设计管理员登录后进入公告管理模块,选择新增、修改或删除操作。新增与修改需编辑内容、设置发布时间并通过合规性检查后保存发布;删除操作需确认后从数据库移除。最终更新公告列表。该流程核心在于对不同操作类型的分支处理与内容合规性控制。通知公告管理流程图如图4-2所示。

图4-2通知公告管理流程图
4.2.2新闻资讯发布流程
新闻资讯发布流程设计管理员在资源管理中进入资讯管理,点击发布新资讯并编辑标题、正文、上传图片及选择分类。系统校验内容完整性,完整则预览并确认发布,保存至数据库后对外展示;不完整则提示补充。该流程核心在于内容编辑、分类选择与发布确认的多步骤校验。新闻资讯发布流程图如图4-3所示。

图4-3新闻资讯发布流程图
4.3系统总体功能设计
本校园共享无人机服务系统主要面向普通用户与系统管理员两类角色,围绕无人机共享租赁与管理业务构建完整功能体系。用户端提供注册登录、无人机信息浏览、预约租赁、在线充值、支付领用及收藏评论等功能,实现从设备查询到使用反馈的全过程操作;同时支持用户查看订单状态与账户信息,提升使用便捷性。管理端则实现对用户信息、无人机数据、预约订单、充值记录及公告资讯的统一管理,并支持轮播图维护与操作日志记录等功能。通过前后台功能协同,系统实现了无人机资源的高效管理与业务流程的规范运行,保障平台稳定有序运行。系统功能结构图如图4-4所示。

图4-4系统功能结构图
4.4用户注册时序图
用户通过注册界面输入注册信息,系统接收请求后验证数据有效性。验证通过后创建用户账号并保存至数据库,返回注册成功结果。用户随后通过登录界面提交登录请求,系统验证用户凭证后建立会话,授权访问系统功能。用户完成操作后可以选择退出登录,系统清除会话信息。用户注册时序图如图4-5所示。

图4-5用户注册时序图
4.5用户登录时序图
用户输入登录信息后,登录界面将凭证传递至身份验证模块,通过Django框架查询数据库中的用户信息。系统比对密码哈希值,验证成功则创建会话并返回主界面,验证失败则返回错误提示信息。用户登录时序图如图4-6所示。

图4-6 用户登录时序图
4.6数据库设计
在进行数据库设计时,概念设计帮助明确系统的整体结构和需求。在这一阶段,需要确定实体、属性以及它们之间的关系,为后续的数据库表设计奠定基础。接下来,将深入探讨数据库表设计的具体细节,实现更高效的数据存储和管理。
4.6.1概念设计
概念设计是数据库设计的第一步,其主要目标是对系统的数据需求进行全面的理解和抽象。在这一阶段,通过建立实体-关系模型(ER模型)来识别系统中的关键实体、属性及其相互关系15。概念设计的输出是一个清晰的ER图,作为后续数据库表设计的基础。以下将展示系统的全局E-R图以及各个实体的属性图16。系统全局E-R图如图4-7所示。

图4-7系统E-R图
登陆访问时长:用于管理用户登录后生成的临时访问令牌,记录令牌的创建时间、有效时长及关联用户信息,以确保会话安全与状态维护。登陆访问时长实体如图4-8所示。

图4-8登陆访问时长实体图
4.6.2数据库表设计
这一阶段的重点是将概念模型转换为实际的数据库结构,包括表的创建、字段的定义及数据类型的选择。每个实体通常对应于数据库中的一张表,而实体的属性则转化为表的列。以下是系统的数据库表设计展示。
登陆访问时长表主要是用来存储用户的临时访问令牌及其相关信息,以实现登录状态的管理和访问控制。主要包括创建时间、最大寿命、临时访问牌、用户编号等字段。如表4-1所示。
表 4-1-access_token(登陆访问时长)
|----|-------------|-----------|-------|------|------|------------|
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | token_id | int | | 是 | 是 | 临时访问牌ID |
| 2 | token | varchar | 64 | 否 | 否 | 临时访问牌 |
| 3 | info | text | 65535 | 否 | 否 | 信息 |
| 4 | maxage | int | | 是 | 否 | 最大寿命:默认2小时 |
| 5 | create_time | timestamp | | 是 | 否 | 创建时间 |
| 6 | update_time | timestamp | | 是 | 否 | 更新时间 |
| 7 | user_id | int | | 是 | 否 | 用户编号 |
表 4-2-appointment_cancellation(预约取消)
|----|-----------------------------|-----------|-------|------|------|--------|
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | appointment_cancellation_id | int | | 是 | 是 | 预约取消ID |
| 2 | drone_name | varchar | 64 | 否 | 否 | 无人机名称 |
| 3 | drone_model | varchar | 64 | 否 | 否 | 无人机型号 |
| 4 | drone_rent | double | | 否 | 否 | 无人机租金 |
| 5 | regular_user | int | | 否 | 否 | 普通用户 |
| 6 | user_name | varchar | 64 | 否 | 否 | 用户姓名 |
| 7 | user_student_number | varchar | 64 | 否 | 否 | 用户学号 |
| 8 | appointment_date | date | | 否 | 否 | 预约日期 |
| 9 | appointment_period | varchar | 64 | 否 | 否 | 预约时段 |
| 10 | appointment_duration | double | | 否 | 否 | 预约时长 |
| 11 | appointment_order_number | varchar | 64 | 否 | 否 | 预约单号 |
| 12 | appointment_cancellation | text | 65535 | 否 | 否 | 预约取消 |
| 13 | create_time | datetime | | 是 | 否 | 创建时间 |
| 14 | create_by | int | | 是 | 否 | 创建用户ID |
| 15 | update_time | timestamp | | 是 | 否 | 更新时间 |
| 16 | extra | text | 65535 | 否 | 否 | 额外信息 |
| 17 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 18 | source_id | int | | 否 | 否 | 来源ID |
| 19 | source_user_id | int | | 否 | 否 | 来源用户 |
表 4-3-appointment_order(预约订单)
|----|--------------------------------------|-----------|-------|------|------|----------|
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | appointment_order_id | int | | 是 | 是 | 预约订单ID |
| 2 | drone_name | varchar | 64 | 否 | 否 | 无人机名称 |
| 3 | drone_model | varchar | 64 | 否 | 否 | 无人机型号 |
| 4 | drone_rent | double | | 否 | 否 | 无人机租金 |
| 5 | drone_status | varchar | 64 | 否 | 否 | 无人机状态 |
| 6 | regular_user | int | | 否 | 否 | 普通用户 |
| 7 | user_name | varchar | 64 | 否 | 否 | 用户姓名 |
| 8 | user_student_number | varchar | 64 | 否 | 否 | 用户学号 |
| 9 | appointment_date | date | | 否 | 否 | 预约日期 |
| 10 | appointment_period | varchar | 64 | 否 | 否 | 预约时段 |
| 11 | appointment_duration | double | | 否 | 否 | 预约时长 |
| 12 | appointment_information | text | 65535 | 否 | 否 | 预约信息 |
| 13 | appointment_order_number | varchar | 64 | 否 | 否 | 预约单号 |
| 14 | order_status | varchar | 64 | 否 | 否 | 订单状态 |
| 15 | examine_state | varchar | 16 | 是 | 否 | 审核状态 |
| 16 | payment_collar_limit_times | int | | 是 | 否 | 支付领用限制次数 |
| 17 | appointment_cancellation_limit_times | int | | 是 | 否 | 预约取消限制次数 |
| 18 | create_time | datetime | | 是 | 否 | 创建时间 |
| 19 | create_by | int | | 是 | 否 | 创建用户ID |
| 20 | update_time | timestamp | | 是 | 否 | 更新时间 |
| 21 | extra | text | 65535 | 否 | 否 | 额外信息 |
| 22 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 23 | source_id | int | | 否 | 否 | 来源ID |
| 24 | source_user_id | int | | 否 | 否 | 来源用户 |
表 4-4-article(文章)
|----|-------------|-----------|------------|------|------|------|
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | article_id | mediumint | | 是 | 是 | 文章id |
| 2 | title | varchar | 125 | 是 | 是 | 标题 |
| 3 | type | varchar | 64 | 是 | 否 | 文章分类 |
| 4 | hits | int | | 是 | 否 | 点击数 |
| 5 | praise_len | int | | 是 | 否 | 点赞数 |
| 6 | create_time | timestamp | | 是 | 否 | 创建时间 |
| 7 | update_time | timestamp | | 是 | 否 | 更新时间 |
| 8 | source | varchar | 255 | 否 | 否 | 来源 |
| 9 | url | varchar | 255 | 否 | 否 | 来源地址 |
| 10 | tag | varchar | 255 | 否 | 否 | 标签 |
| 11 | content | longtext | 4294967295 | 否 | 否 | 正文 |
| 12 | img | varchar | 255 | 否 | 否 | 封面图 |
| 13 | description | text | 65535 | 否 | 否 | 文章描述 |
表 4-5-article_type(文章分类)
|----|-------------|-----------|-------|------|------|--------|
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | type_id | smallint | | 是 | 是 | 分类ID |
| 2 | display | smallint | | 是 | 否 | 显示顺序 |
| 3 | name | varchar | 16 | 是 | 否 | 分类名称 |
| 4 | father_id | smallint | | 是 | 否 | 上级分类ID |
| 5 | description | varchar | 255 | 否 | 否 | 描述 |
| 6 | icon | text | 65535 | 否 | 否 | 分类图标 |
| 7 | url | varchar | 255 | 否 | 否 | 外链地址 |
| 8 | create_time | timestamp | | 是 | 否 | 创建时间 |
| 9 | update_time | timestamp | | 是 | 否 | 更新时间 |
表 4-6-auth(用户权限管理)
|----|----------------|-----------|-------|------|------|--------|
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | auth_id | int | | 是 | 是 | 授权ID |
| 2 | user_group | varchar | 64 | 否 | 否 | 用户组 |
| 3 | mod_name | varchar | 64 | 否 | 否 | 模块名 |
| 4 | table_name | varchar | 64 | 否 | 否 | 表名 |
| 5 | page_title | varchar | 255 | 否 | 否 | 页面标题 |
| 6 | path | varchar | 255 | 否 | 否 | 路由路径 |
| 7 | parent | varchar | 64 | 否 | 否 | 父级菜单 |
| 8 | parent_sort | int | | 是 | 否 | 父级菜单排序 |
| 9 | position | varchar | 32 | 否 | 否 | 位置 |
| 10 | mode | varchar | 32 | 是 | 否 | 跳转方式 |
| 11 | add | tinyint | | 是 | 否 | 是否可增加 |
| 12 | del | tinyint | | 是 | 否 | 是否可删除 |
| 13 | set | tinyint | | 是 | 否 | 是否可修改 |
| 14 | get | tinyint | | 是 | 否 | 是否可查看 |
| 15 | field_add | text | 65535 | 否 | 否 | 添加字段 |
| 16 | field_set | text | 65535 | 否 | 否 | 修改字段 |
| 17 | field_get | text | 65535 | 否 | 否 | 查询字段 |
| 18 | table_nav_name | varchar | 500 | 否 | 否 | 跨表导航名称 |
| 19 | table_nav | varchar | 500 | 否 | 否 | 跨表导航 |
| 20 | option | text | 65535 | 否 | 否 | 配置 |
| 21 | create_time | timestamp | | 是 | 否 | 创建时间 |
| 22 | update_time | timestamp | | 是 | 否 | 更新时间 |
表 4-7-code_token(验证码)
|----|---------------|-----------|-----|------|------|-------|
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | code_token_id | int | | 是 | 是 | 验证码ID |
| 2 | token | varchar | 255 | 否 | 否 | 令牌 |
| 3 | code | varchar | 255 | 否 | 否 | 验证码 |
| 4 | expire_time | timestamp | | 是 | 否 | 失效时间 |
| 5 | create_time | timestamp | | 是 | 否 | 创建时间 |
| 6 | update_time | timestamp | | 是 | 否 | 更新时间 |
表 4-8-collect(收藏)
|----|--------------|-----------|-----|------|------|-------|
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | collect_id | int | | 是 | 是 | 收藏ID |
| 2 | user_id | int | | 是 | 是 | 收藏人ID |
| 3 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 4 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 5 | source_id | int | | 是 | 否 | 来源ID |
| 6 | title | varchar | 255 | 否 | 否 | 标题 |
| 7 | img | varchar | 255 | 否 | 否 | 封面 |
| 8 | create_time | timestamp | | 是 | 否 | 创建时间 |
| 9 | update_time | timestamp | | 是 | 否 | 更新时间 |
表 4-9-comment(评论)
|----|--------------|-----------|------------|------|------|--------|
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | comment_id | int | | 是 | 是 | 评论ID |
| 2 | user_id | int | | 是 | 是 | 评论人ID |
| 3 | reply_to_id | int | | 是 | 否 | 回复评论ID |
| 4 | content | longtext | 4294967295 | 否 | 否 | 内容 |
| 5 | nickname | varchar | 255 | 否 | 否 | 昵称 |
| 6 | avatar | varchar | 255 | 否 | 否 | 头像地址 |
| 7 | create_time | timestamp | | 是 | 否 | 创建时间 |
| 8 | update_time | timestamp | | 是 | 否 | 更新时间 |
| 9 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 10 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 11 | source_id | int | | 是 | 否 | 来源ID |
| 12 | hidden | tinyint | | 否 | 否 | 是否隐藏 |
| 13 | sticky | tinyint | | 否 | 否 | 是否置顶 |
表 4-10-drone_information(无人机信息)
|----|-------------------------------|-----------|------------|------|------|---------|
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | drone_information_id | int | | 是 | 是 | 无人机信息ID |
| 2 | drone_name | varchar | 64 | 否 | 否 | 无人机名称 |
| 3 | drone_model | varchar | 64 | 否 | 否 | 无人机型号 |
| 4 | drone_endurance | double | | 否 | 否 | 无人机续航 |
| 5 | drone_rent | double | | 否 | 否 | 无人机租金 |
| 6 | drone_status | varchar | 64 | 否 | 否 | 无人机状态 |
| 7 | drone_pictures | varchar | 255 | 否 | 否 | 无人机图片 |
| 8 | introduction_of_uav | longtext | 4294967295 | 否 | 否 | 无人机简介 |
| 9 | hits | int | | 是 | 否 | 点击数 |
| 10 | praise_len | int | | 是 | 否 | 点赞数 |
| 11 | collect_len | int | | 是 | 否 | 收藏数 |
| 12 | comment_len | int | | 是 | 否 | 评论数 |
| 13 | mark_address | varchar | 64 | 否 | 否 | 详细地址 |
| 14 | mark_lng | varchar | 64 | 否 | 否 | 详细地址经度 |
| 15 | mark_lat | varchar | 64 | 否 | 否 | 详细地址纬度 |
| 16 | appointment_order_limit_times | int | | 是 | 否 | 预约限制次数 |
| 17 | create_time | datetime | | 是 | 否 | 创建时间 |
| 18 | create_by | int | | 是 | 否 | 创建用户ID |
| 19 | update_time | timestamp | | 是 | 否 | 更新时间 |
表 4-11-hits(用户点击)
|----|--------------|-----------|-----|------|------|------|
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | hits_id | int | | 是 | 是 | 点赞ID |
| 2 | user_id | int | | 是 | 否 | 点赞人 |
| 3 | create_time | timestamp | | 是 | 否 | 创建时间 |
| 4 | update_time | timestamp | | 是 | 否 | 更新时间 |
| 5 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 6 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 7 | source_id | int | | 是 | 否 | 来源ID |
表 4-12-message_inform(通知记录)
|----|-------------------|-----------|-----|------|------|-------|
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | message_inform_id | int | | 是 | 是 | 通知ID |
| 2 | user_id | int | | 是 | 是 | 通知人ID |
| 3 | title | varchar | 255 | 否 | 否 | 标题 |
| 4 | state | varchar | 255 | 否 | 否 | 状态 |
| 5 | type | varchar | 64 | 否 | 否 | 分类 |
| 6 | content | varchar | 255 | 否 | 否 | 内容 |
| 7 | create_time | timestamp | | 是 | 否 | 创建时间 |
| 8 | update_time | timestamp | | 是 | 否 | 更新时间 |
表 4-13-notice(公告)
|----|-------------|-----------|------------|------|------|------|
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | notice_id | mediumint | | 是 | 是 | 公告ID |
| 2 | title | varchar | 125 | 是 | 否 | 标题 |
| 3 | content | longtext | 4294967295 | 否 | 否 | 正文 |
| 4 | create_time | timestamp | | 是 | 否 | 创建时间 |
| 5 | update_time | timestamp | | 是 | 否 | 更新时间 |
表 4-14-online_recharge(在线充值)
|----|---------------------------------|-----------|----|------|------|-----------------|
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | online_recharge_id | int | | 是 | 是 | 在线充值ID |
| 2 | user_name | varchar | 64 | 否 | 否 | 用户姓名 |
| 3 | user_student_number | varchar | 64 | 否 | 否 | 用户学号 |
| 4 | regular_user | int | | 否 | 否 | 普通用户 |
| 5 | recharge_date | date | | 否 | 否 | 充值日期 |
| 6 | recharge_amount | double | | 否 | 否 | 充值金额 |
| 7 | pay_state | varchar | 16 | 是 | 否 | 支付状态 |
| 8 | pay_type | varchar | 16 | 否 | 否 | 支付类型: 微信、支付宝、网银 |
| 9 | recharge_to_account_limit_times | int | | 是 | 否 | 充值到账限制次数 |
| 10 | create_time | datetime | | 是 | 否 | 创建时间 |
| 11 | create_by | int | | 是 | 否 | 创建用户ID |
| 12 | update_time | timestamp | | 是 | 否 | 更新时间 |
表 4-15-operation_log(操作日志表)
|----|------------------|-----------|----|------|------|--------|
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | operation_log_id | int | | 是 | 是 | 操作日志ID |
| 2 | user_group | varchar | 64 | 否 | 否 | 用户角色 |
| 3 | user_name | varchar | 64 | 否 | 否 | 用户账号 |
| 4 | routes | varchar | 64 | 否 | 否 | 模块名称 |
| 5 | create_time | datetime | | 是 | 否 | 创建时间 |
| 6 | update_time | timestamp | | 是 | 否 | 更新时间 |
表 4-16-payment_collar(支付领用)
|----|--------------------------|-----------|-------|------|------|--------|
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | payment_collar_id | int | | 是 | 是 | 支付领用ID |
| 2 | drone_name | varchar | 64 | 否 | 否 | 无人机名称 |
| 3 | drone_model | varchar | 64 | 否 | 否 | 无人机型号 |
| 4 | drone_rent | double | | 否 | 否 | 无人机租金 |
| 5 | regular_user | int | | 否 | 否 | 普通用户 |
| 6 | user_name | varchar | 64 | 否 | 否 | 用户姓名 |
| 7 | user_student_number | varchar | 64 | 否 | 否 | 用户学号 |
| 8 | appointment_date | date | | 否 | 否 | 预约日期 |
| 9 | appointment_period | varchar | 64 | 否 | 否 | 预约时段 |
| 10 | appointment_duration | double | | 否 | 否 | 预约时长 |
| 11 | appointment_order_number | varchar | 64 | 否 | 否 | 预约单号 |
| 12 | rental_expenses | double | | 否 | 否 | 租金费用 |
| 13 | create_time | datetime | | 是 | 否 | 创建时间 |
| 14 | create_by | int | | 是 | 否 | 创建用户ID |
| 15 | update_time | timestamp | | 是 | 否 | 更新时间 |
| 16 | extra | text | 65535 | 否 | 否 | 额外信息 |
| 17 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 18 | source_id | int | | 否 | 否 | 来源ID |
| 19 | source_user_id | int | | 否 | 否 | 来源用户 |
表 4-17-praise(点赞)
|----|--------------|-----------|-----|------|------|----------------|
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | praise_id | int | | 是 | 是 | 点赞ID |
| 2 | user_id | int | | 是 | 是 | 点赞人 |
| 3 | create_time | timestamp | | 是 | 否 | 创建时间 |
| 4 | update_time | timestamp | | 是 | 否 | 更新时间 |
| 5 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 6 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 7 | source_id | int | | 是 | 否 | 来源ID |
| 8 | status | tinyint | | 是 | 否 | 点赞状态:1为点赞,0已取消 |
| 9 | img | varchar | 255 | 否 | 否 | |
| 10 | title | varchar | 255 | 否 | 否 | |
表 4-18-recharge_to_account(充值到账)
|----|------------------------|-----------|-------|------|------|--------|
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | recharge_to_account_id | int | | 是 | 是 | 充值到账ID |
| 2 | user_name | varchar | 64 | 否 | 否 | 用户姓名 |
| 3 | user_student_number | varchar | 64 | 否 | 否 | 用户学号 |
| 4 | regular_user | int | | 否 | 否 | 普通用户 |
| 5 | recharge_date | date | | 否 | 否 | 充值日期 |
| 6 | recharge_amount | double | | 否 | 否 | 充值金额 |
| 7 | create_time | datetime | | 是 | 否 | 创建时间 |
| 8 | create_by | int | | 是 | 否 | 创建用户ID |
| 9 | update_time | timestamp | | 是 | 否 | 更新时间 |
| 10 | extra | text | 65535 | 否 | 否 | 额外信息 |
| 11 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 12 | source_id | int | | 否 | 否 | 来源ID |
| 13 | source_user_id | int | | 否 | 否 | 来源用户 |
表 4-19-regular_user(普通用户)
|----|---------------------|-----------|----|------|------|--------|
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | regular_user_id | int | | 是 | 是 | 普通用户ID |
| 2 | user_name | varchar | 64 | 否 | 否 | 用户姓名 |
| 3 | user_gender | varchar | 64 | 否 | 否 | 用户性别 |
| 4 | user_student_number | varchar | 64 | 是 | 是 | 用户学号 |
| 5 | user_wallet | double | | 否 | 否 | 用户钱包 |
| 6 | examine_state | varchar | 16 | 是 | 否 | 审核状态 |
| 7 | user_id | int | | 是 | 否 | 用户ID |
| 8 | create_time | datetime | | 是 | 否 | 创建时间 |
| 9 | create_by | int | | 是 | 否 | 创建用户ID |
| 10 | update_time | timestamp | | 是 | 否 | 更新时间 |
表 4-20-slides(轮播图)
|----|-------------|-----------|-----|------|------|-------|
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | slides_id | int | | 是 | 是 | 轮播图ID |
| 2 | title | varchar | 64 | 否 | 否 | 标题 |
| 3 | content | varchar | 255 | 否 | 否 | 内容 |
| 4 | url | varchar | 255 | 否 | 否 | 链接 |
| 5 | img | varchar | 255 | 否 | 否 | 轮播图 |
| 6 | hits | int | | 是 | 否 | 点击量 |
| 7 | create_time | timestamp | | 是 | 否 | 创建时间 |
| 8 | update_time | timestamp | | 是 | 否 | 更新时间 |
表 4-21-upload(文件上传)
|----|-----------|---------|-----|------|------|------|
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | upload_id | int | | 是 | 是 | 上传ID |
| 2 | name | varchar | 64 | 否 | 否 | 文件名 |
| 3 | path | varchar | 255 | 否 | 否 | 访问路径 |
| 4 | file | varchar | 255 | 否 | 否 | 文件路径 |
| 5 | display | varchar | 255 | 否 | 否 | 显示顺序 |
| 6 | father_id | int | | 否 | 否 | 父级ID |
| 7 | dir | varchar | 255 | 否 | 否 | 文件夹 |
| 8 | type | varchar | 32 | 否 | 否 | 文件类型 |
表 4-22-user(用户账户)
|----|-------------|-----------|-----|------|------|-----------------------------|
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | user_id | int | | 是 | 是 | 用户ID |
| 2 | state | smallint | | 是 | 否 | 账户状态:(1可用|2异常|3已冻结|4已注销) |
| 3 | user_group | varchar | 32 | 否 | 否 | 所在用户组 |
| 4 | login_time | timestamp | | 否 | 否 | 上次登录时间 |
| 5 | phone | varchar | 11 | 否 | 否 | 手机号码 |
| 6 | phone_state | smallint | | 是 | 否 | 手机认证:(0未认证|1审核中|2已认证) |
| 7 | username | varchar | 16 | 是 | 否 | 用户名 |
| 8 | nickname | varchar | 16 | 否 | 否 | 昵称 |
| 9 | password | varchar | 64 | 是 | 否 | 密码 |
| 10 | email | varchar | 64 | 否 | 否 | 邮箱 |
| 11 | email_state | smallint | | 是 | 否 | 邮箱认证:(0未认证|1审核中|2已认证) |
| 12 | avatar | varchar | 255 | 否 | 否 | 头像地址 |
| 13 | open_id | varchar | 255 | 否 | 否 | 针对获取用户信息字段 |
| 14 | create_time | timestamp | | 是 | 否 | 创建时间 |
表 4-23-user_group(用户组)
|----|--------------|-----------|-----|------|------|-------|
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | group_id | mediumint | | 是 | 是 | 用户组ID |
| 2 | display | smallint | | 是 | 否 | 显示顺序 |
| 3 | name | varchar | 16 | 是 | 否 | 名称 |
| 4 | description | varchar | 255 | 否 | 否 | 描述 |
| 5 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 6 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 7 | source_id | int | | 是 | 否 | 来源ID |
| 8 | register | smallint | | 否 | 否 | 注册位置 |
| 9 | create_time | timestamp | | 是 | 否 | 创建时间 |
| 10 | update_time | timestamp | | 是 | 否 | 更新时间 |
5系统实现
5.1普通用户功能模块实现
5.1.1注册登录模块
注册登录:用户通过填写用户名、密码、姓名及学号等基本信息完成注册,并使用账号密码进行身份验证登录系统。界面如图5-1所示。

图5-1 注册登录界面
5.1.2首页模块
首页:系统首页集中展示轮播图、热门无人机信息、通知公告及新闻资讯等内容,为用户提供平台整体信息入口。界面如图5-2所示。

图5-2 首页界面
5.1.3无人机信息模块
无人机信息:用户可查看无人机的名称、型号、续航时间、租金价格、使用状态以及点赞数和点击数等详细信息。界面如图5-3所示。

图5-3 无人机信息界面
5.1.4在线充值模块
在线充值:用户通过填写充值金额提交充值申请,实现个人账户余额的在线增加。界面如图5-4所示。

图5-4 在线充值界面
5.1.5预约订单模块
预约订单:用户根据无人机信息填写预约日期、时段及时长等内容,并提交无人机租用预约申请。界面如图5-5所示。

图5-5 预约订单界面
5.1.6个人中心模块
个人中心:用户可以查看并编辑个人基本信息,包括姓名、学号、联系方式及头像等内容。界面如图5-6所示。

图5-6 个人中心界面
5.2管理员功能模块实现
5.2.1后台首页模块
后台首页:后台首页展示系统用户数量、无人机数量、订单数量等统计信息,方便管理员掌握系统运行情况。界面如图5-7所示。

图5-7后台首页界面
5.2.2无人机信息管理模块
无人机信息管理:管理员可对无人机的基本信息进行维护,包括新增、编辑、删除及地图定位展示等功能。界面如图5-8所示。

图5-8无人机信息管理界面
5.2.3支付领用管理模块
支付领用管理:管理员对用户的支付情况及无人机领用状态进行审核与管理。界面如图5-9所示。

图5-9支付领用管理界面
5.2.4系统管理模块
系统管理(轮播图管理):管理员对系统首页轮播图进行添加、修改和删除等维护操作。界面如图5-10所示。

图5-10 系统管理界面
5.2.5通知公告管理模块
通知公告管理:管理员可发布、编辑及删除平台通知公告信息。界面如图5-11所示。

图5-11 通知公告管理界面
5.2.6资源管理模块
资源管理(新闻资讯):管理员对新闻资讯及其分类进行新增、修改和删除等管理操作。界面如图5-12所示。

图5-12 资源管理界面
6系统测试
6.1测试目的
测试的主要目的是确保系统的功能和性能满足预期的需求,同时识别和修复潜在的缺陷。通过系统测试,可以验证各个功能模块的正确性和稳定性,确保系统在不同使用场景下的表现符合设计要求。测试目的包括确认系统功能的完整性、验证数据处理的准确性、评估系统的性能和安全性。测试还可以提高用户满意度,保证用户在使用系统时获得流畅和可靠的体验。通过全面的测试,可以降低后期维护成本,减少系统上线后出现故障的风险,从而保障系统的长期稳定运行。
6.2测试方法
在本系统中,测试方法主要依赖于测试用例的设计与执行。测试用例是根据系统需求文档编写的,覆盖所有功能模块及其边界情况。每个测试用例包含输入数据、预期结果和实际结果的对比,以验证系统的功能是否按预期工作。
常见的测试用例包括功能测试用例、边界测试用例和异常测试用例。功能测试用例针对系统的各项功能进行验证;边界测试用例则侧重于输入数据的边界条件,验证系统在极端情况下是否能够稳定运行;异常测试用例则用于验证系统在处理错误输入或异常情况时的反应17。本文选择功能测试用例进行系统测试。
在测试执行过程中,记录每个用例的执行结果,并根据实际结果与预期结果的对比,判断系统是否存在缺陷。通过系统化的测试用例执行,可以有效提高测试的覆盖率和效率,为系统的最终上线提供保障。
6.3测试内容
注册登录模块测试主要针对系统身份认证与账户管理机制的有效性进行评估,验证用户账户的创建流程、凭证验证逻辑以及会话管理的正确性,确保系统访问控制的基础功能符合设计规范。注册登录测试如表6-1所示。
表6-1 注册登录测试用例表
|----------|-----------------|-----------------|------|
| 测试内容 | 测试步骤 | 预期结果 | 实际结果 |
| 用户注册功能验证 | 提交新用户注册信息并完成流程 | 系统成功创建账户并提示注册成功 | 符合预期 |
| 用户登录功能验证 | 使用已注册账户凭证进行登录操作 | 系统验证通过并跳转至个人主页 | 一致 |
通知公告模块测试旨在检验系统信息发布与展示功能的完整性,重点关注静态内容的检索效率、页面渲染准确性以及用户界面交互的流畅性,确保公告信息服务能够稳定可靠地运行。通知公告测试如表6-2所示。
表6-2 通知公告测试用例表
|--------|----------------|----------------|----------------------|------|
| 测试项 | 测试目的 | 测试步骤 | 预期结果 | 实际结果 |
| 公告信息展示 | 验证公告内容查询与呈现功能 | 访问公告页面并查看已发布信息 | 页面正确加载并显示公告列表与详细内容 | 测试成功 |
| 公告分页浏览 | 验证大量公告时的数据分页机制 | 请求不同页码的公告列表数据 | 系统返回对应分页的公告条目,导航功能正常 | 符合预期 |
新闻资讯模块测试评估系统内容管理子系统的功能性表现,主要验证资讯数据的组织架构、分类检索能力以及详细内容的准确呈现,确保用户能够高效获取所需信息。新闻资讯测试如表6-3所示。
表6-3 新闻资讯测试用例表
|----|--------|----------------|----------------------|------|
| 序号 | 测试功能 | 测试步骤 | 预期结果 | 实际结果 |
| 1 | 资讯列表查询 | 进入资讯栏目查看所有内容条目 | 页面完整展示资讯的标题、摘要及相关元信息 | 一致 |
| 2 | 资讯详情访问 | 选择特定资讯条目查看完整内容 | 系统加载并呈现该资讯的全部正文与附属资源 | 测试成功 |
| 3 | 资讯分类筛选 | 根据预设分类条件过滤资讯列表 | 页面仅显示符合所选分类的资讯内容 | 符合预期 |
无人机信息模块测试主要针对无人机基础数据管理功能进行验证,重点检查信息录入、查询及更新等操作的准确性与数据一致性,确保系统运行稳定。无人机信息测试如表6-4所示。
表6-4无人机信息测试用例表
|-------|---------|------------------------|------------------|------|----|
| 模块名称 | 测试内容 | 操作 | 预期结果 | 实际结果 | 结论 |
| 无人机信息 | 新增无人机信息 | 填写无人机名称、型号、续航、租金等信息并提交 | 系统成功保存数据并生成对应记录 | 一致 | 通过 |
| 无人机信息 | 查询无人机信息 | 输入关键词或筛选条件进行查询 | 系统返回符合条件的无人机信息列表 | 测试成功 | 通过 |
6.4测试结论
通过对测试用例的全面执行,测试结果表明系统能够正确完成预期功能,满足设计需求。各项功能用例包括登录、注册、数据查询、信息管理等均通过验证,测试结果与设计目标一致,系统操作逻辑清晰,数据处理准确无误。测试未发现重大缺陷,符合部署标准。
7总结
本课题基于Spring Boot+Vue的校园共享无人机服务系统设计与实现,旨在解决当前校园无人机设备管理中存在的资源利用率低、预约流程复杂、设备状态不透明及资金管理不规范等问题。传统管理模式主要依赖人工登记与线下协调,难以实现高效调度与实时信息更新,已无法满足智慧校园建设背景下对设备共享与信息化管理的需求。为此,本研究通过对校园无人机使用场景及业务流程进行深入分析,提出构建基于B/S架构的无人机共享服务平台,实现设备管理与租赁服务的一体化。
系统采用Spring Boot作为后端开发框架,负责核心业务逻辑处理,具备良好的稳定性与扩展性;前端基于Vue框架构建,实现界面组件化与交互响应式设计;数据库选用MySQL,用于存储用户信息、无人机数据、订单记录及资金信息,保障数据的一致性与安全性。在系统开发过程中,严格遵循软件工程开发流程,从需求分析、系统设计到编码实现与测试验证,逐步完善系统功能。
系统通过划分普通用户与管理员两类角色,构建了完整的业务功能体系。用户端实现了无人机信息浏览、预约租赁、在线充值、支付领用、收藏点赞及评论等功能;管理端则实现了无人机信息维护、订单管理、充值审核、公告发布及操作日志记录等功能。系统在多轮测试中运行稳定,能够实现数据实时更新与业务流程规范化,有效提升了无人机设备的使用效率与管理水平,为校园设备共享服务提供了一种可行的技术实现方案。
参考文献
- 张晔,刘相前.新时代背景下无人机技术的发展现状及趋势J.科技与创新,2026,(06):56-58+65.
- 杨燈, 熊龙海, 陈德清, 查晨峰, 唐俊杰.水利部无人机监测共享服务平台建设及应用研究A2024中国水利学术大会论文集(第一分册)C. 中国水利学会、西安理工大学, 中国水利学会, 2024: 6.
- 廖小罕,刘霞,王俊伟.全国无人机遥感数据信息资源共享服务平台J.中国测绘,2023,(01):74-77.
- Hyeseon Han,Young Dae Ko,Yonghui Oh.Optimal drone delivery scheduling with split deliveries for multiple restaurants using a shared fleetJ.Computers & Industrial Engineering,2026,212111663-111663.
- Neeraj Kumar,Rifaqat Ali.Biometric and smart contract enabled secure data sharing in drone-assisted battlefield systemsJ.Computers and Electrical Engineering,2025,124(PB):110407-110407.
- Stanislaw Gmyrek,Dawid Sysak,Pawel Biernacki,Grzegorz Jaromi.Investigations into optimum non‐periodic bursts scheme in radar pulse train designed for fixed‐wing drone detections by multi‐function radarJ.IET Radar, Sonar & Navigation,2024,18(10):1874-1886.
- 王志亮,纪松波.基于SpringBoot的Web前端与数据库的接口设计J.工业控制计算机,2023,36(03):51-53.
- 熊永平.基于SpringBoot框架应用开发技术的分析与研究J.电脑知识与技术,2021,15(36):76-77.
- 赵媛.基于Vue的Web系统前端性能优化分析J.电脑编程技巧与维护,2024,(09):44-46.
- 秦冬.浅析Vue框架在前端开发中的应用J.信息与电脑(理论版),2024,36(13):61-63.
- 刘江涛,王亮亮,吴庆茹,等.基于B/S模式的铁路勘测设计案例信息化管理系统设计与实现J.铁路计算机应用,2021,30(03):32-35.
- 张丹丹,李弘.基于B/S架构的办公管理系统设计与开发J.铁路通信信号工程技术,2024,21(09):44-48+106.
- 李艳杰.MySQL数据库下存储过程的综合运用研究J.现代信息科技,2023,7(11):80-82+88.
- 赵停停.基于MySQL数据库技术的Web动态网页设计研究J.信息与电脑(理论版),2023,35(17):174-176.
- 周晓玉,崔文超.基于Web技术的数据库应用系统设计J.信息与电脑(理论版),2023,35(09):189-191.
- 马艳艳,吴晓光.计算机软件与数据库的设计策略分析J.电子技术,2024,53(05):104-105.
- 李俊萌.计算机软件测试技术与开发应用策略分析J.信息记录材料,2023,24(03):50-52.
- 牟艳霞.基于SpringBoot+Vue技术的在线培训平台的设计思路研究J.软件,2025,46(12):10-12.
- 张洁芸,张帆,王晨,邹黎强.基于BIM与无人机技术的水利工程全生命周期设施设备运维管理优化策略J.无人机,2026,(01):123-125.
- 戚志华,王杨生,张海文.基于无人机技术的测绘工程质量控制研究J.科技与创新,2025,(15):147-150.
致谢
在本项目的实施过程中,许多人给予了我无私的支持和帮助,令我深感感谢。
我要衷心感谢我的指导老师。不仅在项目的初期提供了宝贵的建议,还在整个过程中给予了我细致入微的指导。专业知识和严谨态度始终激励着我,让我在遇到困难时能够保持信心,继续前行。每一次的讨论都让我对项目有了更深刻的理解,帮助我克服了许多技术难题。
我也要感谢参与用户测试的同学们。你们的反馈和建议为我们系统的优化提供了重要的参考,帮助我们更好地理解用户需求。正是因为有了你们的参与,我们才能够不断改进,提升系统的用户体验。感谢所有支持我的家人和朋友。你们的理解与鼓励让我在项目的紧张时刻始终能够保持积极的心态,成为我前进的动力。每当我遇到挑战时,想到你们的支持,我就能够重新振作,继续努力。最后,我要感谢所有在我职业发展过程中给予帮助的人。每一次的交流与分享都让我受益匪浅,拓宽了我的视野,让我在这条道路上走得更加坚定。
项目的完成不仅是我个人努力的结果,更是许多人共同支持与协作的成果。在此,我再次向所有关心和支持我的人表达衷心的感谢。希望未来我们能够继续携手,共同创造更多的价值和成就。
请关注点赞+私信博主,免费领取项目源码