# Drone Rental System

> 该项目是无人机的租赁系统，也可以是其他的设备、器材租赁，技术栈：Java 21 + Spring Boot 3.5.13 + Vue 3 + Spring AI + MCP + AI Memory，其他的技术栈Dify/Coze、 Python LangChain/LangGraph Agent 。项目是开源的，免费学习的，star支持一下，不断更新中。

- **Type:** MCP server
- **Install:** `agentstack add mcp-springmeng-drone-rental-system`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [springmeng](https://agentstack.voostack.com/s/springmeng)
- **Installs:** 0
- **Category:** [AI & ML](https://agentstack.voostack.com/c/ai-and-ml)
- **Latest version:** 0.1.0
- **License:** Apache-2.0
- **Upstream author:** [springmeng](https://github.com/springmeng)
- **Source:** https://github.com/springmeng/Drone-Rental-System
- **Website:** https://www.javaclimb.com/

## Install

```sh
agentstack add mcp-springmeng-drone-rental-system
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# 🚁 基于AI+Agent+Rag无人机设备器材租赁系统

**一个面向租赁业务场景的 AI 无人机租赁平台，集成用户租赁、后台运营、资质审核、空域备案、故障报修与 AI 智能问答能力。**

---

## 📌 项目简介

本项目是一个适合毕业设计、课程设计、作品集展示和二次开发学习的全栈实战项目，围绕“无人机设备浏览、资质提交、下单租赁、支付管理、空域备案、归还结算、故障报修、后台审核、AI 咨询助手”构建完整业务闭环。

项目采用前后端分离架构：

- `backend`：Spring Boot 3 + MyBatis-Plus 后端服务
- `drone-rental-web`：Vue 3 + Vite + Element Plus 前端项目
- `ai-agent-service`：可选的 Python FastAPI + LangChain/LangGraph 智能体服务
- `sql`：数据库初始化脚本与 AI 扩展表脚本

项目技术架构图：

---

## ✨ 项目亮点

- 支持用户端与管理端双端场景，业务闭环完整
- 支持无人机租赁、支付、空域备案、故障报修、维修管理
- 支持用户飞行资质提交与后台审核
- 集成 AI 问答助手，可用于设备推荐、规则说明、订单解读
- 支持 Spring AI、MCP、RAGFlow、Dify、Coze 等扩展接入
- 提供可选 Python 智能体服务，便于做 AI 能力演示与教学拓展
- 代码结构清晰，适合学习全栈项目分层设计与工程化组织

---

## 🧩 项目功能

### 👤 用户端功能

- 用户注册、登录、个人中心
- 无人机列表浏览、筛选、详情查看
- 在线创建租赁订单
- 订单支付、订单查询、订单详情查看
- 用户资质上传与审核结果查看
- 空域备案提交与备案结果查询
- 故障报修提交
- 订单评价与互动
- AI 智能咨询助手

### 🛠️ 管理端功能

- 管理员登录
- 控制台数据总览
- 用户管理
- 用户资质审核
- 无人机设备管理
- 订单管理
- 故障报修审核
- 维修工单管理
- 评论与评价管理

### 🤖 AI 智能体能力

- 设备推荐与租赁规则问答
- 订单状态解读与流程说明
- 资质审核前置提醒
- 故障上报流程引导
- AI 记忆、调用日志、会话追踪
- 可通过 HTTP Tool / MCP 方式对外提供业务工具能力

---

## 🧱 技术介绍

### 🔙 后端技术栈

| 技术              | 版本            | 说明                       |
| ----------------- | --------------- | -------------------------- |
| Java              | 21              | 项目运行语言               |
| Spring Boot       | 3.5.13          | 后端核心框架               |
| Spring MVC        | Spring Boot Web | REST API 开发              |
| MyBatis-Plus      | 3.5.16          | ORM 与分页查询             |
| MySQL             | 8.0+            | 主数据库                   |
| Druid             | 1.2.28          | 数据库连接池               |
| JWT               | 0.12.6          | 登录鉴权                   |
| springdoc-openapi | 2.8.17          | Swagger / OpenAPI 文档     |
| Spring AI         | 1.1.5           | AI 对话、Tool Calling、MCP |
| Hutool            | 5.8.22          | 工具类库                   |
| Lombok            | -               | 简化 Java 模板代码         |

### 🖥️ 前端技术栈

| 技术         | 版本   | 说明               |
| ------------ | ------ | ------------------ |
| Vue          | 3.4.21 | 前端核心框架       |
| Vite         | 5.2.x  | 构建工具           |
| Element Plus | 2.6.1  | 管理端与业务组件库 |
| Pinia        | 2.1.7  | 状态管理           |
| Vue Router   | 4.3.0  | 路由管理           |
| Axios        | 1.6.8  | 请求封装           |
| ECharts      | 6.0.0  | 管理端图表展示     |
| Sass         | 1.72.0 | 样式预处理         |

### 🧠 AI 技术栈

| 技术                          | 说明                             |
| ----------------------------- | -------------------------------- |
| Spring AI                     | 主 AI 调用链路                   |
| OpenAI Compatible API         | 可接 OpenAI、DeepSeek 等兼容接口 |
| MCP                           | 对外暴露 AI 工具能力             |
| RAGFlow                       | 可选知识库问答与降级链路         |
| Dify / Coze                   | 可选外部工作流平台接入           |
| FastAPI + LangChain/LangGraph | 可选 Python 智能体服务           |

---

## 🏗️ 框架介绍

本项目采用经典的前后端分离设计，并在业务系统基础上扩展了 AI 能力接入层。

### 📦 后端框架

- 基于 `Spring Boot 3` 构建 RESTful API
- 通过 `MyBatis-Plus` 完成数据库访问与实体映射
- 使用 `JWT` 实现用户端和管理端认证鉴权
- 通过 `springdoc-openapi` 自动生成接口文档
- 使用 `Spring AI` 完成模型接入、工具调用与 AI 能力编排

### 🎨 前端框架

- 基于 `Vue 3 + Vite` 搭建 SPA 应用
- 使用 `Element Plus` 快速构建后台和业务界面
- 使用 `Pinia` 管理登录态、用户信息与权限数据
- 使用 `Vue Router` 区分用户端、管理端和认证页面

### 🔌 AI 扩展框架

- Java 主链路默认通过 `Spring AI` 工作
- 可选接入 `RAGFlow` 作为知识库与兜底问答能力
- 可通过 `MCP` 或 `HTTP Tool` 让外部 AI 平台调用业务工具
- 可选启用 `ai-agent-service`，以 Python 方式做 LangChain/LangGraph 演示

---

## 🏛️ 架构设计

### 🧭 系统架构

### 🧱 后端分层说明

- `controller`：接口层，负责接收请求与返回结果
- `service`：业务层，负责订单、设备、资质、维修、AI 对话等业务逻辑
- `mapper`：数据访问层，负责数据库读写
- `entity / dto / vo`：实体、传输对象与视图对象
- `security`：JWT、管理员权限与拦截逻辑
- `ai`：AI 模型接入、工具注册、记忆与日志追踪

### 🔄 核心业务流程

1. 用户注册登录后浏览无人机设备。
2. 用户提交飞行资质，等待后台审核。
3. 用户选择设备创建租赁订单并支付。
4. 用户在租赁过程中可查看订单状态、提交空域备案或报修。
5. 管理员在后台完成审核、发货、维修、评价管理等工作。
6. AI 助手贯穿设备咨询、下单引导、订单解释、报修帮助等场景。

---

## 📂 项目结构

```text
2-AI无人机租赁
├─ backend                    # Spring Boot 后端服务
│  ├─ src/main/java/com/drone/rental
│  │  ├─ ai                   # AI 相关能力
│  │  ├─ common               # 通用返回与工具类
│  │  ├─ config               # 配置类
│  │  ├─ controller           # 接口控制层
│  │  ├─ dto                  # 数据传输对象
│  │  ├─ entity               # 实体类
│  │  ├─ integration          # 外部集成
│  │  ├─ mapper               # MyBatis-Plus 映射
│  │  ├─ security             # 鉴权与权限控制
│  │  ├─ service              # 业务服务
│  │  ├─ util                 # 工具类
│  │  └─ vo                   # 视图对象
│  └─ uploads                 # 本地上传资源
├─ drone-rental-web           # Vue 前端项目
│  ├─ src/api                 # 前端接口封装
│  ├─ src/components          # 公共组件
│  ├─ src/layouts             # 布局组件
│  ├─ src/router              # 路由配置
│  ├─ src/stores              # Pinia 状态管理
│  └─ src/views               # 页面视图
├─ ai-agent-service           # 可选 Python AI Agent 服务
├─ sql                        # 数据库脚本
├─ docs                       # 技术文档与部署文档
└─ openspec                   # 变更与规范文档
```

---

## 🖼️ 项目截图

> 下方已预留截图插入位置，上传到 Gitee 前将图片放到如 `docs/images/` 目录，然后替换路径即可。

### 🏠 首页展示

### 👤 用户端页面

### 🛠️ 管理端页面

### 🤖 AI 助手页面-带上下文翻译和记忆功能

## 🚀 部署介绍

### 💻 环境要求

- JDK 21 及以上
- Maven 3.9 及以上
- Node.js 18 及以上
- npm 9 及以上
- MySQL 8.0 及以上
- 可选：Python 3.11+、`uv`、RAGFlow

### 🌐 端口规划建议

| 服务                       | 默认端口        | 说明                      |
| -------------------------- | --------------- | ------------------------- |
| 后端 `backend`             | `8080`          | 实际接口前缀为 `/api`     |
| 前端 `drone-rental-web`    | `5173`          | Vite 开发服务默认端口     |
| AI 服务 `ai-agent-service` | `8090`          | 可选 LangChain 服务       |
| MySQL                      | `3306` 或自定义 | 当前配置示例使用了 `5455` |

### ⚙️ 后端配置说明

后端主配置文件：

- `backend/src/main/resources/application.yml`

关键配置项包括：

- 服务端口：`server.port=8080`
- 接口前缀：`/api`
- 数据库连接：`spring.datasource.*`
- JWT 密钥：`jwt.secret`
- 文件上传目录：`file.upload-path=uploads/`
- AI 模型与 RAGFlow 配置：`ai.*`、`spring.ai.*`

### 🔐 环境变量说明

项目根目录已提供：

- `.env.example`
- `.env.deepseek.example`

其中常用变量如下：

| 变量名                        | 说明                       |
| ----------------------------- | -------------------------- |
| `AI_MODEL_ENABLED`            | 是否启用云模型             |
| `AI_MODEL_BASE_URL`           | OpenAI Compatible API 地址 |
| `AI_MODEL_API_KEY`            | 模型 API Key               |
| `AI_MODEL_CHAT_MODEL`         | 对话模型名称               |
| `AI_AGENT_MODE`               | `spring-ai` 或 `langchain` |
| `AI_AGENT_LANGCHAIN_BASE_URL` | Python Agent 地址          |
| `AI_RAGFLOW_BASE_URL`         | RAGFlow 地址               |
| `AI_MCP_SERVER_ENABLED`       | 是否启用 MCP               |
| `AI_MCP_API_KEY`              | MCP / HTTP Tool 鉴权密钥   |

---

## ▶️ 启动教程

### 1️⃣ 初始化数据库

先创建数据库，并执行 `sql/init.sql`：

```sql
CREATE DATABASE drone_rental DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
```

然后导入：

```bash
mysql -u root -p drone_rental  建议开源演示时保留示例数据，但在线部署到公网后务必第一时间修改默认账号密码。

---

## 🧭 页面与模块说明

### 🖥️ 前端页面

用户端主要页面：

- 首页 `Home`
- 无人机列表 `DroneList`
- 无人机详情 `DroneDetail`
- 我的订单 `MyOrders`
- 订单详情 `OrderDetail`
- 订单支付 `OrderPay`
- 个人中心 `Profile`
- 故障报修 `FaultReport`

管理端主要页面：

- 控制台 `Dashboard`
- 用户管理 `UserManagement`
- 资质审核 `AuditManagement`
- 无人机管理 `DroneManagement`
- 订单管理 `OrderManagement`
- 故障审核 `FaultAudit`
- 维修管理 `MaintenanceManagement`
- 评论管理 `CommentManagement`

### 🔌 后端接口模块

后端主要控制器模块：

- `AuthController`
- `UserController`
- `DroneController`
- `OrderController`
- `AirspaceController`
- `FaultController`
- `CommentController`
- `AiController`
- `AiMemoryController`
- `AiToolController`
- `Admin*Controller`

---

## 📚 文档资料

项目内还提供了较完整的补充文档，可继续深入学习：

- `docs/AI智能体无人机租赁系统-技术文档.md`
- `docs/技术方案.md`
- `docs/操作手册.md`
- `docs/ai/deployment-ai.md`
- `docs/ai/ragflow-deploy.md`
- `docs/ai/dify-tools.md`
- `docs/ai/coze-tools.md`

---

## 🧪 开源学习建议

欢迎学习，这个项目技术栈非常全，非常多。学习技术完全没问题。建议实操一把。

---

## 📄 License

本项目适合用于学习交流、项目面试，课程设计、毕业设计参考与功能扩展。禁止商用，需要找小孟授权。

❤️star支持，更详细的资料和更详细的文档不断更新中。

---

## ❤️ 致谢

感谢以下开源技术生态：

- [www.javaclimb.com](http://www.javaclimb.com)
- [www.pdxmw.com](http://www.pdxmw.com)
- 程序员小孟
- 王铭浩

---

**如果这个项目对你有帮助，欢迎在 Gitee 点个 Star。这是对我最大支持。**

## Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [springmeng](https://github.com/springmeng)
- **Source:** [springmeng/Drone-Rental-System](https://github.com/springmeng/Drone-Rental-System)
- **License:** Apache-2.0
- **Homepage:** https://www.javaclimb.com/

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** yes
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** yes
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/mcp-springmeng-drone-rental-system
- Seller: https://agentstack.voostack.com/s/springmeng
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
