# ERP API 管理平台 - 数据库初始化指南

## 执行步骤

### 方式一：通过 Docker MySQL 容器执行（推荐）

1. **进入 MySQL 容器**：
```bash
docker exec -it hzhub-mysql mysql -u root -phzhub123
```

2. **切换到 hzhub 数据库**：
```sql
USE hzhub;
```

3. **执行 SQL 文件**：
```sql
source /data/hzhub/hzhub-erp/docs/sql/erp_api_tables.sql;
```

或者直接复制粘贴 SQL 内容执行。

### 方式二：通过 Navicat/DBeaver 等工具执行

1. 连接到 MySQL 数据库：
   - Host: localhost 或 192.168.120.60
   - Port: 3306
   - Database: hzhub
   - Username: root
   - Password: hzhub123

2. 打开 SQL 文件：`/data/hzhub/hzhub-erp/docs/sql/erp_api_tables.sql`

3. 执行整个 SQL 文件

### 方式三：通过管理后台执行（如果支持）

某些系统管理后台提供 SQL 执行功能，可以直接粘贴 SQL 执行。

---

## SQL 文件内容说明

该 SQL 文件包含：

### 1. 数据库表创建

**erp_api_config**：API 配置主表
- 存储 API 基本信息、SQL 模板、权限配置、缓存配置等
- 包含版本字段（api_version）支持 v1/v2 版本管理

**erp_api_param**：API 参数配置表
- 存储 API 参数定义（名称、类型、位置、是否必填等）
- 通过外键关联到 erp_api_config，级联删除

**erp_api_stats**：API 调用统计表
- 记录每次 API 调用（调用时间、参数、响应时间、状态、错误信息）
- 用于监控统计和错误分析

### 2. 菜单配置

在 sys_menu 表中插入 ERP 管理相关菜单：
- **ERP管理**（一级菜单）- 目录
- **API配置**（二级菜单）- API 配置管理页面
  - API查询、API新增、API修改、API删除、API测试、清除缓存（按钮权限）
- **API监控**（二级菜单）- API 调用统计监控页面

---

## 验证 SQL 执行结果

执行完成后，验证表是否创建成功：

```sql
-- 查看表结构
SHOW TABLES LIKE 'erp_api_%';

-- 查看表数量（应该有 3 张表）
SELECT COUNT(*) FROM information_schema.tables
WHERE table_schema = 'hzhub' AND table_name LIKE 'erp_api_%';

-- 查看菜单是否插入成功
SELECT menu_id, menu_name, parent_id, path, perms
FROM sys_menu WHERE menu_name LIKE '%ERP%' OR menu_name LIKE '%API%';
```

---

## 重要说明

1. **表依赖顺序**：必须先创建 erp_api_config，再创建 erp_api_param（有外键约束）
2. **菜单插入**：sys_menu 表在 hzhub-system 服务管理的数据库中，菜单 SQL 需要在同一数据库执行
3. **权限配置**：菜单权限使用 `erp:api:*` 格式，后续需要在角色管理中分配权限
4. **备份建议**：首次在生产环境执行前，建议先备份数据库

---

## 下一步

SQL 执行成功后：

1. **重启 ERP 服务**：
```bash
cd /data/hzhub/hzhub-erp
./restart.sh
```

2. **验证服务启动**：
```bash
curl http://localhost:8082/actuator/health
```

3. **测试 API 配置接口**（需要先登录管理后台获取 Token）：
```bash
# 获取 Token 后，测试列表接口（会返回空列表）
curl -H "Authorization: Bearer <token>" http://localhost:8080/erp/api/config/list
```

4. **准备前端界面**：继续创建前端代码以使用管理界面操作