# 项目执行计划

## 📋 待完成任务 (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

---

**您想让我立即开始实现哪些功能？**
