fix(wallet): 统计概览排除 REWARD_TO_SETTLEABLE 避免重复计入
REWARD_PENDING(入账) 和 REWARD_TO_SETTLEABLE(状态转换) 是同一笔收入 的两个阶段,统计时只应计入 REWARD_PENDING,排除 REWARD_TO_SETTLEABLE。 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
ecaaf68a27
commit
b905e8cb23
|
|
@ -2673,13 +2673,15 @@ export class WalletApplicationService {
|
||||||
}
|
}
|
||||||
|
|
||||||
// 计算收支
|
// 计算收支
|
||||||
// 排除临时性流水类型(冻结/解冻),避免双重计算
|
// 排除临时性流水类型(冻结/解冻)和状态转换类型,避免双重计算
|
||||||
// 例如:认种流程会产生 PLANT_FREEZE(-100) + PLANT_PAYMENT(-100),实际只支出 100
|
// 例如:认种流程会产生 PLANT_FREEZE(-100) + PLANT_PAYMENT(-100),实际只支出 100
|
||||||
|
// 例如:奖励流程会产生 REWARD_PENDING(+720) + REWARD_TO_SETTLEABLE(+720),实际只收入 720
|
||||||
const excludeFromStats = new Set([
|
const excludeFromStats = new Set([
|
||||||
'PLANT_FREEZE', // 认种冻结(临时)
|
'PLANT_FREEZE', // 认种冻结(临时)
|
||||||
'PLANT_UNFREEZE', // 认种解冻(回滚)
|
'PLANT_UNFREEZE', // 认种解冻(回滚)
|
||||||
'FREEZE', // 通用冻结(临时)
|
'FREEZE', // 通用冻结(临时)
|
||||||
'UNFREEZE', // 通用解冻(回滚)
|
'UNFREEZE', // 通用解冻(回滚)
|
||||||
|
'REWARD_TO_SETTLEABLE', // 待领取→可结算(状态转换,REWARD_PENDING 已计入)
|
||||||
]);
|
]);
|
||||||
|
|
||||||
let totalIncome = 0;
|
let totalIncome = 0;
|
||||||
|
|
@ -2766,12 +2768,13 @@ export class WalletApplicationService {
|
||||||
}
|
}
|
||||||
|
|
||||||
// 填充数据
|
// 填充数据
|
||||||
// 排除临时性流水类型(冻结/解冻),避免双重计算
|
// 排除临时性流水类型(冻结/解冻)和状态转换类型,避免双重计算
|
||||||
const excludeFromStats = new Set([
|
const excludeFromStats = new Set([
|
||||||
'PLANT_FREEZE', // 认种冻结(临时)
|
'PLANT_FREEZE', // 认种冻结(临时)
|
||||||
'PLANT_UNFREEZE', // 认种解冻(回滚)
|
'PLANT_UNFREEZE', // 认种解冻(回滚)
|
||||||
'FREEZE', // 通用冻结(临时)
|
'FREEZE', // 通用冻结(临时)
|
||||||
'UNFREEZE', // 通用解冻(回滚)
|
'UNFREEZE', // 通用解冻(回滚)
|
||||||
|
'REWARD_TO_SETTLEABLE', // 待领取→可结算(状态转换,REWARD_PENDING 已计入)
|
||||||
]);
|
]);
|
||||||
|
|
||||||
let periodIncome = 0;
|
let periodIncome = 0;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue