Files
one-pipe-system/src/api/modules/commission.ts
2026-09-17 12:16:20 +08:00

296 lines
8.7 KiB
TypeScript

/**
* 佣金管理相关 API
*/
import { BaseService } from '../BaseService'
import type { BaseResponse } from '@/types/api'
import type {
WithdrawalRequestQueryParams,
WithdrawalRequestPageResult,
ApproveWithdrawalParams,
RejectWithdrawalParams,
WithdrawalSettingListResult,
WithdrawalSettingItem,
CreateWithdrawalSettingParams,
CommissionRecordQueryParams,
SubmitWithdrawalParams,
ShopCommissionRecordPageResult,
ShopCommissionRecordDetail,
ShopCommissionRecordSource,
ShopFundSummaryQueryParams,
ShopFundSummaryPageResult,
ShopCommissionStatsQueryParams,
CommissionStatsResponse,
DailyCommissionStatsQueryParams,
DailyCommissionStatsItem,
ResolveCommissionParams,
MainWalletTransactionQueryParams,
MainWalletTransactionPageResult,
WithdrawalQualificationSubmitParams,
WithdrawalQualificationQueryParams,
WithdrawalQualificationPageResult,
VoidWithdrawalQualificationParams,
ResubmitWithdrawalRequestParams,
WithdrawalRequestDetail,
} from '@/types/api/commission'
export class CommissionService extends BaseService {
// ==================== 提现资料资格相关 ====================
/**
* 提交/替换提现资料资格
* POST /api/admin/shops/{shop_id}/withdrawal-qualifications
*/
static submitWithdrawalQualification(
shopId: number,
data: WithdrawalQualificationSubmitParams
): Promise<BaseResponse<{ id: number; status: number; status_name: string }>> {
return this.post<BaseResponse<{ id: number; status: number; status_name: string }>>(
`/api/admin/shops/${shopId}/withdrawal-qualifications`,
data
)
}
/**
* 查询提现资料资格
* GET /api/admin/shops/{shop_id}/withdrawal-qualifications
*/
static getWithdrawalQualifications(
shopId: number,
params?: WithdrawalQualificationQueryParams
): Promise<BaseResponse<WithdrawalQualificationPageResult>> {
return this.get<BaseResponse<WithdrawalQualificationPageResult>>(
`/api/admin/shops/${shopId}/withdrawal-qualifications`,
params
)
}
/**
* 作废提现资料资格(超管)
* POST /api/admin/withdrawal-qualifications/{id}/void
*/
static voidWithdrawalQualification(
id: number,
data: VoidWithdrawalQualificationParams
): Promise<BaseResponse> {
return this.post<BaseResponse>(`/api/admin/withdrawal-qualifications/${id}/void`, data)
}
/**
* 重提被驳回的提现
* PUT /api/admin/shops/{shop_id}/withdrawal-requests/{id}
*/
static resubmitWithdrawalRequest(
shopId: number,
id: number,
data: ResubmitWithdrawalRequestParams
): Promise<BaseResponse<WithdrawalRequestDetail>> {
return this.put<BaseResponse<WithdrawalRequestDetail>>(
`/api/admin/shops/${shopId}/withdrawal-requests/${id}`,
data
)
}
/**
* 提现申请详情
* GET /api/admin/shops/{shop_id}/withdrawal-requests/{id}
*/
static getWithdrawalRequestDetail(
shopId: number,
id: number
): Promise<BaseResponse<WithdrawalRequestDetail>> {
return this.get<BaseResponse<WithdrawalRequestDetail>>(
`/api/admin/shops/${shopId}/withdrawal-requests/${id}`
)
}
// ==================== 提现申请管理 ====================
/**
* 获取提现申请列表
* GET /api/admin/commission/withdrawal-requests
*/
static getWithdrawalRequests(
params?: WithdrawalRequestQueryParams
): Promise<BaseResponse<WithdrawalRequestPageResult>> {
return this.get<BaseResponse<WithdrawalRequestPageResult>>(
'/api/admin/commission/withdrawal-requests',
params
)
}
/**
* 审批通过提现申请
* POST /api/admin/commission/withdrawal-requests/{id}/approve
*/
static approveWithdrawal(id: number, params?: ApproveWithdrawalParams): Promise<BaseResponse> {
return this.post<BaseResponse>(
`/api/admin/commission/withdrawal-requests/${id}/approve`,
params
)
}
/**
* 拒绝提现申请
* POST /api/admin/commission/withdrawal-requests/{id}/reject
*/
static rejectWithdrawal(id: number, params: RejectWithdrawalParams): Promise<BaseResponse> {
return this.post<BaseResponse>(`/api/admin/commission/withdrawal-requests/${id}/reject`, params)
}
// ==================== 提现配置管理 ====================
/**
* 获取提现配置列表
* GET /api/admin/commission/withdrawal-settings
*/
static getWithdrawalSettings(): Promise<BaseResponse<WithdrawalSettingListResult>> {
return this.get<BaseResponse<WithdrawalSettingListResult>>(
'/api/admin/commission/withdrawal-settings'
)
}
/**
* 新增提现配置
* POST /api/admin/commission/withdrawal-settings
*/
static createWithdrawalSetting(params: CreateWithdrawalSettingParams): Promise<BaseResponse> {
return this.post<BaseResponse>('/api/admin/commission/withdrawal-settings', params)
}
/**
* 获取当前生效的提现配置
* GET /api/admin/commission/withdrawal-settings/current
*/
static getCurrentWithdrawalSetting(): Promise<BaseResponse<WithdrawalSettingItem>> {
return this.get<BaseResponse<WithdrawalSettingItem>>(
'/api/admin/commission/withdrawal-settings/current'
)
}
// ==================== 代理商资金概况 ====================
/**
* 获取代理商资金明细
* GET /api/admin/shops/{shop_id}/commission-records
*/
static getShopCommissionRecords(
shopId: number,
params?: CommissionRecordQueryParams
): Promise<BaseResponse<ShopCommissionRecordPageResult>> {
return this.get<BaseResponse<ShopCommissionRecordPageResult>>(
`/api/admin/shops/${shopId}/commission-records`,
params
)
}
/**
* 获取佣金明细详情
* GET /api/admin/shops/{shop_id}/commission-records/{id}
* source 省略时按原佣金处理;越权与不存在返回同一结果(佣金明细不存在)
*/
static getShopCommissionRecordDetail(
shopId: number,
id: number,
source?: ShopCommissionRecordSource
): Promise<BaseResponse<ShopCommissionRecordDetail>> {
return this.get<BaseResponse<ShopCommissionRecordDetail>>(
`/api/admin/shops/${shopId}/commission-records/${id}`,
source ? { source } : undefined
)
}
/**
* 获取代理商提现记录
* GET /api/admin/shops/{shop_id}/withdrawal-requests
*/
static getShopWithdrawalRequests(
shopId: number,
params?: WithdrawalRequestQueryParams
): Promise<BaseResponse<WithdrawalRequestPageResult>> {
return this.get<BaseResponse<WithdrawalRequestPageResult>>(
`/api/admin/shops/${shopId}/withdrawal-requests`,
params
)
}
/**
* 获取代理商资金汇总列表(含预充值余额 + 佣金)
* GET /api/admin/shops/fund-summary
*/
static getShopFundSummary(
params?: ShopFundSummaryQueryParams
): Promise<BaseResponse<ShopFundSummaryPageResult>> {
return this.get<BaseResponse<ShopFundSummaryPageResult>>(
'/api/admin/shops/fund-summary',
params
)
}
/**
* 获取代理商资金统计
* GET /api/admin/shops/{shop_id}/commission-stats
*/
static getShopCommissionStats(
shopId: number,
params?: ShopCommissionStatsQueryParams
): Promise<BaseResponse<CommissionStatsResponse>> {
return this.get<BaseResponse<CommissionStatsResponse>>(
`/api/admin/shops/${shopId}/commission-stats`,
params
)
}
/**
* 获取代理商每日佣金统计
* GET /api/admin/shops/{shop_id}/commission-daily-stats
*/
static getShopDailyCommissionStats(
shopId: number,
params?: DailyCommissionStatsQueryParams
): Promise<BaseResponse<DailyCommissionStatsItem[]>> {
return this.get<BaseResponse<DailyCommissionStatsItem[]>>(
`/api/admin/shops/${shopId}/commission-daily-stats`,
params
)
}
/**
* 发起代理商提现申请
* POST /api/admin/shops/{shop_id}/withdrawal-requests
*/
static submitShopWithdrawalRequest(
shopId: number,
params: SubmitWithdrawalParams
): Promise<BaseResponse> {
return this.post<BaseResponse>(`/api/admin/shops/${shopId}/withdrawal-requests`, params)
}
/**
* 获取预充值钱包流水
* GET /api/admin/shops/{shop_id}/main-wallet/transactions
*/
static getMainWalletTransactions(
shopId: number,
params?: MainWalletTransactionQueryParams
): Promise<BaseResponse<MainWalletTransactionPageResult>> {
return this.get<BaseResponse<MainWalletTransactionPageResult>>(
`/api/admin/shops/${shopId}/main-wallet/transactions`,
params
)
}
// ==================== 佣金记录修正 ====================
/**
* 修正待审佣金记录
* POST /api/admin/commission-records/{id}/resolve
*/
static resolveCommissionRecord(
id: number,
params: ResolveCommissionParams
): Promise<BaseResponse> {
return this.post<BaseResponse>(`/api/admin/commission-records/${id}/resolve`, params)
}
}