fix(reporting-service): 账户余额改为 累计收入 - 累计转出

- 所有固定账户:账户余额 = 累计收入 - 累计转出
- 总部储蓄(HQ_COMMUNITY):累计收入 = ledger收入 + 过期收益
- 统一计算公式,确保数据一致性

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
hailin 2026-01-07 06:41:28 -08:00
parent 842bc42579
commit c7c793f128
1 changed files with 17 additions and 10 deletions

View File

@ -302,8 +302,8 @@ export class SystemAccountReportApplicationService {
/**
*
* [2026-01-07] (HQ_COMMUNITY / S0000000001)
* S0000000001
* [2026-01-07] = -
* (HQ_COMMUNITY / S0000000001)
*/
private assembleFixedAccounts(
fixedAccounts: AllSystemAccountsResponse['fixedAccounts'],
@ -320,25 +320,32 @@ export class SystemAccountReportApplicationService {
for (const account of fixedAccounts) {
const fieldName = FIXED_ACCOUNT_TYPES[account.accountType];
if (fieldName && fieldName in result) {
// 如果是总部储蓄账户 (HQ_COMMUNITY),累加过期收益到余额和累计收入
const currentReceived = parseFloat(account.totalReceived) || 0;
const currentTransferred = parseFloat(account.totalTransferred) || 0;
// 如果是总部储蓄账户 (HQ_COMMUNITY),累计收入需要加上过期收益
if (account.accountType === 'HQ_COMMUNITY' && expiredRewardsTotal > 0) {
const currentBalance = parseFloat(account.usdtBalance) || 0;
const currentReceived = parseFloat(account.totalReceived) || 0;
const newBalance = currentBalance + expiredRewardsTotal;
const newTotalReceived = currentReceived + expiredRewardsTotal;
// 账户余额 = 累计收入 - 累计转出
const newBalance = newTotalReceived - currentTransferred;
(result as any)[fieldName] = {
...account,
usdtBalance: newBalance.toFixed(8),
totalReceived: newTotalReceived.toFixed(8),
};
this.logger.log(
`[assembleFixedAccounts] HQ_COMMUNITY 余额: ${currentBalance} + 过期收益 ${expiredRewardsTotal} = ${newBalance}`,
);
this.logger.log(
`[assembleFixedAccounts] HQ_COMMUNITY 累计收入: ${currentReceived} + 过期收益 ${expiredRewardsTotal} = ${newTotalReceived}`,
);
this.logger.log(
`[assembleFixedAccounts] HQ_COMMUNITY 余额: ${newTotalReceived} - ${currentTransferred} = ${newBalance}`,
);
} else {
(result as any)[fieldName] = account;
// 其他账户:账户余额 = 累计收入 - 累计转出
const newBalance = currentReceived - currentTransferred;
(result as any)[fieldName] = {
...account,
usdtBalance: newBalance.toFixed(8),
};
}
}
}