From bf004bab526e43b200305e952bddb142387d3202 Mon Sep 17 00:00:00 2001 From: hailin Date: Wed, 14 Jan 2026 00:18:53 -0800 Subject: [PATCH] fix(mining-wallet): auto-create HEADQUARTERS account, skip DEFAULT province/city --- .../services/contribution-wallet.service.ts | 27 ++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/backend/services/mining-wallet-service/src/application/services/contribution-wallet.service.ts b/backend/services/mining-wallet-service/src/application/services/contribution-wallet.service.ts index 427e17bb..594d5ed4 100644 --- a/backend/services/mining-wallet-service/src/application/services/contribution-wallet.service.ts +++ b/backend/services/mining-wallet-service/src/application/services/contribution-wallet.service.ts @@ -302,6 +302,12 @@ export class ContributionWalletService { provinceCode?: string, cityCode?: string, ): Promise { + // 跳过 DEFAULT 占位符 + if (provinceCode === 'DEFAULT' || cityCode === 'DEFAULT') { + this.logger.debug('Skipping DEFAULT province/city code'); + return null; + } + // 只处理省/市级账户的自动创建 if (accountType === 'PROVINCE' && provinceCode) { // 先找或创建省份 @@ -394,7 +400,26 @@ export class ContributionWalletService { return account; } - // 其他类型(HEADQUARTERS, OPERATION, FEE)不自动创建,需要在 seed 中初始化 + // HEADQUARTERS 自动创建 + if (accountType === 'HEADQUARTERS') { + let account = await tx.systemAccount.findFirst({ + where: { accountType: 'HEADQUARTERS' }, + }); + if (!account) { + account = await tx.systemAccount.create({ + data: { + accountType: 'HEADQUARTERS', + name: '总部账户', + code: 'HQ', + isActive: true, + }, + }); + this.logger.log('Auto-created HEADQUARTERS system account'); + } + return account; + } + + // 其他类型(OPERATION, FEE)不自动创建,需要在 seed 中初始化 return null; } }