From 5fa0fd5d1ada1beceba528f52ff368b58f4bda9d Mon Sep 17 00:00:00 2001 From: hailin Date: Tue, 20 Jan 2026 17:25:07 -0800 Subject: [PATCH] =?UTF-8?q?fix(mining):=20=E4=B8=BA=20HEADQUARTERS=20?= =?UTF-8?q?=E8=B4=A6=E6=88=B7=E6=B7=BB=E5=8A=A0=E6=AF=8F=E5=88=86=E9=92=9F?= =?UTF-8?q?=E6=8C=96=E7=9F=BF=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit HEADQUARTERS 的挖矿收益来自待解锁算力,之前只更新了账户余额, 但没有写入 system_mining_records 表的每分钟汇总记录。 现在在两个分发路径中都为 HEADQUARTERS 调用 accumulateSystemMinuteData, 确保前端能正确显示总部账户的挖矿记录。 Co-Authored-By: Claude Opus 4.5 --- .../services/mining-distribution.service.ts | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/backend/services/mining-service/src/application/services/mining-distribution.service.ts b/backend/services/mining-service/src/application/services/mining-distribution.service.ts index 96103c2d..b2303d8c 100644 --- a/backend/services/mining-service/src/application/services/mining-distribution.service.ts +++ b/backend/services/mining-service/src/application/services/mining-distribution.service.ts @@ -193,6 +193,27 @@ export class MiningDistributionService { secondDistribution, ); } + + // 为 HEADQUARTERS 累积待解锁算力的挖矿数据 + if (result.pendingRedisData.length > 0) { + const headquartersTotalReward = result.pendingRedisData.reduce( + (sum, data) => sum.add(data.reward), + new ShareAmount(0), + ); + const headquartersTotalContribution = result.pendingRedisData.reduce( + (sum, data) => sum.add(new ShareAmount(data.pending.amount)), + new ShareAmount(0), + ); + await this.accumulateSystemMinuteData( + SystemAccountType.HEADQUARTERS, + currentMinute, + headquartersTotalReward, + headquartersTotalContribution, + networkTotalContribution, + secondDistribution, + ); + } + for (const data of result.pendingRedisData) { await this.accumulatePendingMinuteData( data.pendingId, @@ -435,6 +456,26 @@ export class MiningDistributionService { ); } + // 为 HEADQUARTERS 累积待解锁算力的挖矿数据 + if (pendingRewards.length > 0) { + const headquartersTotalReward = pendingRewards.reduce( + (sum, { reward }) => sum.add(reward), + new ShareAmount(0), + ); + const headquartersTotalContribution = pendingRewards.reduce( + (sum, { pending }) => sum.add(new ShareAmount(pending.amount)), + new ShareAmount(0), + ); + await this.accumulateSystemMinuteData( + SystemAccountType.HEADQUARTERS, + currentMinute, + headquartersTotalReward, + headquartersTotalContribution, + networkTotalContribution, + secondDistribution, + ); + } + for (const { pending, reward } of pendingRewards) { await this.accumulatePendingMinuteData( pending.id,