# 真实任务清单 - 基于实际代码状态

> 生成时间: 2026-03-12
> 基于code-explorer深入代码分析的真实情况

---

## 📋 编译修复任务（P0 - 必须完成）

### Task 1: 修复main.go编译错误 - 缺少Handler定义

**问题**: `cmd/server/main.go:86` 调用了未定义的变量

```go
// 当前代码（第86行）
r := router.NewRouter(authHandler, userHandler, roleHandler, permissionHandler, deviceHandler, authMiddleware, rateLimitMiddleware)
//                                                         ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^
//                                                         未定义            未定义             未定义
```

**需要修复**:
- ✅ 定义 `roleHandler = handler.NewRoleHandler(roleService)`
- ✅ 定义 `permissionHandler = handler.NewPermissionHandler(permissionService)`
- ✅ 定义 `deviceHandler = handler.NewDeviceHandler(deviceService)`
- ✅ 初始化对应的Service

**文件**: `cmd/server/main.go`

---

### Task 2: 修复main.go编译错误 - AuthService参数不匹配

**问题**: `service.NewAuthService()` 调用参数数量不匹配

```go
// 当前代码（第63-70行）
authService := service.NewAuthService(
    userRepo,
    jwtManager,
    cacheManager,
    cfg.Security.PasswordMinLength,
    cfg.Security.LoginMaxAttempts,
    cfg.Security.LoginLockDuration,
)

// 但实际AuthService构造函数签名
func NewAuthService(
    userRepo *repository.UserRepository,
    socialRepo *repository.SocialAccountRepository,  // 缺少这个参数
    jwt *auth.JWT,
    cache *cache.CacheManager,
    passwordMin int,
    maxAttempts int,
    lockTime time.Duration,
) *AuthService
```

**需要修复**:
- ✅ 初始化 `socialRepo = repository.NewSocialAccountRepository(db.DB)`
- ✅ 添加 `socialRepo` 到 `NewAuthService()` 调用

**文件**: `cmd/server/main.go`

---

### Task 3: 验证代码能否成功编译

**前提**: 完成Task 1和Task 2后

**验证步骤**:
```bash
cd c:/Users/Admin/WorkBuddy/20260310215221
go build -o server.exe ./cmd/server
```

**期望结果**: 编译成功，生成 `server.exe`

---

## 🚀 功能实现任务（P1 - 核心功能）

### Task 4: 实现验证码系统

**现状**: Handler中调用了 `GenerateState()` 和 `ValidateState()` 但函数不存在

**需要实现**:
- ✅ `GenerateState()` - 生成随机state
- ✅ `ValidateState(state)` - 验证state有效性
- ✅ State存储和过期机制

---

### Task 5: 实现OAuth真实集成到AuthService

**现状**: Handler调用了OAuth方法但AuthService中没有实现

**需要实现**:
- ✅ `OAuthLogin(ctx context.Context, provider string, state string) (string, error)`
- ✅ `OAuthCallback(ctx context.Context, provider string, code string) (*LoginResponse, error)`
- ✅ `BindSocialAccount(ctx context.Context, userID int64, provider, openID string) error`
- ✅ `UnbindSocialAccount(ctx context.Context, userID int64, provider string) error`
- ✅ `GetSocialAccounts(ctx context.Context, userID int64) ([]*domain.SocialAccount, error)`
- ✅ `GetEnabledOAuthProviders() []auth.OAuthProviderInfo`

---

### Task 6: 实现OAuth工具函数

**需要实现**:
- ✅ HTTP请求封装（带超时、重试）
- ✅ 错误处理（OAuth API错误解析）
- ✅ JSON响应解析
- ✅ State生成和验证

---

### Task 7: 实现GetEnabledOAuthProviders方法

**需要实现**:
- ✅ 从OAuth配置读取已启用的提供商
- ✅ 返回提供商列表和配置信息

---

## 🧪 测试任务（P1 - 真实测试）

### Task 8: 实现真实的E2E测试

**现状**: E2E测试使用Mock Handler，完全没测试真实服务

**需要实现**:
- ✅ 启动真实HTTP服务器
- ✅ 使用真实的Handler和Service
- ✅ 使用真实数据库
- ✅ 测试完整的HTTP请求/响应

---

## 🎯 新功能任务（P2 - 次要功能）

### Task 9-14: PRD要求的其他功能

详见完整文档...

---

## 📊 任务优先级总结

### P0 - 阻塞上线（必须完成）- 预计1-2小时
- [ ] Task 1: 修复main.go Handler定义
- [ ] Task 2: 修复main.go AuthService参数
- [ ] Task 3: 验证代码编译

### P1 - 核心功能（必须完成）- 预计5-7天
- [ ] Task 4: 实现验证码系统
- [ ] Task 5: 实现OAuth集成
- [ ] Task 6: 实现OAuth工具函数
- [ ] Task 7: 实现GetEnabledOAuthProviders
- [ ] Task 8: 实现真实E2E测试
- [ ] Task 15: 真实集成测试

### P2 - 次要功能 - 预计15-20天
- [ ] Task 9: 实现2FA认证
- [ ] Task 10: 实现Admin后台
- [ ] Task 11: 实现Webhook
- [ ] Task 12: 实现批量导入导出
- [ ] Task 13: 实现SDK
- [ ] Task 14: 实现安全功能
