4 changed files with 115 additions and 6 deletions
@ -0,0 +1,91 @@ |
|||||||
|
# 前台路由同步逻辑更新 |
||||||
|
|
||||||
|
## 📋 更新内容 |
||||||
|
|
||||||
|
### 1. 删除 frontend_backend_routes 表中的 created_at 字段 |
||||||
|
|
||||||
|
#### 修改的文件: |
||||||
|
- **`backend/internal/auth/model/frontend_backend_route.go`** |
||||||
|
- 从 `FrontendBackendRoute` 结构体中移除了 `CreatedAt` 字段 |
||||||
|
- 保留了 `UpdatedAt` 字段用于记录更新时间 |
||||||
|
|
||||||
|
#### 数据库迁移: |
||||||
|
- **`backend/internal/auth/migration/remove_delete_at_fields.go`** |
||||||
|
- 添加了 `removeCreatedAtFromFrontendBackendRoutes()` 函数 |
||||||
|
- 在 `RemoveDeleteAtFields()` 函数中调用该函数 |
||||||
|
- 包含完整的表存在检查和字段存在检查 |
||||||
|
- 添加了详细的调试日志 |
||||||
|
|
||||||
|
#### 迁移逻辑: |
||||||
|
```go |
||||||
|
// 检查表是否存在 |
||||||
|
tableExists := db.Migrator().HasTable("frontend_backend_routes") |
||||||
|
|
||||||
|
// 检查 created_at 字段是否存在 |
||||||
|
columnExists := db.Migrator().HasColumn("frontend_backend_routes", "created_at") |
||||||
|
|
||||||
|
// 删除 created_at 字段 |
||||||
|
ddlQuery := "ALTER TABLE frontend_backend_routes DROP COLUMN created_at" |
||||||
|
``` |
||||||
|
|
||||||
|
### 2. 为 backend_route 字段补充 apiBaseUrl 前缀 |
||||||
|
|
||||||
|
#### 修改的文件: |
||||||
|
- **`app/src/renderer/modules/route-sync/RouteMapper.js`** |
||||||
|
- 导入了 `getFinalConfig` 函数从 `app.config.js` |
||||||
|
- 修改了 `_createApiMappingFromDirectCall()` 方法 |
||||||
|
- 修改了 `_getSubRouteMapping()` 方法 |
||||||
|
|
||||||
|
#### 实现逻辑: |
||||||
|
```javascript |
||||||
|
// 获取完整的API基础URL |
||||||
|
const config = getFinalConfig() |
||||||
|
const fullBackendRoute = `${config.apiBaseUrl}${apiCall.path}` |
||||||
|
``` |
||||||
|
|
||||||
|
#### 配置获取方式: |
||||||
|
- 使用 `getFinalConfig()` 函数获取最终配置 |
||||||
|
- 优先使用用户自定义配置(localStorage中的设置) |
||||||
|
- 回退到环境配置(development/production/test) |
||||||
|
- 确保获取到完整的API基础URL(包含 `/api` 前缀) |
||||||
|
|
||||||
|
## 🔧 技术细节 |
||||||
|
|
||||||
|
### API基础URL获取流程: |
||||||
|
1. **用户配置优先**: 从 `localStorage.getItem('gofaster-settings')` 获取用户自定义的API URL |
||||||
|
2. **环境配置回退**: 如果用户没有配置,使用当前环境的默认配置 |
||||||
|
3. **URL构建**: 自动添加 `/api` 后缀,确保完整的API路径 |
||||||
|
|
||||||
|
### 数据库字段变更: |
||||||
|
- **移除字段**: `created_at` (time.Time) |
||||||
|
- **保留字段**: `updated_at` (time.Time) - 用于记录最后更新时间 |
||||||
|
- **影响范围**: 仅影响 `frontend_backend_routes` 表 |
||||||
|
|
||||||
|
## 📊 预期效果 |
||||||
|
|
||||||
|
### 1. 数据库优化: |
||||||
|
- 减少不必要的 `created_at` 字段存储 |
||||||
|
- 简化表结构,提高查询效率 |
||||||
|
- 保持 `updated_at` 字段用于审计追踪 |
||||||
|
|
||||||
|
### 2. API路径完整性: |
||||||
|
- 所有保存到 `frontend_backend_routes` 表的 `backend_route` 字段现在包含完整的API URL |
||||||
|
- 格式示例:`http://localhost:8080/api/auth/permissions` |
||||||
|
- 支持不同环境的配置(开发、生产、测试) |
||||||
|
|
||||||
|
### 3. 配置灵活性: |
||||||
|
- 支持用户自定义API服务器地址 |
||||||
|
- 自动适配不同环境的配置 |
||||||
|
- 确保前后端API路径的一致性 |
||||||
|
|
||||||
|
## 🚀 部署说明 |
||||||
|
|
||||||
|
1. **数据库迁移**: 应用启动时会自动执行字段删除操作 |
||||||
|
2. **前端同步**: 下次执行前台路由同步时,会使用新的完整URL格式 |
||||||
|
3. **向后兼容**: 现有的路由映射数据不会受到影响,新同步的数据会使用新格式 |
||||||
|
|
||||||
|
## 🔍 验证方法 |
||||||
|
|
||||||
|
1. **检查数据库**: 确认 `frontend_backend_routes` 表的 `created_at` 字段已被删除 |
||||||
|
2. **检查API路径**: 确认新同步的路由映射包含完整的API基础URL |
||||||
|
3. **检查配置**: 确认不同环境下的API URL配置正确 |
Loading…
Reference in new issue