From 2cc813992436b620d21c1cb9d821d3475b5e017b Mon Sep 17 00:00:00 2001 From: dengqichen Date: Wed, 19 Nov 2025 17:44:35 +0800 Subject: [PATCH] dasdasd --- src/shared/libs/card-generator/generator.js | 8 ++++++-- .../configs/sites/windsurf.yaml | 6 +++--- .../sites/windsurf-adapter.js | 18 +++++++++++++----- 3 files changed, 22 insertions(+), 10 deletions(-) diff --git a/src/shared/libs/card-generator/generator.js b/src/shared/libs/card-generator/generator.js index 26104fd..5682d55 100644 --- a/src/shared/libs/card-generator/generator.js +++ b/src/shared/libs/card-generator/generator.js @@ -62,12 +62,16 @@ class CardGenerator { */ async checkCardNumberInDatabase(cardNumber) { try { + // 检查数据库连接是否已初始化 + if (!this.database || !this.database.pool) { + return false; // 数据库未初始化,跳过数据库查询 + } + const sql = 'SELECT COUNT(*) as count FROM windsurf_accounts WHERE payment_card_number = ?'; const rows = await this.database.query(sql, [cardNumber]); return rows[0].count > 0; } catch (error) { - // 如果数据库查询失败,记录错误但不影响生成(降级为仅内存去重) - console.warn('数据库查询失败,仅使用内存去重:', error.message); + // 如果数据库查询失败,静默降级(不输出,避免乱码) return false; } } diff --git a/src/tools/automation-framework/configs/sites/windsurf.yaml b/src/tools/automation-framework/configs/sites/windsurf.yaml index 2a5a9e8..2de3a67 100644 --- a/src/tools/automation-framework/configs/sites/windsurf.yaml +++ b/src/tools/automation-framework/configs/sites/windsurf.yaml @@ -120,12 +120,12 @@ workflow: # ==================== 步骤 6: 填写支付信息(带重试) ==================== - action: retryBlock name: "提交支付并验证" - maxRetries: 5 + maxRetries: 9999 # 无限重试,直到成功 retryDelay: 15000 # 增加到15秒,避免触发Stripe风控 onRetryBefore: - # 重试前重新生成银行卡 + # 生成银行卡(第一次或重试都生成新卡) - action: custom - handler: "regenerateCard" + handler: "generateCard" steps: # 6.1 选择银行卡支付方式(每次重试都重新选择) diff --git a/src/tools/automation-framework/sites/windsurf-adapter.js b/src/tools/automation-framework/sites/windsurf-adapter.js index de4d57e..482cfb7 100644 --- a/src/tools/automation-framework/sites/windsurf-adapter.js +++ b/src/tools/automation-framework/sites/windsurf-adapter.js @@ -12,8 +12,8 @@ class WindsurfAdapter extends SiteAdapter { // 数据生成器 this.dataGen = new AccountDataGenerator(); - // 卡号生成器(传入数据库连接以实现数据库去重) - this.cardGen = new CardGenerator(database); + // 卡号生成器(传入数据库连接对象以实现数据库去重) + this.cardGen = new CardGenerator(database.connection); } /** @@ -23,6 +23,14 @@ class WindsurfAdapter extends SiteAdapter { // 先调用父类清理浏览器状态 await super.beforeWorkflow(); + // 初始化数据库连接(用于卡号去重) + try { + await database.initialize(); + this.log('info', '✓ 数据库连接已初始化'); + } catch (error) { + this.log('warn', `数据库初始化失败,将仅使用内存去重: ${error.message}`); + } + this.log('info', '生成账户数据...'); // 生成账户数据 @@ -245,13 +253,13 @@ class WindsurfAdapter extends SiteAdapter { } /** - * 重新生成银行卡(用于重试) + * 生成银行卡(第一次或重试都调用此方法) */ - async regenerateCard() { + async generateCard() { const newCard = await this.cardGen.generate(); this.context.data.card = newCard; const bin = newCard.number.substring(0, 9); - this.log('info', `重新生成卡号: ${newCard.number} (BIN: ${bin})`); + this.log('info', `生成卡号: ${newCard.number} (BIN: ${bin})`); return { card: newCard }; }