feat: integrate unified payment and wallet refunds

This commit is contained in:
2026-08-02 23:24:32 +08:00
parent f0b8af0bc8
commit 82a2106a97
64 changed files with 1519 additions and 254 deletions

View File

@@ -1,4 +1,4 @@
import { readFileSync } from 'node:fs';
import { readFileSync } from 'node:fs';
import { dirname, resolve } from 'node:path';
import { fileURLToPath } from 'node:url';
@@ -14,8 +14,8 @@ const frontendDefinitions = [
].map((match) => ({ name: match[1], mode: match[2] }));
const frontendNames = frontendDefinitions.map((item) => item.name);
const embeddedResources = new Set([
'wallet_basic', 'wallet_bank', 'wallet_payment', 'wallet_record',
'wallet_refund', 'wallet_apply_cash',
'wallet_basic', 'wallet_bank', 'payment_order', 'wallet_record',
'payment_refund', 'wallet_apply_cash',
]);
for (const name of frontendNames) {

View File

@@ -1,4 +1,4 @@
export type ResourceMode =
export type ResourceMode =
| 'writable'
| 'readonly'
| 'append_only'
@@ -140,6 +140,10 @@ const fieldLabels: Record<string, string> = {
reviewed_at: '审核时间',
reviewer_name: '审核人',
reviewer_identity: '审核人标识',
review_remark: '审核说明',
business_type: '业务类型',
business_identity: '业务标识',
user_identity: '用户标识',
ymd: '日期',
ym: '月份',
contract_no: '合同编号',
@@ -345,9 +349,16 @@ export const resources: ResourceUiDefinition[] = [
{ name: '修改钱包状态', resource: '/wallet_basic/:identity/status', method: 'PATCH', fields: [f('status', { required: true, type: 'select', options: [{ label: '启用', value: 1 }, { label: '停用', value: 2 }, { label: '冻结', value: 4 }] })] },
]),
define('wallet_bank', '银行卡', 'readonly', []),
define('wallet_payment', '钱包支付记录', 'readonly', []),
define('payment_order', '钱包支付记录', 'readonly', []),
define('wallet_record', '钱包流水', 'readonly', []),
define('wallet_refund', '退款记录', 'readonly', []),
define('payment_refund', '退款审核', 'readonly', [
f('refund_no'), f('business_type'), f('business_identity'), f('user_identity'),
f('amount'), f('reason'), f('description'), f('refund_status'),
f('reviewer_identity'), f('review_remark'), f('reviewed_at'), f('completed_at'),
], 'list', [
{ name: '审核通过并退入钱包', resource: '/payment_refund/:identity/approve', fields: [f('remark')], visibleFor: { field: 'refund_status', values: [10] } },
{ name: '驳回退款', resource: '/payment_refund/:identity/reject', danger: true, fields: [f('remark', { required: true })], visibleFor: { field: 'refund_status', values: [10] } },
], { canCreate: false, canEdit: false, canChangeStatus: false, canArchive: false }),
define('wallet_apply_cash', '提现记录', 'readonly', [
f('cash_no'),
f('wallet_basic_identity', { type: 'identity' }),

File diff suppressed because one or more lines are too long

View File

@@ -111,6 +111,7 @@ const routes: AppRouteRecordRaw[] = [
group('finance', 'finance', '财务管理', 'icon-bar-chart', 90, [
child('finance', 'withdrawals', 'withdrawals', '提现记录', '/wallet_apply_cash', 'wallet_apply_cash'),
child('finance', 'payments', 'payments', '支付记录', '/fin_payment', 'fin_payment'),
child('finance', 'refunds', 'refunds', '退款审核', '/payment_refund', 'payment_refund'),
child('finance', 'settlements', 'settlements', '财务结算', '/fin_settlement', 'fin_settlement'),
child('finance', 'reconciliations', 'reconciliations', '财务对账', '/fin_reconciliation', 'fin_reconciliation'),
]),