/** * 支付流水假数据 * 对应接口:GET /admin/finance/paymentFlow/page */ import type { PaymentFlowVO, PaymentFlowQueryParams, PaymentFlowPageData } from '@/api/payments'; const MOCK_LIST: PaymentFlowVO[] = [ { serialNo: 'FL20260730001', orderNo: 'OD20260730001', type: 1, nickname: '张三', phone: '12345678997', amount: '99.00', createDate: '2026-07-30 08:00:00', }, { serialNo: '', orderNo: '', type: 2, nickname: '李四', phone: '12345678998', amount: '100.00', createDate: '2026-07-30 07:00:00', }, { serialNo: 'FL20260729002', orderNo: 'OD20260729002', type: 1, nickname: '王五', phone: '12345678998', amount: '199.00', createDate: '2026-07-29 16:00:00', }, { serialNo: '', orderNo: '', type: 2, nickname: '赵六', phone: '13800138000', amount: '50.00', createDate: '2026-07-29 15:20:00', }, { serialNo: 'FL20260728003', orderNo: 'OD20260728003', type: 1, nickname: '钱七', phone: '13900139001', amount: '350.00', createDate: '2026-07-28 14:00:00', }, { serialNo: '', orderNo: '', type: 2, nickname: '孙八', phone: '18600186001', amount: '120.00', createDate: '2026-07-28 10:30:00', }, { serialNo: 'FL20260727004', orderNo: 'OD20260727004', type: 1, nickname: '周九', phone: '15200152000', amount: '88.00', createDate: '2026-07-27 09:00:00', }, { serialNo: 'FL20260727005', orderNo: 'OD20260727005', type: 1, nickname: '吴十', phone: '17000170001', amount: '520.00', createDate: '2026-07-27 08:00:00', }, { serialNo: '', orderNo: '', type: 2, nickname: '李四', phone: '12345678998', amount: '200.00', createDate: '2026-07-26 17:00:00', }, { serialNo: 'FL20260726006', orderNo: 'OD20260726006', type: 1, nickname: '张三', phone: '12345678997', amount: '128.00', createDate: '2026-07-26 11:00:00', }, { serialNo: '', orderNo: '', type: 2, nickname: '王五', phone: '12345678998', amount: '80.00', createDate: '2026-07-25 13:00:00', }, { serialNo: 'FL20260725007', orderNo: 'OD20260725007', type: 1, nickname: '赵六', phone: '13800138000', amount: '680.00', createDate: '2026-07-25 10:00:00', }, ]; function inDateRange(date: string, begin?: string, end?: string): boolean { if (!begin && !end) return true; const d = date.slice(0, 10); if (begin && d < begin) return false; if (end && d > end) return false; return true; } export function buildMockPaymentFlowPage( page: number, limit: number, params: PaymentFlowQueryParams, ): PaymentFlowPageData { let filtered = [...MOCK_LIST]; if (params.nickname) { filtered = filtered.filter((item) => item.nickname.includes(params.nickname!)); } if (params.phone) { filtered = filtered.filter((item) => item.phone.includes(params.phone!)); } if (params.type) { filtered = filtered.filter((item) => item.type === Number(params.type)); } filtered = filtered.filter((item) => inDateRange(item.createDate, params.createDateBegin, params.createDateEnd), ); let totalAmount = 0; let totalRefundAmount = 0; for (const item of filtered) { const amt = Number(item.amount) || 0; if (item.type === 1) totalAmount += amt; else if (item.type === 2) totalRefundAmount += amt; } const total = filtered.length; const start = (page - 1) * limit; return { total, list: filtered.slice(start, start + limit), exData: { totalAmount: totalAmount.toFixed(2), totalRefundAmount: totalRefundAmount.toFixed(2), }, }; }