Files
user-system/docs/plans/EXECUTION_PLAN.md

382 lines
8.0 KiB
Markdown
Raw Permalink Normal View History

# 项目执行计划
## 📋 待完成任务 (13/20)
### 优先级分类
#### P0 - 环境配置(必须)
- ⏳ Task 20: Go环境配置
- ⏳ Task 3: 编译验证
#### P1 - 核心功能测试(必须)
- ⏳ Task 8: 实现真实E2E测试替换Mock
- ⏳ Task 15: 真实集成测试并验证所有API
#### P2 - 功能实现(重要)
- ⏳ Task 9: 实现2FA多因素认证TOTP
- ⏳ Task 10: 实现Admin管理后台`docs/plans/ADMIN_FRONTEND_EXECUTION_PLAN.md` 为准)
- ⏳ Task 11: 实现Webhook事件通知
- ⏳ Task 12: 实现批量导入导出Excel/CSV
#### P3 - 高级功能(可选)
- ⏳ Task 13: 实现Java/Go/Rust SDK
- ⏳ Task 14: 实现IP黑白名单和异常登录检测
---
## 🎯 执行策略
### 策略A: 完整实现(推荐)
由于Go环境当前不可用我将
1. **P2功能实现**(现在可以开始)
- 实现2FA多因素认证
- 实现Admin管理后台
- 实现Webhook事件通知
- 实现批量导入导出
2. **等待Go环境配置**
- 您安装Go 1.23+
- 验证编译
- 运行测试
3. **P1核心功能测试**
- 替换Mock Handler为真实HTTP请求
- 完成E2E测试
- 验证所有API
4. **P3高级功能**(可选)
- 实现SDK支持
- 实现安全增强功能
### 策略B: 环境优先
1. 您先安装Go环境
2. 验证编译和运行
3. 然后实现剩余功能
---
## 📝 详细任务分解
### Task 20: Go环境配置
**依赖**: 用户手动操作
**步骤**:
1. 下载Go 1.23+: https://golang.org/dl/
2. 安装到系统
3. 重启命令行
4. 验证: `go version`
**预计时间**: 30分钟
---
### Task 3: 编译验证
**依赖**: Go环境已安装
**步骤**:
```powershell
cd D:\project
go mod verify
go build ./cmd/server
```
**预计时间**: 5分钟
---
### Task 8: 实现真实E2E测试
**当前问题**: E2E测试使用Mock Handler
**需要修改**:
1. `internal/e2e/e2e_test.go`
- 替换Mock Handler为真实HTTP请求
- 使用真实的测试服务器
- 集成真实的数据库
**预计时间**: 2-3小时
---
### Task 15: 真实集成测试
**步骤**:
1. 测试所有REST API
2. 验证OAuth流程
3. 验证权限控制
4. 性能测试
**预计时间**: 2-3小时
---
### Task 9: 实现2FA多因素认证
**需要实现**:
1. TOTP基于时间的一次性密码
2. 二维码生成
3. 验证逻辑
4. 恢复码机制
**文件**:
- `internal/auth/totp.go` - TOTP实现
- `internal/service/totp_service.go` - TOTP服务
- `internal/api/handler/totp.go` - TOTP Handler
**预计时间**: 4-6小时
---
### Task 10: 实现Admin管理后台
**唯一执行方案**:
-`docs/plans/ADMIN_FRONTEND_EXECUTION_PLAN.md` 为唯一有效方案
**当前统一结论**:
1. 技术栈固定为 `React 18 + TypeScript + Vite + React Router 6 + Ant Design 5`
2. 页面范围只允许对接当前真实 API不再按 PRD 愿景假定接口存在
3. 当前首版范围包括:
- 登录 / 忘记密码 / 重置密码
- Dashboard
- Users
- Roles
- Permissions
- Login Logs / Operation Logs
- Webhooks
- Import / Export
- Profile / Profile Security
4. 当前明确不做:
- 系统设置
- 用户创建
- 批量用户操作
- 管理员重置他人密码
- 全局设备管理页
- 社交登录 / 绑定的 SPA 落地
**说明**:
- 本文不再维护 Task 10 的技术栈、页面清单、API 细节和工时拆分
- 相关内容全部收敛到 `docs/plans/ADMIN_FRONTEND_EXECUTION_PLAN.md`
---
### Task 11: 实现Webhook事件通知
**需要实现**:
1. Webhook配置管理
2. 事件触发机制
3. HTTP请求发送
4. 重试机制
**文件**:
- `internal/webhook/` - Webhook模块
- `internal/webhook/webhook.go` - Webhook核心
- `internal/service/webhook_service.go` - Webhook服务
**预计时间**: 4-6小时
---
### Task 12: 实现批量导入导出
**需要实现**:
1. Excel导入导出
2. CSV导入导出
3. 数据验证
4. 错误处理
**依赖**:
- `github.com/tealeg/xlsx/v3` - Excel处理
- `encoding/csv` - CSV处理
**文件**:
- `internal/importer/` - 导入导出模块
- `internal/importer/excel.go` - Excel处理
- `internal/importer/csv.go` - CSV处理
- `internal/api/handler/import.go` - API Handler
**预计时间**: 4-6小时
---
### Task 13: 实现SDK支持
**需要实现**:
1. Java SDK
2. Go SDK
3. Rust SDK
**文件**:
- `sdk/java/` - Java SDK
- `sdk/go/` - Go SDK
- `sdk/rust/` - Rust SDK
**预计时间**: 8-12小时每个SDK
---
### Task 14: 实现IP黑白名单和异常检测
**需要实现**:
1. IP黑白名单管理
2. 登录异常检测
3. 风险评分
4. 自动封禁
**文件**:
- `internal/security/ip_filter.go` - IP过滤
- `internal/security/anomaly_detection.go` - 异常检测
- `internal/service/security_service.go` - 安全服务
**预计时间**: 4-6小时
---
## 🚀 开始执行
### 当前可以立即开始的任务无需Go环境
**推荐立即开始**:
1. **Task 9: 实现2FA多因素认证**
- 纯代码实现
- 不需要编译运行
- 优先级高
2. **Task 11: 实现Webhook事件通知**
- 纯代码实现
- 独立模块
- 优先级中
3. **Task 12: 实现批量导入导出**
- 纯代码实现
- 实用功能
- 优先级中
### 需要Go环境的任务
**等待Go环境**:
- Task 20: Go环境配置需要您手动操作
- Task 3: 编译验证
- Task 8: E2E测试需要运行测试
- Task 15: 集成测试(需要运行测试)
### 复杂任务
⚠️ **需要更多时间**:
- Task 10: Admin管理后台前端开发
- Task 13: SDK支持多语言
---
## 📊 预计完成时间
| 任务 | 预计时间 | 依赖 |
|------|---------|------|
| Task 9 (2FA) | 4-6小时 | 无 |
| Task 11 (Webhook) | 4-6小时 | 无 |
| Task 12 (导入导出) | 4-6小时 | 无 |
| Task 14 (IP黑名单) | 4-6小时 | 无 |
| Task 10 (Admin后台) | 以唯一前端方案分阶段执行 | 真实 API 已稳定 |
| Task 8 (E2E测试) | 2-3小时 | Go环境 |
| Task 15 (集成测试) | 2-3小时 | Go环境 |
| Task 13 (SDK) | 8-12小时 | 无 |
**总计**: 不再使用本表对 Task 10 做旧版小时级估算,前端排期以 `docs/plans/ADMIN_FRONTEND_EXECUTION_PLAN.md` 为准。
---
## 🎯 建议执行顺序
### 方案A: 优先完成核心功能(推荐)
1. **Day 1-2**: Task 9, 11, 12, 14后端功能
- 2FA认证
- Webhook通知
- 批量导入导出
- IP黑白名单
2. **Day 3+**: Task 10Admin后台
- 以前端唯一执行方案分阶段推进
3. **Day 4**: Task 8, 15测试
- E2E测试
- 集成测试
- 需要Go环境
4. **Day 5-7**: Task 13SDK
- Java SDK
- Go SDK
- Rust SDK
### 方案B: 等待Go环境后统一测试
1. **先安装Go环境**
2. **验证编译和运行**
3. **完成所有功能实现**
4. **统一测试和验证**
---
## 📝 工作进度追踪
### 当前状态
| 任务 | 状态 | 开始时间 | 完成时间 |
|------|------|---------|---------|
| Task 9 (2FA) | ⏳ 待开始 | - | - |
| Task 10 (Admin) | ⏳ 待开始 | - | 见唯一前端方案 |
| Task 11 (Webhook) | ⏳ 待开始 | - | - |
| Task 12 (导入导出) | ⏳ 待开始 | - | - |
| Task 13 (SDK) | ⏳ 待开始 | - | - |
| Task 14 (IP黑名单) | ⏳ 待开始 | - | - |
| Task 20 (Go环境) | ⏳ 待开始 | - | - |
| Task 3 (编译验证) | ⏳ 待开始 | - | - |
| Task 8 (E2E测试) | ⏳ 待开始 | - | - |
| Task 15 (集成测试) | ⏳ 待开始 | - | - |
---
## 🎯 下一步行动
### 选项1: 立即开始功能实现(推荐)
我将开始实现:
1. Task 9: 2FA多因素认证
2. Task 11: Webhook事件通知
3. Task 12: 批量导入导出
4. Task 14: IP黑白名单
### 选项2: 等待Go环境
您先安装Go环境然后
1. 验证编译
2. 运行测试
3. 完成功能实现
### 选项3: 按需实现
告诉我您最需要的功能,我优先实现。
---
## 💡 提示
- **纯代码任务**9, 11, 12, 13, 14可以立即开始
- **需要运行的任务**3, 8, 15需要Go环境
- **复杂任务**10, 13需要更多时间
- **Task 20** 需要您手动安装Go
---
**您想让我立即开始实现哪些功能?**