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:
parent
b645621c81
commit
c84341be37
|
|
@ -536,16 +536,8 @@ export class DashboardService {
|
||||||
if (miningResponse.ok) {
|
if (miningResponse.ok) {
|
||||||
const miningResult = await miningResponse.json();
|
const miningResult = await miningResponse.json();
|
||||||
const miningData = miningResult.data || miningResult;
|
const miningData = miningResult.data || miningResult;
|
||||||
// 使用 distributionPool - remainingDistribution 计算已分配
|
// 直接使用 totalDistributed(所有用户 totalMined 的总和)
|
||||||
// 分配池是 200万(不是100亿),remainingDistribution 是剩余待分配量
|
totalDistributed = miningData.totalDistributed || '0';
|
||||||
// 已分配 = 分配池 - 剩余
|
|
||||||
const distributionPool = new Decimal(
|
|
||||||
miningData.distributionPool || '2000000',
|
|
||||||
);
|
|
||||||
const remaining = new Decimal(
|
|
||||||
miningData.remainingDistribution || '2000000',
|
|
||||||
);
|
|
||||||
totalDistributed = distributionPool.minus(remaining).toString();
|
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
this.logger.warn(`Failed to fetch mining service data: ${error.message}`);
|
this.logger.warn(`Failed to fetch mining service data: ${error.message}`);
|
||||||
|
|
|
||||||
|
|
@ -51,9 +51,12 @@ export class AdminController {
|
||||||
const config = await this.prisma.miningConfig.findFirst();
|
const config = await this.prisma.miningConfig.findFirst();
|
||||||
const accountCount = await this.prisma.miningAccount.count();
|
const accountCount = await this.prisma.miningAccount.count();
|
||||||
|
|
||||||
// 用户有效算力
|
// 用户挖矿账户统计
|
||||||
const userContribution = await this.prisma.miningAccount.aggregate({
|
const userMiningStats = await this.prisma.miningAccount.aggregate({
|
||||||
_sum: { totalContribution: true },
|
_sum: {
|
||||||
|
totalContribution: true,
|
||||||
|
totalMined: true,
|
||||||
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
// 系统账户算力
|
// 系统账户算力
|
||||||
|
|
@ -72,11 +75,14 @@ export class AdminController {
|
||||||
isActive: config?.isActive || false,
|
isActive: config?.isActive || false,
|
||||||
activatedAt: config?.activatedAt,
|
activatedAt: config?.activatedAt,
|
||||||
currentEra: config?.currentEra || 0,
|
currentEra: config?.currentEra || 0,
|
||||||
|
distributionPool: config?.distributionPool?.toString() || '0',
|
||||||
remainingDistribution: config?.remainingDistribution?.toString() || '0',
|
remainingDistribution: config?.remainingDistribution?.toString() || '0',
|
||||||
secondDistribution: config?.secondDistribution?.toString() || '0',
|
secondDistribution: config?.secondDistribution?.toString() || '0',
|
||||||
accountCount,
|
accountCount,
|
||||||
// 用户有效算力
|
// 用户有效算力
|
||||||
totalContribution: userContribution._sum.totalContribution?.toString() || '0',
|
totalContribution: userMiningStats._sum.totalContribution?.toString() || '0',
|
||||||
|
// 已分配积分股(所有用户的 totalMined 总和)
|
||||||
|
totalDistributed: userMiningStats._sum.totalMined?.toString() || '0',
|
||||||
// 全网理论算力(从 contribution-service 同步)
|
// 全网理论算力(从 contribution-service 同步)
|
||||||
networkTotalContribution: config?.networkTotalContribution?.toString() || '0',
|
networkTotalContribution: config?.networkTotalContribution?.toString() || '0',
|
||||||
totalTreeCount: config?.totalTreeCount || 0,
|
totalTreeCount: config?.totalTreeCount || 0,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue