Files
xfc_adminfront/apps/web-antd/src/api/agent/agent.ts
2026-01-15 18:04:52 +08:00

595 lines
14 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { requestClient } from '#/api/request';
export namespace AgentApi {
export interface AgentListItem {
id: number;
user_id: number;
agent_code: number;
level: number; // 1=普通2=黄金3=钻石
level_name: string;
region: string;
mobile: string;
wechat_id?: string;
team_leader_id?: number;
balance: number;
total_earnings: number;
frozen_balance: number;
withdrawn_amount: number;
is_real_name: boolean;
create_time: string;
}
export interface AgentList {
total: number;
items: AgentListItem[];
}
export interface GetAgentListParams {
page: number;
pageSize: number;
mobile?: string;
region?: string;
level?: number;
team_leader_id?: number;
id?: number;
create_time_start?: string;
create_time_end?: string;
order_by?: string;
order_type?: 'asc' | 'desc';
}
export interface AgentLinkListItem {
agent_id: number;
product_id: number;
product_name: string;
set_price: number;
actual_base_price: number;
link_identifier: string;
create_time: string;
}
export interface AgentLinkList {
total: number;
items: AgentLinkListItem[];
}
export interface GetAgentLinkListParams {
page: number;
pageSize: number;
agent_id?: number;
product_id?: number;
product_name?: string;
link_identifier?: string;
}
// 代理佣金相关接口
export interface AgentCommissionListItem {
id: number;
agent_id: number;
order_id: number;
amount: number;
product_name: string;
status: number;
create_time: string;
}
export interface AgentCommissionList {
total: number;
items: AgentCommissionListItem[];
}
export interface GetAgentCommissionListParams {
page: number;
pageSize: number;
agent_id?: number;
product_name?: string;
status?: number;
}
// 代理返佣相关接口
export interface AgentRebateListItem {
id: number;
agent_id: number;
source_agent_id: number;
order_id: number;
rebate_type: number; // 1=直接上级返佣2=钻石上级返佣3=黄金上级返佣
amount: number;
create_time: string;
}
export interface AgentRebateList {
total: number;
items: AgentRebateListItem[];
}
export interface GetAgentRebateListParams {
page: number;
pageSize: number;
agent_id?: number;
source_agent_id?: number;
rebate_type?: number;
}
// 代理提现相关接口
export interface AgentWithdrawalListItem {
id: number;
agent_id: number;
withdraw_no: string;
amount: number;
tax_amount: number;
actual_amount: number;
status: number; // 1=待审核2=审核通过3=审核拒绝4=提现中5=提现成功6=提现失败
payee_account: string;
payee_name: string;
remark: string;
create_time: string;
}
export interface AgentWithdrawalList {
total: number;
items: AgentWithdrawalListItem[];
}
export interface GetAgentWithdrawalListParams {
page: number;
pageSize: number;
agent_id?: number;
status?: number;
withdraw_no?: string;
}
export interface AuditWithdrawalParams {
withdrawal_id: number;
status: number; // 2=通过3=拒绝
remark: string;
}
// 代理产品配置列表项
export interface AgentProductionConfigItem {
id: number;
product_id: number;
product_name: string;
base_price: number;
price_range_min: number;
price_range_max: number;
price_threshold: number;
price_fee_rate: number;
create_time: string;
}
// 代理产品配置列表响应
export interface AgentProductionConfigList {
total: number;
items: AgentProductionConfigItem[];
}
// 获取代理产品配置列表参数
export interface GetAgentProductionConfigListParams {
page: number;
pageSize: number;
product_name?: string;
product_id?: number;
id?: number;
}
// 更新代理产品配置参数
export interface UpdateAgentProductionConfigParams {
id: number;
base_price: number;
price_range_max: number;
price_threshold?: number;
price_fee_rate?: number;
}
// 更新代理产品配置响应
export interface UpdateAgentProductionConfigResp {
success: boolean;
}
// 代理升级记录相关接口
export interface AgentUpgradeListItem {
id: number;
agent_id: number;
from_level: number;
to_level: number;
upgrade_type: number; // 1=自主付费2=钻石升级下级
upgrade_fee: number;
rebate_amount: number;
status: number; // 1=待处理2=已完成3=已失败
create_time: string;
}
export interface AgentUpgradeList {
total: number;
items: AgentUpgradeListItem[];
}
export interface GetAgentUpgradeListParams {
page: number;
pageSize: number;
agent_id?: number;
upgrade_type?: number;
status?: number;
}
// 代理订单相关接口
export interface AgentOrderListItem {
id: number;
agent_id: number;
order_id: number;
product_id: number;
product_name: string;
order_amount: number;
set_price: number;
actual_base_price: number;
price_cost: number;
agent_profit: number;
process_status: number; // 0=待处理1=处理成功2=处理失败
create_time: string;
}
export interface AgentOrderList {
total: number;
items: AgentOrderListItem[];
}
export interface GetAgentOrderListParams {
page: number;
pageSize: number;
agent_id?: number;
order_id?: number;
process_status?: number;
}
// 邀请码管理相关接口
export interface InviteCodeListItem {
id: number;
code: string;
agent_id: number; // 0表示平台发放
agent_mobile: string;
target_level: number;
status: number; // 0=未使用1=已使用2=已失效
used_user_id?: number;
used_agent_id?: number;
used_time?: string;
expire_time?: string;
remark?: string;
create_time: string;
}
export interface InviteCodeList {
total: number;
items: InviteCodeListItem[];
}
export interface GetInviteCodeListParams {
page: number;
pageSize: number;
code?: string;
agent_id?: number;
target_level?: number;
status?: number;
}
export interface GenerateDiamondInviteCodeParams {
count: number;
expire_days?: number; // 可选0表示不过期
remark?: string;
}
export interface GenerateDiamondInviteCodeResp {
codes: string[];
}
// 系统配置相关接口(价格配置已移除,改为产品配置表管理)
export interface AgentConfig {
level_bonus: {
diamond: number;
gold: number;
normal: number;
};
upgrade_fee: {
normal_to_gold: number;
normal_to_diamond: number;
gold_to_diamond: number;
};
upgrade_rebate: {
normal_to_gold_rebate: number;
to_diamond_rebate: number;
};
direct_parent_rebate: {
diamond: number; // 直接上级是钻石的返佣金额6元
gold: number; // 直接上级是黄金的返佣金额3元
normal: number; // 直接上级是普通的返佣金额2元
};
max_gold_rebate_amount: number; // 黄金代理最大返佣金额3元
commission_freeze: {
ratio: number; // 佣金冻结比例例如0.1表示10%
threshold: number; // 佣金冻结阈值(订单单价达到此金额才触发冻结,单位:元)
days: number; // 佣金冻结解冻天数单位例如30表示30天后解冻
};
tax_rate: number;
tax_exemption_amount: number;
gold_max_uplift_amount: number;
diamond_max_uplift_amount: number;
}
export interface UpdateAgentConfigParams {
level_bonus?: {
diamond?: number;
gold?: number;
normal?: number;
};
upgrade_fee?: {
normal_to_gold?: number;
normal_to_diamond?: number;
gold_to_diamond?: number;
};
upgrade_rebate?: {
normal_to_gold_rebate?: number;
to_diamond_rebate?: number;
};
direct_parent_rebate?: {
diamond?: number; // 直接上级是钻石的返佣金额6元
gold?: number; // 直接上级是黄金的返佣金额3元
normal?: number; // 直接上级是普通的返佣金额2元
};
max_gold_rebate_amount?: number; // 黄金代理最大返佣金额3元
commission_freeze?: {
ratio?: number; // 佣金冻结比例例如0.1表示10%
threshold?: number; // 佣金冻结阈值(订单单价达到此金额才触发冻结,单位:元)
days?: number; // 佣金冻结解冻天数单位例如30表示30天后解冻
};
tax_rate?: number;
tax_exemption_amount?: number;
gold_max_uplift_amount?: number;
diamond_max_uplift_amount?: number;
}
// 实名认证相关接口
export interface AgentRealNameListItem {
id: number;
agent_id: number;
name: string;
id_card: string; // 加密,需要脱敏显示
mobile: string; // 加密
status: number; // 1=未验证2=已通过
verify_time?: string;
create_time: string;
}
export interface AgentRealNameList {
total: number;
items: AgentRealNameListItem[];
}
export interface GetAgentRealNameListParams {
page: number;
pageSize: number;
agent_id?: number;
status?: number;
}
// 代理奖励相关接口
export interface AgentRewardListItem {
id: number;
agent_id: number;
type: string; // 奖励类型register=注册奖励first_order=首单奖励level_up=升级奖励
amount: number;
order_id?: number;
status: string; // pending=待发放paid=已发放failed=发放失败
create_time: string;
pay_time?: string;
}
export interface AgentRewardList {
total: number;
items: AgentRewardListItem[];
}
export interface GetAgentRewardListParams {
page: number;
pageSize: number;
agent_id?: number;
type?: string;
status?: string;
}
}
/**
* 获取代理列表数据
* @param params 查询参数
*/
async function getAgentList(params: AgentApi.GetAgentListParams) {
return requestClient.get<AgentApi.AgentList>('/agent/list', {
params,
});
}
/**
* 获取代理推广链接列表
*/
async function getAgentLinkList(params: AgentApi.GetAgentLinkListParams) {
return requestClient.get<AgentApi.AgentLinkList>('/agent/link/list', {
params,
});
}
/**
* 获取代理佣金列表
*/
async function getAgentCommissionList(
params: AgentApi.GetAgentCommissionListParams,
) {
return requestClient.get<AgentApi.AgentCommissionList>(
'/agent/commission/list',
{
params,
},
);
}
/**
* 获取代理提现列表
*/
async function getAgentWithdrawalList(
params: AgentApi.GetAgentWithdrawalListParams,
) {
return requestClient.get<AgentApi.AgentWithdrawalList>(
'/agent/withdrawal/list',
{
params,
},
);
}
/**
* 获取代理产品配置列表
*/
async function getAgentProductionConfigList(
params: AgentApi.GetAgentProductionConfigListParams,
) {
return requestClient.get<AgentApi.AgentProductionConfigList>(
'/agent/product_config/list',
{
params,
},
);
}
/**
* 更新代理产品配置
*/
async function updateAgentProductionConfig(
params: AgentApi.UpdateAgentProductionConfigParams,
) {
return requestClient.post<AgentApi.UpdateAgentProductionConfigResp>(
'/agent/product_config/update',
params,
);
}
/**
* 获取代理返佣记录列表
*/
async function getAgentRebateList(params: AgentApi.GetAgentRebateListParams) {
return requestClient.get<AgentApi.AgentRebateList>('/agent/rebate/list', {
params,
});
}
/**
* 获取代理升级记录列表
*/
async function getAgentUpgradeList(
params: AgentApi.GetAgentUpgradeListParams,
) {
return requestClient.get<AgentApi.AgentUpgradeList>('/agent/upgrade/list', {
params,
});
}
/**
* 获取代理订单列表
*/
async function getAgentOrderList(params: AgentApi.GetAgentOrderListParams) {
return requestClient.get<AgentApi.AgentOrderList>('/agent/order/list', {
params,
});
}
/**
* 获取邀请码列表
*/
async function getInviteCodeList(params: AgentApi.GetInviteCodeListParams) {
return requestClient.get<AgentApi.InviteCodeList>(
'/agent/invite_code/list',
{
params,
},
);
}
/**
* 生成钻石邀请码
*/
async function generateDiamondInviteCode(
params: AgentApi.GenerateDiamondInviteCodeParams,
) {
return requestClient.post<AgentApi.GenerateDiamondInviteCodeResp>(
'/agent/invite_code/diamond/generate',
params,
);
}
/**
* 获取系统配置
*/
async function getAgentConfig() {
return requestClient.get<AgentApi.AgentConfig>('/agent/config');
}
/**
* 更新系统配置
*/
async function updateAgentConfig(params: AgentApi.UpdateAgentConfigParams) {
return requestClient.post<{ success: boolean }>(
'/agent/config/update',
params,
);
}
/**
* 获取实名认证列表
*/
async function getAgentRealNameList(
params: AgentApi.GetAgentRealNameListParams,
) {
return requestClient.get<AgentApi.AgentRealNameList>(
'/agent/real_name/list',
{
params,
},
);
}
/**
* 审核提现
*/
async function auditWithdrawal(params: AgentApi.AuditWithdrawalParams) {
return requestClient.post<{ success: boolean }>(
'/agent/withdrawal/audit',
params,
);
}
/**
* 获取代理奖励列表
*/
async function getAgentRewardList(
params: AgentApi.GetAgentRewardListParams,
) {
return requestClient.get<AgentApi.AgentRewardList>('/agent/reward/list', {
params,
});
}
export {
auditWithdrawal,
generateDiamondInviteCode,
getAgentCommissionList,
getAgentConfig,
getAgentLinkList,
getAgentList,
getAgentOrderList,
getAgentProductionConfigList,
getAgentRebateList,
getAgentRealNameList,
getAgentRewardList,
getAgentUpgradeList,
getAgentWithdrawalList,
getInviteCodeList,
updateAgentConfig,
updateAgentProductionConfig,
};