refactor: 移除全局单例、修复分层违规、统一错误与响应
Some checks failed
Build / build (push) Successful in 7m52s
Build / build-docker (push) Has been cancelled

This commit is contained in:
lafay
2026-06-15 16:40:36 +08:00
parent d9de39a0a3
commit 7d1c78f965
55 changed files with 593 additions and 1744 deletions

View File

@@ -26,16 +26,19 @@ const (
// verificationService VerificationService的实现
type verificationService struct {
cfg *config.Config
redis *redis.Client
emailService *email.Service
}
// NewVerificationService 创建VerificationService实例
func NewVerificationService(
cfg *config.Config,
redisClient *redis.Client,
emailService *email.Service,
) VerificationService {
return &verificationService{
cfg: cfg,
redis: redisClient,
emailService: emailService,
}
@@ -44,8 +47,7 @@ func NewVerificationService(
// SendCode 发送验证码
func (s *verificationService) SendCode(ctx context.Context, email, codeType string) error {
// 测试环境下直接跳过,不存储也不发送
cfg, err := config.GetConfig()
if err == nil && cfg.IsTestEnvironment() {
if s.cfg.IsTestEnvironment() {
return nil
}
@@ -89,8 +91,7 @@ func (s *verificationService) SendCode(ctx context.Context, email, codeType stri
// VerifyCode 验证验证码
func (s *verificationService) VerifyCode(ctx context.Context, email, code, codeType string) error {
// 测试环境下直接通过验证
cfg, err := config.GetConfig()
if err == nil && cfg.IsTestEnvironment() {
if s.cfg.IsTestEnvironment() {
return nil
}
@@ -166,8 +167,5 @@ func (s *verificationService) sendEmail(to, code, codeType string) error {
}
}
// DeleteVerificationCode 删除验证码(工具函数,保持向后兼容)
func DeleteVerificationCode(ctx context.Context, redisClient *redis.Client, email, codeType string) error {
codeKey := fmt.Sprintf("verification:code:%s:%s", codeType, email)
return redisClient.Del(ctx, codeKey)
}
// DeleteVerificationCode 已移除:重构后无调用方。如需删除验证码,请使用
// VerificationService 实现内的 redis.Del 路径。