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