296 lines
8.7 KiB
TypeScript
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)
|
|
}
|
|
}
|