fix(mining): return totalDistributed (sum of totalMined) in admin status

The dashboard was incorrectly calculating distributed shares using
distributionPool - remainingDistribution. The correct value is the sum
of all users' totalMined balances. Updated mining-service to return
totalDistributed directly, and mining-admin-service to use it.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
hailin 2026-01-16 09:27:15 -08:00
parent b645621c81
commit c84341be37
2 changed files with 12 additions and 14 deletions

View File

@ -536,16 +536,8 @@ export class DashboardService {
if (miningResponse.ok) {
const miningResult = await miningResponse.json();
const miningData = miningResult.data || miningResult;
// 使用 distributionPool - remainingDistribution 计算已分配
// 分配池是 200万不是100亿remainingDistribution 是剩余待分配量
// 已分配 = 分配池 - 剩余
const distributionPool = new Decimal(
miningData.distributionPool || '2000000',
);
const remaining = new Decimal(
miningData.remainingDistribution || '2000000',
);
totalDistributed = distributionPool.minus(remaining).toString();
// 直接使用 totalDistributed所有用户 totalMined 的总和)
totalDistributed = miningData.totalDistributed || '0';
}
} catch (error) {
this.logger.warn(`Failed to fetch mining service data: ${error.message}`);

View File

@ -51,9 +51,12 @@ export class AdminController {
const config = await this.prisma.miningConfig.findFirst();
const accountCount = await this.prisma.miningAccount.count();
// 用户有效算力
const userContribution = await this.prisma.miningAccount.aggregate({
_sum: { totalContribution: true },
// 用户挖矿账户统计
const userMiningStats = await this.prisma.miningAccount.aggregate({
_sum: {
totalContribution: true,
totalMined: true,
},
});
// 系统账户算力
@ -72,11 +75,14 @@ export class AdminController {
isActive: config?.isActive || false,
activatedAt: config?.activatedAt,
currentEra: config?.currentEra || 0,
distributionPool: config?.distributionPool?.toString() || '0',
remainingDistribution: config?.remainingDistribution?.toString() || '0',
secondDistribution: config?.secondDistribution?.toString() || '0',
accountCount,
// 用户有效算力
totalContribution: userContribution._sum.totalContribution?.toString() || '0',
totalContribution: userMiningStats._sum.totalContribution?.toString() || '0',
// 已分配积分股(所有用户的 totalMined 总和)
totalDistributed: userMiningStats._sum.totalMined?.toString() || '0',
// 全网理论算力(从 contribution-service 同步)
networkTotalContribution: config?.networkTotalContribution?.toString() || '0',
totalTreeCount: config?.totalTreeCount || 0,