feat(admin+api+player): 优胜赛结算态、禁止新增单场与钱包流水展示优化
- API/管理端:优胜赛 SETTLED 后禁止新增单场,列表与子页展示结算状态 - 玩家端:已结算 outright 只读展示并高亮冠军 - 管理端:结算后 stale 标记驱动列表刷新;财务流水时间与备注 i18n 优化 - shared:txDisplayAmount 与 LEAGUE_OUTRIGHT_SETTLED 错误码
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
export { txDisplayAmount } from '@thebet365/shared';
|
||||
|
||||
export const TX_KEY_MAP: Record<string, string> = {
|
||||
MANUAL_DEPOSIT: 'finance.tx.deposit',
|
||||
ADMIN_DEPOSIT: 'finance.tx.admin_deposit',
|
||||
@@ -64,3 +66,45 @@ export function walletDepositMethodLabel(
|
||||
if (type === 'PLAYER_DEPOSIT') return t('finance.tx.player_deposit');
|
||||
return '—';
|
||||
}
|
||||
|
||||
const WALLET_REMARK_EXACT: Record<string, string> = {
|
||||
'Agent deposit': 'finance.remark.agent_deposit',
|
||||
'Agent withdraw': 'finance.remark.agent_withdraw',
|
||||
'代理上分': 'finance.remark.agent_deposit',
|
||||
'代理下分': 'finance.remark.agent_withdraw',
|
||||
'管理员上分': 'finance.remark.admin_deposit',
|
||||
'管理员下分': 'finance.remark.admin_withdraw',
|
||||
'开户初始余额': 'finance.remark.initial_balance',
|
||||
'Resettlement adjustment': 'finance.tx.resettle',
|
||||
};
|
||||
|
||||
/** 钱包流水备注:系统英文/中文模板按当前语言展示 */
|
||||
export function walletRemarkLabel(
|
||||
remark: string | null | undefined,
|
||||
transactionType: string,
|
||||
t: (key: string, params?: Record<string, unknown>) => string,
|
||||
): string {
|
||||
const raw = remark?.trim();
|
||||
if (!raw) {
|
||||
if (transactionType === 'MANUAL_DEPOSIT') return t('finance.remark.agent_deposit');
|
||||
if (transactionType === 'MANUAL_WITHDRAW') return t('finance.remark.agent_withdraw');
|
||||
return '—';
|
||||
}
|
||||
|
||||
const exactKey = WALLET_REMARK_EXACT[raw];
|
||||
if (exactKey) return t(exactKey);
|
||||
|
||||
const revokeEn = raw.match(/^Revoke approved deposit\s+([A-Z0-9]+)$/i);
|
||||
if (revokeEn) return t('finance.remark.revoke_deposit', { orderNo: revokeEn[1] });
|
||||
|
||||
const revokeZh = raw.match(/^撤销已通过充值\s+([A-Z0-9]+)$/);
|
||||
if (revokeZh) return t('finance.remark.revoke_deposit', { orderNo: revokeZh[1] });
|
||||
|
||||
const depositOrder = raw.match(/^Deposit order\s+([A-Z0-9]+)$/i);
|
||||
if (depositOrder) return t('finance.remark.deposit_order', { orderNo: depositOrder[1] });
|
||||
|
||||
const cashbackBatch = raw.match(/^Cashback batch\s+(.+)$/i);
|
||||
if (cashbackBatch) return t('finance.remark.cashback_batch', { batchNo: cashbackBatch[1].trim() });
|
||||
|
||||
return raw;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user