4.5 KiB
4.5 KiB
真实任务清单 - 基于实际代码状态
生成时间: 2026-03-12 基于code-explorer深入代码分析的真实情况
📋 编译修复任务(P0 - 必须完成)
Task 1: 修复main.go编译错误 - 缺少Handler定义
问题: cmd/server/main.go:86 调用了未定义的变量
// 当前代码(第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() 调用参数数量不匹配
// 当前代码(第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后
验证步骤:
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: 实现安全功能