382 lines
8.0 KiB
Markdown
382 lines
8.0 KiB
Markdown
# 项目执行计划
|
||
|
||
## 📋 待完成任务 (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 10(Admin后台)
|
||
- 以前端唯一执行方案分阶段推进
|
||
|
||
3. **Day 4**: Task 8, 15(测试)
|
||
- E2E测试
|
||
- 集成测试
|
||
- (需要Go环境)
|
||
|
||
4. **Day 5-7**: Task 13(SDK)
|
||
- 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
|
||
|
||
---
|
||
|
||
**您想让我立即开始实现哪些功能?**
|