feat: 按文档对接账务管理下页面逻辑与字段
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
/**
|
||||
* 支付流水 API
|
||||
* 对应 OpenAPI: GET /admin/finance/paymentFlow/page
|
||||
*/
|
||||
import { get } from '@/utils/request';
|
||||
import { USE_MOCK, MOCK_DELAY } from '@/config/mock';
|
||||
import { buildMockPaymentFlowPage } from '@/config/mock/paymentFlow';
|
||||
import type { PaymentFlowQueryParams, PaymentFlowVO, PageData, ApiResult } from './types';
|
||||
|
||||
export type { PaymentFlowVO, PaymentFlowQueryParams, PageData, ApiResult } from './types';
|
||||
|
||||
const delay = (ms: number) => new Promise<void>((r) => setTimeout(r, ms));
|
||||
|
||||
/** GET /admin/finance/paymentFlow/page — 支付流水分页 */
|
||||
export async function getPaymentFlowList(
|
||||
params: PaymentFlowQueryParams,
|
||||
): Promise<ApiResult<PageData<PaymentFlowVO>>> {
|
||||
if (USE_MOCK) {
|
||||
await delay(MOCK_DELAY);
|
||||
const page = Number(params.page) || 1;
|
||||
const limit = Number(params.limit) || 10;
|
||||
return { code: 200, msg: 'success', data: buildMockPaymentFlowPage(page, limit, params) };
|
||||
}
|
||||
return get('/admin/finance/paymentFlow/page', params as Record<string, any>);
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
/**
|
||||
* 支付流水 — 类型定义
|
||||
* 对应 OpenAPI: GET /admin/finance/paymentFlow/page
|
||||
*/
|
||||
|
||||
/** 支付流水列表项 */
|
||||
export interface PaymentFlowVO {
|
||||
/** 流水号 */
|
||||
serialNo: string;
|
||||
/** 订单编号 */
|
||||
orderNo: string;
|
||||
/** 类型:1=报名,2=取消报名 */
|
||||
type: number;
|
||||
/** 用户昵称 */
|
||||
nickname: string;
|
||||
/** 用户手机�� */
|
||||
phone: string;
|
||||
/** 订单金额("0.00"格式) */
|
||||
amount: string;
|
||||
/** 订单创建时间 */
|
||||
createDate: string;
|
||||
}
|
||||
|
||||
/** 支付流水查询参数 */
|
||||
export interface PaymentFlowQueryParams {
|
||||
page?: string;
|
||||
limit?: string;
|
||||
/** 订单创建开始时间 yyyy-MM-dd */
|
||||
createDateBegin?: string;
|
||||
/** 订单创建结束时间 yyyy-MM-dd */
|
||||
createDateEnd?: string;
|
||||
/** 用户昵称 */
|
||||
nickname?: string;
|
||||
/** 手机号 */
|
||||
phone?: string;
|
||||
/** 类型:1/2 */
|
||||
type?: string;
|
||||
}
|
||||
|
||||
export interface PageData<T> {
|
||||
total: number;
|
||||
list: T[];
|
||||
}
|
||||
export interface ApiResult<T> {
|
||||
code: number;
|
||||
msg: string;
|
||||
data: T;
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
/**
|
||||
* 用户钱包 API
|
||||
* OpenAPI: GET /admin/finance/wallet/summary, GET /admin/finance/wallet/page
|
||||
*/
|
||||
import { get } from '@/utils/request';
|
||||
import { USE_MOCK, MOCK_DELAY } from '@/config/mock';
|
||||
import { buildMockWalletPage } from '@/config/mock/walletList';
|
||||
import { buildMockWalletTransactionPage } from '@/config/mock/walletTransactions';
|
||||
import type {
|
||||
WalletQueryParams,
|
||||
WalletSummaryVO,
|
||||
WalletTransactionQueryParams,
|
||||
WalletTransactionVO,
|
||||
PageData,
|
||||
ApiResult,
|
||||
} from './types';
|
||||
|
||||
export type {
|
||||
WalletSummaryVO,
|
||||
WalletQueryParams,
|
||||
WalletTransactionVO,
|
||||
WalletTransactionQueryParams,
|
||||
PageData,
|
||||
ApiResult,
|
||||
} from './types';
|
||||
|
||||
const delay = (ms: number) => new Promise<void>((r) => setTimeout(r, ms));
|
||||
|
||||
/** GET /admin/finance/wallet/summary — 钱包列表分页 */
|
||||
export async function getWalletList(
|
||||
params: WalletQueryParams,
|
||||
): Promise<ApiResult<PageData<WalletSummaryVO>>> {
|
||||
if (USE_MOCK) {
|
||||
await delay(MOCK_DELAY);
|
||||
const page = Number(params.page) || 1;
|
||||
const limit = Number(params.limit) || 10;
|
||||
return { code: 200, msg: 'success', data: buildMockWalletPage(page, limit, params) };
|
||||
}
|
||||
return get('/admin/finance/wallet/summary', params as Record<string, any>);
|
||||
}
|
||||
|
||||
/** GET /admin/finance/wallet/page — 交易明细分页 */
|
||||
export async function getWalletTransactionList(
|
||||
params: WalletTransactionQueryParams,
|
||||
): Promise<ApiResult<PageData<WalletTransactionVO>>> {
|
||||
if (USE_MOCK) {
|
||||
await delay(MOCK_DELAY);
|
||||
const page = Number(params.page) || 1;
|
||||
const limit = Number(params.limit) || 10;
|
||||
return { code: 200, msg: 'success', data: buildMockWalletTransactionPage(page, limit, params) };
|
||||
}
|
||||
return get('/admin/finance/wallet/page', params as Record<string, any>);
|
||||
}
|
||||
@@ -0,0 +1,92 @@
|
||||
/**
|
||||
* 用户钱包 — 类型定义
|
||||
* 对应 OpenAPI: GET /admin/finance/wallet/summary
|
||||
*/
|
||||
|
||||
/** 钱包列表项 */
|
||||
export interface WalletSummaryVO {
|
||||
/** 用户ID */
|
||||
userId: number;
|
||||
/** 用户昵称 */
|
||||
userNickname: string;
|
||||
/** 手机号 */
|
||||
phone: string;
|
||||
/** 余额("0.00"格式) */
|
||||
amount: string;
|
||||
/** 冻结金额("0.00"格式) */
|
||||
frozenAmount: string;
|
||||
/** 累计成功提现金额("0.00"格式) */
|
||||
withdrawalAmount: string;
|
||||
/** 汇总行-总余额 */
|
||||
totalAmount: string;
|
||||
/** 汇总行-总冻结金额 */
|
||||
totalFrozenAmount: string;
|
||||
/** 汇总行-总累计提现 */
|
||||
totalWithdrawalAmount: string;
|
||||
}
|
||||
|
||||
/** 钱包列表查询参数 */
|
||||
export interface WalletQueryParams {
|
||||
page?: string;
|
||||
limit?: string;
|
||||
/** 用户昵称,模糊搜索 */
|
||||
nickname?: string;
|
||||
/** 手机号 */
|
||||
phone?: string;
|
||||
/** 余额最小值 */
|
||||
amountBegin?: string;
|
||||
/** 余额最大值 */
|
||||
amountEnd?: string;
|
||||
}
|
||||
|
||||
export interface PageData<T> {
|
||||
total: number;
|
||||
list: T[];
|
||||
}
|
||||
export interface ApiResult<T> {
|
||||
code: number;
|
||||
msg: string;
|
||||
data: T;
|
||||
}
|
||||
|
||||
// ============================================================
|
||||
// 交易明细(GET /admin/finance/wallet/page)
|
||||
// ============================================================
|
||||
|
||||
/** 交易明细列表项 */
|
||||
export interface WalletTransactionVO {
|
||||
/** 类型:1=报名入账,2=提现出账,3=退款出账 */
|
||||
type: number;
|
||||
/** 金额("0.00"格式,入账为+,出账为-) */
|
||||
amount: string;
|
||||
/** 余额("0.00"格式) */
|
||||
afterAmount: string;
|
||||
/** 可提现余额("0.00"格式) */
|
||||
withdrawAmount: string;
|
||||
/** 冻结金额("0.00"格式) */
|
||||
freezeAmount: string;
|
||||
/** 冻结时间 */
|
||||
freezeTime: string;
|
||||
/** 解冻时间 */
|
||||
unfreezeTime: string;
|
||||
/** 关联单号 */
|
||||
orderNo: string;
|
||||
/** 时间 */
|
||||
createDate: string;
|
||||
}
|
||||
|
||||
/** 交易明细查询参数 */
|
||||
export interface WalletTransactionQueryParams {
|
||||
page?: string;
|
||||
limit?: string;
|
||||
/** 用户ID */
|
||||
userId?: string;
|
||||
/** 创建开始时间 yyyy-MM-dd */
|
||||
createDateBegin?: string;
|
||||
/** 创建结束时间 yyyy-MM-dd */
|
||||
createDateEnd?: string;
|
||||
/** 类型:1/2/3 */
|
||||
type?: string;
|
||||
/** 状态:1=已解冻,2=冻结中,3=正常 */
|
||||
status?: string;
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
/**
|
||||
* 提现管理 API
|
||||
* 对应 OpenAPI: GET /admin/finance/withdraw/page, GET /admin/finance/withdraw/info
|
||||
*/
|
||||
import { get, post } from '@/utils/request';
|
||||
import { USE_MOCK, MOCK_DELAY } from '@/config/mock';
|
||||
import { buildMockWithdrawPage } from '@/config/mock/withdrawList';
|
||||
import { buildMockWithdrawInfo } from '@/config/mock/withdrawInfo';
|
||||
import type { WithdrawQueryParams, WithdrawVO, WithdrawInfoVO, PageData, ApiResult } from './types';
|
||||
|
||||
export type { WithdrawVO, WithdrawInfoVO, WithdrawQueryParams, PageData, ApiResult } from './types';
|
||||
|
||||
const delay = (ms: number) => new Promise<void>((r) => setTimeout(r, ms));
|
||||
|
||||
/** GET /admin/finance/withdraw/page — 提现列表分页 */
|
||||
export async function getWithdrawList(
|
||||
params: WithdrawQueryParams,
|
||||
): Promise<ApiResult<PageData<WithdrawVO>>> {
|
||||
if (USE_MOCK) {
|
||||
await delay(MOCK_DELAY);
|
||||
const page = Number(params.page) || 1;
|
||||
const limit = Number(params.limit) || 10;
|
||||
return {
|
||||
code: 200,
|
||||
msg: 'success',
|
||||
data: buildMockWithdrawPage(page, limit, params),
|
||||
};
|
||||
}
|
||||
return get('/admin/finance/withdraw/page', params as Record<string, any>);
|
||||
}
|
||||
|
||||
/** GET /admin/finance/withdraw/info?id=xxx — 提现详情 */
|
||||
export async function getWithdrawInfo(id: number): Promise<ApiResult<WithdrawInfoVO>> {
|
||||
if (USE_MOCK) {
|
||||
await delay(MOCK_DELAY);
|
||||
return { code: 200, msg: 'success', data: buildMockWithdrawInfo(id) };
|
||||
}
|
||||
return get('/admin/finance/withdraw/info', { id: String(id) });
|
||||
}
|
||||
|
||||
/** 提现审核请求参数 */
|
||||
export interface WithdrawAuditParams {
|
||||
/** 提现ID */
|
||||
id: string;
|
||||
/** 审核结果:1=通过,2=驳回 */
|
||||
audit: string;
|
||||
/** 审核内容 */
|
||||
checkMsg: string;
|
||||
/** 审核图片(逗号拼接的 URL) */
|
||||
checkImg: string;
|
||||
}
|
||||
|
||||
/** POST /admin/finance/withdraw/audit — 审核提现 */
|
||||
export async function postWithdrawAudit(params: WithdrawAuditParams): Promise<ApiResult<null>> {
|
||||
return post('/admin/finance/withdraw/audit', params);
|
||||
}
|
||||
@@ -0,0 +1,104 @@
|
||||
/**
|
||||
* 提现管理 — 类型定义
|
||||
* 对应 OpenAPI: GET /admin/finance/withdraw/page
|
||||
*/
|
||||
|
||||
/** 提现列表项(对齐 TournamentFinanceWithdrawVO) */
|
||||
export interface WithdrawVO {
|
||||
/** 提现ID */
|
||||
id: number;
|
||||
/** 申请人昵称 */
|
||||
nickname: string;
|
||||
/** 申请人手机号 */
|
||||
phone: string;
|
||||
/** 申请人真实姓名 */
|
||||
realName: string;
|
||||
/** 提现类型(固定"银行卡") */
|
||||
withdrawType: string;
|
||||
/** 提现金额("0.00"格式) */
|
||||
withdrawAmount: string;
|
||||
/** 到账金额("0.00"格式) */
|
||||
receivedAmount: string;
|
||||
/** 审核状态:0=待审核,1=审核通过,2=审核驳回 */
|
||||
auditStatus: number;
|
||||
/** 到账状态:0=未支付,1=支付成功,2=支付失败 */
|
||||
payStatus: number;
|
||||
/** 流水单号 */
|
||||
serialNumber: string;
|
||||
/** 申请时间 */
|
||||
createDate: string;
|
||||
}
|
||||
|
||||
/** 提现列表查询参数 */
|
||||
export interface WithdrawQueryParams {
|
||||
page?: string;
|
||||
limit?: string;
|
||||
/** 提现申请人昵称 */
|
||||
nickname?: string;
|
||||
/** 提现申请人手机号 */
|
||||
phone?: string;
|
||||
/** 提现申请人真实姓名 */
|
||||
realName?: string;
|
||||
/** 审核状态:0/1/2 */
|
||||
auditStatus?: string;
|
||||
/** 到账状态:0/1/2 */
|
||||
payStatus?: string;
|
||||
}
|
||||
|
||||
export interface PageData<T> {
|
||||
total: number;
|
||||
list: T[];
|
||||
}
|
||||
export interface ApiResult<T> {
|
||||
code: number;
|
||||
msg: string;
|
||||
data: T;
|
||||
}
|
||||
|
||||
/** 提现详情(对齐 TournamentFinanceWithdrawInfoVO) */
|
||||
export interface WithdrawInfoVO {
|
||||
/** 申请人昵称 */
|
||||
nickname: string;
|
||||
/** 申请人手机号 */
|
||||
phone: string;
|
||||
/** 申请人真实姓名 */
|
||||
realName: string;
|
||||
/** 申请时间 */
|
||||
createDate: string;
|
||||
/** 提现类型(固定"银行卡") */
|
||||
withdrawType: string;
|
||||
/** 提现金额("0.00"格式) */
|
||||
withdrawAmount: string;
|
||||
/** 费率 */
|
||||
feeRate: string;
|
||||
/** 手续费 */
|
||||
feeAmount: string;
|
||||
/** 到账金额("0.00"格式) */
|
||||
receivedAmount: string;
|
||||
/** 审核状态:0=待审核,1=审核通过,2=审核驳回 */
|
||||
auditStatus: number;
|
||||
/** 到账状态:0=未支付,1=支付成功,2=支付失败 */
|
||||
payStatus: number;
|
||||
/** 银行卡类型:1=个人 */
|
||||
bankCardType: number;
|
||||
/** 持卡人真实姓名 */
|
||||
cardHolderName: string;
|
||||
/** 银行卡号 */
|
||||
bankCardNumber: string;
|
||||
/** 开户行名称 */
|
||||
bankName: string;
|
||||
/** 支行名称 */
|
||||
branchName: string;
|
||||
/** 支付时间 */
|
||||
payTime: string;
|
||||
/** 订单号 */
|
||||
orderNo: string;
|
||||
/** 审核时间 */
|
||||
auditDate: string;
|
||||
/** 审核人昵称 */
|
||||
auditNickname: string;
|
||||
/** 审核图片 */
|
||||
auditImg: string;
|
||||
/** 审核图片列表 */
|
||||
auditImgList: string[];
|
||||
}
|
||||
Reference in New Issue
Block a user