docs: 完善文档内容,更新地址和路径信息
Some checks failed
continuous-integration/drone/push Build is failing

更新内容:

前后端架构说明.md:
- 更新项目状态说明,反映 martial-web 已存在
- 添加开发环境和生产环境架构对比图
- 添加详细的请求流程示例
- 更新访问地址为域名(生产环境)
- 更新开发方式说明,包含本地全栈开发
- 完善环境对比表,包含开发和生产地址
- 强调 martial-web 项目而非商业版 Saber

开发指南.md:
- 更新 SQL 脚本路径:doc/sql/ → database/

总体改进:
- 所有生产环境地址使用域名替代 IP:端口
- 反映当前项目的实际状态(前后端都已部署)
- 提供开发和生产两种环境的清晰对比
- 帮助开发者快速理解完整的系统架构

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
n72595987@gmail.com
2025-11-30 11:36:51 +08:00
parent cc095ed2e9
commit 4d13f9e38c
2 changed files with 319 additions and 151 deletions

View File

@@ -27,15 +27,25 @@ BladeX 完整架构
"The frontend is a separate Vue.js project (not in this repository)" "The frontend is a separate Vue.js project (not in this repository)"
``` ```
**当前您手上只有后端项目** `martial-master`,前端管理系统是独立的项目。 **当前您手上的项目包含**
- 后端项目:`martial-master`(主业务 API
- 前端项目:`martial-web`Vue 3 管理系统,独立仓库)
两个项目均已部署到生产环境,并配置了自动化 CI/CD 部署流程。
--- ---
## 二、前端管理系统 - Saber ## 二、前端管理系统
### 2.1 Saber 是什么? ### 2.1 当前项目前端martial-web
**Saber** 是 BladeX 官方的 Vue 3 管理后台系统,提供可视化的管理界面 **martial-web** 是本项目配套的 Vue 3 管理系统,基于 Element Plus 和 Avue 构建
**项目信息**
- 仓库位置:`/remote_dev/martial/martial-web`(独立仓库)
- 技术栈Vue 3 + Vite + Element Plus + Avue
- 生产地址https://martial.johnsion.club
- 开发端口5173
**主要功能** **主要功能**
- 🏠 **仪表盘**:数据统计、图表展示 - 🏠 **仪表盘**:数据统计、图表展示
@@ -45,54 +55,61 @@ BladeX 完整架构
- 📋 **系统管理**:字典管理、参数配置、日志查看 - 📋 **系统管理**:字典管理、参数配置、日志查看
- 🗂️ **资源管理**文件上传、OSS 配置 - 🗂️ **资源管理**文件上传、OSS 配置
- ⚙️ **开发工具**:代码生成器、数据源管理 - ⚙️ **开发工具**:代码生成器、数据源管理
- 🥋 **业务功能**:武术比赛管理(根据菜单配置 - 🥋 **业务功能**:武术比赛管理(核心业务
### 2.2 Saber 技术栈 ### 2.2 技术栈
``` ```
前端框架Vue 3 前端框架Vue 3.4 (Composition API)
UI 组件Element Plus UI 组件Element Plus
状态管理Pinia 表单/表格Avue
状态管理Vuex 4
路由Vue Router 4 路由Vue Router 4
构建工具Vite 构建工具Vite 5
HTTP 库Axios HTTP 库Axios
样式Sass/SCSS
``` ```
### 2.3 Saber 项目地址 ### 2.3 访问地址
**官方仓库**(需要授权访问) **开发环境**
- 本地开发http://localhost:5173
- API 代理:通过 Vite proxy 转发到后端
**生产环境**
- 前端地址https://martial.johnsion.club
- API 代理:通过 Nginx 转发到后端
### 2.4 BladeX 官方前端 Saber可选
BladeX 框架还提供商业版本的官方前端 **Saber**(需要购买授权):
**官方仓库**
``` ```
Gitee: https://gitee.com/smallc/Saber Gitee: https://gitee.com/smallc/Saber
GitHub: https://github.com/chillzhuang/Saber GitHub: https://github.com/chillzhuang/Saber
``` ```
**注意**BladeX 是商业框架,完整源码需要购买授权。 **与 martial-web 的关系**
- martial-web本项目自主开发的管理系统
### 2.4 Saber 运行端口 - SaberBladeX 官方提供的商业版管理系统
- 两者都可以对接 martial-master 后端,功能类似
根据配置文件中的线索:
```yaml
# application-dev.yml
blade:
token:
domain: http://127.0.0.1:1888 # 前端地址
```
**默认端口**`1888`(开发环境)
--- ---
## 三、前后端交互流程 ## 三、前后端交互流程
### 3.1 开发环境架构
``` ```
┌─────────────────────────────────────────────────────────────┐ ┌─────────────────────────────────────────────────────────────┐
│ 用户浏览器 │ │ 用户浏览器 │
└──────────────┬──────────────────────────────────────────────┘ └──────────────┬──────────────────────────────────────────────┘
│ http://localhost:1888 │ http://localhost:5173
┌──────────────────────────────────────────────────────────────┐ ┌──────────────────────────────────────────────────────────────┐
Saber 前端 (Vue 3) martial-web 前端 (Vue 3 + Vite)
│ - 登录页面 │ │ - 登录页面 │
│ - 仪表盘 │ │ - 仪表盘 │
│ - 用户管理 │ │ - 用户管理 │
@@ -100,10 +117,10 @@ blade:
│ - 武术比赛管理(调用后端 API │ - 武术比赛管理(调用后端 API
└──────────────┬───────────────────────────────────────────────┘ └──────────────┬───────────────────────────────────────────────┘
HTTP 请求JSON Vite Dev Proxy
POST /blade-auth/token /api → http://localhost:8123/api
GET /blade-system/user/list │ /blade-auth → http://localhost:8123/blade-auth
GET /api/martial/competition/list /blade-system → http://localhost:8123/blade-system
┌──────────────────────────────────────────────────────────────┐ ┌──────────────────────────────────────────────────────────────┐
│ martial-master 后端 (Spring Boot) │ │ martial-master 后端 (Spring Boot) │
@@ -114,28 +131,183 @@ blade:
│ ├── /blade-desk/** → 仪表盘 │ │ ├── /blade-desk/** → 仪表盘 │
│ ├── /blade-resource/** → 资源管理 │ │ ├── /blade-resource/** → 资源管理 │
│ ├── /blade-develop/** → 开发工具 │ │ ├── /blade-develop/** → 开发工具 │
│ └── /api/martial/** → 武术比赛(您的业务) │ │ └── /api/martial/** → 武术比赛(核心业务) │
└──────────────┬───────────────────────────────────────────────┘ └──────────────┬───────────────────────────────────────────────┘
┌──────────────┐ ┌──────────────┐
MySQL │ MySQL 33066
Redis │ Redis 63379
└──────────────┘ └──────────────┘
``` ```
### 3.2 生产环境架构
```
┌─────────────────────────────────────────────────────────────┐
│ 互联网用户 │
└──────────────┬──────────────────────────────────────────────┘
│ HTTPS (Cloudflare CDN)
┌──────────────────────────────────────────────────────────────┐
│ Caddy 反向代理80/443自动 HTTPS
│ - martial.johnsion.club → localhost:5173 │
│ - martial-api.johnsion.club → localhost:8123 │
│ - martial-doc.johnsion.club → localhost:8123/doc.html │
│ - martial-ci.johnsion.club → localhost:8080 │
└────────┬─────────────────────────────┬───────────────────────┘
│ │
│ 前端请求 │ API 请求
▼ ▼
┌──────────────────────┐ ┌───────────────────────────────┐
│ martial-frontend │ │ martial-backend │
│ (Nginx 容器) │ │ (Spring Boot) │
│ 端口: 5173:80 │ │ 端口: 8123 │
│ │ │ │
│ 静态文件服务 │ │ ├── /blade-auth/** │
│ ├── index.html │ │ ├── /blade-system/** │
│ ├── assets/ │ │ ├── /blade-desk/** │
│ └── ... │ │ ├── /blade-resource/** │
│ │ │ ├── /blade-develop/** │
│ Nginx 反向代理 │ │ └── /api/martial/** │
│ └── /blade-auth/** │──────┘ │
│ /blade-system/**│ ┌───────────────────────────────┘
│ /api/** │──────┘
│ → 172.21.0.1:8123 │
└──────────────────────┘ │
│ │
└────────────┬──────────────────────┘
│ Docker Network: martial_martial-network
┌──────────────┐
│ martial-mysql│ (端口: 3306)
│ martial-redis│ (端口: 6379)
└──────────────┘
```
### 3.3 请求流程示例
**用户登录流程**
```
1. 用户访问 https://martial.johnsion.club
2. Caddy 转发到 frontend 容器 (localhost:5173)
3. Nginx 返回 Vue 应用 (index.html)
4. 前端 JS 发起登录请求: POST /blade-auth/oauth/token
5. Nginx 代理到后端: http://172.21.0.1:8123/blade-auth/oauth/token
6. Spring Boot 认证模块处理登录
7. 返回 Token 给前端
8. 前端存储 Token后续请求携带 Blade-Auth header
```
**业务数据请求流程**
```
1. 前端请求比赛列表: GET /api/martial/competition/list
2. Nginx 代理: http://172.21.0.1:8123/api/martial/competition/list
3. Spring Boot martial 模块查询数据库
4. 返回 JSON 数据
5. 前端展示数据
```
--- ---
## 四、当前项目的使用方式 ## 四、项目访问方式
### 方式一:仅使用 API当前可用 ### 方式一:生产环境在线访问
**适合场景** **适合场景**
- 前端单独开发 - 直接使用已部署的完整系统
- 移动端开发 - 演示和测试
- API 集成测试 - 前端开发(对接生产 API
**访问地址**
```
前端系统https://martial.johnsion.club
后端 APIhttps://martial-api.johnsion.club
API 文档https://martial-doc.johnsion.club
CI/CD 平台https://martial-ci.johnsion.club
```
**默认账号**
```
用户名admin
密码admin
租户ID000000
```
**优点**
- ✅ 开箱即用,无需本地部署
- ✅ HTTPS 安全访问
- ✅ 完整的前后端功能
- ✅ 生产级别的性能
---
### 方式二:本地开发环境 ✅
**适合场景**
- 后端功能开发
- API 调试和测试
- 前端本地开发
**启动后端**
```bash
cd /remote_dev/martial/martial-master
mvn spring-boot:run
访问地址:
- API Server: http://localhost:8123
- Swagger 文档: http://localhost:8123/doc.html
- Druid 监控: http://localhost:8123/druid
```
**启动前端**
```bash
cd /remote_dev/martial/martial-web
npm run dev
访问地址:
- 前端系统: http://localhost:5173
```
**优点**
- ✅ 可以调试代码
- ✅ 快速开发迭代
- ✅ 修改即时生效
---
### 方式三:仅使用 API 文档测试
**适合场景**
- 后端 API 测试
- 接口调试
- 了解 API 规范
**访问方式** **访问方式**
**生产环境**
```
Knife4j API 文档https://martial-doc.johnsion.club
直接调用 API
POST https://martial-api.johnsion.club/blade-auth/oauth/token
GET https://martial-api.johnsion.club/api/martial/competition/list
```
**本地环境**
``` ```
Knife4j API 文档http://localhost:8123/doc.html Knife4j API 文档http://localhost:8123/doc.html
@@ -147,90 +319,32 @@ GET http://localhost:8123/api/martial/competition/list
**优点** **优点**
- ✅ 无需前端,可以直接测试 API - ✅ 无需前端,可以直接测试 API
- ✅ 适合后端开发和调试 - ✅ 适合后端开发和调试
- ✅ Swagger UI 提供可视化测试界面
**缺点** **缺点**
- ❌ 没有可视化界面 - ❌ 没有完整的管理界面
- ❌ 需要手动构造 HTTP 请求 - ❌ 需要手动构造请求参数
--- ---
### 方式二:搭配 Saber 前端(需要获取源码) ### 方式四:使用第三方 API 工具
**步骤 1获取 Saber 源码** **适合场景**
- 复杂 API 测试
- 批量接口测试
- 自动化测试
如果您有 BladeX 授权,可以从官方获取 Saber 源码 **推荐工具**
```bash
# Gitee
git clone https://gitee.com/smallc/Saber.git
# GitHub
git clone https://github.com/chillzhuang/Saber.git
```
**步骤 2配置后端地址**
```javascript
// Saber/src/config/website.js
export default {
// 后端 API 地址
apiUrl: 'http://localhost:8123',
// Token 存储键
tokenHeader: 'Blade-Auth',
// 其他配置...
}
```
**步骤 3安装依赖并启动**
```bash
cd Saber
# 安装依赖
npm install
# 或
yarn install
# 启动开发服务器
npm run dev
# 或
yarn dev
```
**步骤 4访问**
```
浏览器访问http://localhost:1888
默认账号:
用户名admin
密码admin
```
**步骤 5使用管理后台**
登录后,您可以在 Saber 管理后台中:
- 📊 查看仪表盘数据
- 👥 管理用户和角色
- 📋 配置菜单权限
- 🥋 使用武术比赛管理功能(需要先配置菜单)
---
### 方式三:使用第三方 API 工具(临时方案)
如果暂时没有 Saber 源码,可以使用:
**Postman / Apifox / Insomnia** **Postman / Apifox / Insomnia**
``` ```
1. 先调用登录接口获取 Token 1. 先调用登录接口获取 Token
POST http://localhost:8123/blade-auth/token POST https://martial-api.johnsion.club/blade-auth/oauth/token
Body: { Body: {
"tenantId": "000000", "tenantId": "000000",
"username": "admin", "username": "admin",
"password": "admin", "password": "admin",
"grant_type": "captcha", "grant_type": "password",
"scope": "all" "scope": "all"
} }
@@ -240,25 +354,25 @@ yarn dev
Blade-Auth: bearer <access_token> Blade-Auth: bearer <access_token>
4. 调用业务接口: 4. 调用业务接口:
GET http://localhost:8123/api/martial/competition/list GET https://martial-api.johnsion.club/api/martial/competition/list
``` ```
**VS Code REST Client 扩展** **VS Code REST Client 扩展**
```http ```http
### 1. Token ### 1. Token
POST http://localhost:8123/blade-auth/token POST https://martial-api.johnsion.club/blade-auth/oauth/token
Content-Type: application/json Content-Type: application/json
{ {
"tenantId": "000000", "tenantId": "000000",
"username": "admin", "username": "admin",
"password": "admin", "password": "admin",
"grant_type": "captcha", "grant_type": "password",
"scope": "all" "scope": "all"
} }
### 2. ### 2.
GET http://localhost:8123/api/martial/competition/list GET https://martial-api.johnsion.club/api/martial/competition/list
Blade-Auth: bearer {{token}} Blade-Auth: bearer {{token}}
``` ```
@@ -371,62 +485,116 @@ BladeX 微服务架构
## 七、推荐的开发方式 ## 七、推荐的开发方式
### 当前阶段(无 Saber ### 开发环境配置
``` **本地全栈开发**
1. 后端开发: ```bash
- 在 VS Code 中开发业务逻辑 # 终端 1: 启动后端
- 使用 F5 调试运行 cd /remote_dev/martial/martial-master
2. 接口测试:
- 使用 Knife4jhttp://localhost:8123/doc.html
- 使用 Postman/Apifox
3. 数据库操作:
- 使用 Navicat/DBeaver 连接 MySQL
- 执行 SQL 查看数据
```
### 有 Saber 前端时
```
1. 启动后端:
cd martial-master
mvn spring-boot:run mvn spring-boot:run
2. 启动前端 # 终端 2: 启动前端
cd Saber cd /remote_dev/martial/martial-web
npm run dev npm run dev
3. 访问管理后台: # 访问
http://localhost:1888 前端:http://localhost:5173
后端http://localhost:8123
文档http://localhost:8123/doc.html
```
4. 全栈开发 **仅后端开发**
- 后端改代码 → 前端调用 API ```bash
- 前端页面 → 调用后端接口 # 启动后端
cd /remote_dev/martial/martial-master
mvn spring-boot:run
# 使用以下方式测试
1. Knife4j 文档http://localhost:8123/doc.html
2. Postman/Apifox
3. 对接生产前端https://martial.johnsion.club配置 API 代理到 localhost:8123
```
**仅前端开发**
```bash
# 启动前端
cd /remote_dev/martial/martial-web
npm run dev
# 对接生产后端
在 vite.config.js 中配置 proxy 指向:
https://martial-api.johnsion.club
```
### 数据库操作
**开发环境**
```bash
# 使用 Navicat/DBeaver 连接
Host: 127.0.0.1
Port: 33066
Database: martial_db
Username: root
Password: WtcSecure901faf1ac4d32e2bPwd
```
**生产环境**(仅运维人员):
```bash
# 通过 Docker 容器访问
ssh root@154.30.6.21
docker exec -it martial-mysql mysql -uroot -pWtcSecure901faf1ac4d32e2bPwd martial_db
``` ```
--- ---
## 八、总结 ## 八、总结
| 组件 | 状态 | 地址 | 说明 | ### 环境对比表
|------|------|------|------|
| **后端 API** | ✅ 有 | http://localhost:8123 | 当前项目 |
| **API 文档** | ✅ 有 | http://localhost:8123/doc.html | Knife4j |
| **Druid 监控** | ✅ 有 | http://localhost:8123/druid | 数据库监控 |
| **前端管理系统** | ❌ 无 | http://localhost:1888 | Saber需单独获取 |
| **模块管理界面** | ❌ 无 | - | 单体应用,无需管理 |
**关键点** | 组件 | 开发环境 | 生产环境 | 说明 |
- ✅ 后端可以独立运行和开发 |------|---------|----------|------|
- ✅ 使用 Knife4j 可以完成所有测试 | **后端 API** | http://localhost:8123 | https://martial-api.johnsion.club | Spring Boot 应用 |
- ❌ 如需可视化管理界面,需要部署 Saber 前端 | **API 文档** | http://localhost:8123/doc.html | https://martial-doc.johnsion.club | Knife4j 文档 |
- ❌ 单体架构下没有"模块启动管理"的概念 | **Druid 监控** | http://localhost:8123/druid | https://martial-api.johnsion.club/druid | 数据库监控 |
| **前端系统** | http://localhost:5173 | https://martial.johnsion.club | Vue 3 管理系统 |
| **CI/CD 平台** | - | https://martial-ci.johnsion.club | Drone CI/CD |
| **MySQL** | 127.0.0.1:33066 | 容器内部 | 数据库 |
| **Redis** | 127.0.0.1:63379 | 容器内部 | 缓存 |
### 项目特点
**架构设计**
- ✅ 前后端完全分离
- ✅ 后端提供 RESTful API
- ✅ 前端独立部署(可替换为任何技术栈)
- ✅ 单体应用,模块化设计
- ✅ 支持升级为微服务架构
**部署方式**
- ✅ 生产环境自动化 CI/CDDrone
- ✅ Docker 容器化部署
- ✅ Caddy 自动 HTTPS
- ✅ 前后端独立扩展
**开发体验**
- ✅ 本地开发无需依赖生产环境
- ✅ Vite 热更新,开发效率高
- ✅ Swagger 文档完整,接口调试方便
- ✅ 支持调试和日志查看
### 关键点
1. **前端系统已存在**martial-web 项目Vue 3不是 Saber
2. **生产环境可用**https://martial.johnsion.club 直接访问完整系统
3. **本地开发便捷**:后端 8123 端口,前端 5173 端口
4. **API 文档齐全**Knife4j 提供完整的 API 测试界面
5. **自动化部署**:推送到 main 分支自动触发 CI/CD
--- ---
**建议** **开发建议**
1. 现阶段专注后端 API 开发 1. 使用生产环境了解系统功能
2. 使用 Knife4j 测试接口 2. 本地启动后端进行业务开发
3. 如需前端,可以自己用 Vue/React 开发,或等待获取 Saber 源码 3. 使用 Knife4j 文档测试接口
4. 前端对接本地或生产 API 均可
5. 开发完成后推送到 dev 分支,测试通过后合并到 main 触发自动部署

View File

@@ -60,7 +60,7 @@ src/main/java/org/springblade/modules/martial/
#### 步骤 1创建数据库表 #### 步骤 1创建数据库表
```sql ```sql
-- doc/sql/mysql/martial-competition-tables.sql -- database/martial-db/新增表.sql
CREATE TABLE mt_judge_level ( CREATE TABLE mt_judge_level (
id BIGINT PRIMARY KEY, id BIGINT PRIMARY KEY,
level_name VARCHAR(50) NOT NULL COMMENT '等级名称', level_name VARCHAR(50) NOT NULL COMMENT '等级名称',