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('/agent/list', { params, }); } /** * 获取代理推广链接列表 */ async function getAgentLinkList(params: AgentApi.GetAgentLinkListParams) { return requestClient.get('/agent/link/list', { params, }); } /** * 获取代理佣金列表 */ async function getAgentCommissionList( params: AgentApi.GetAgentCommissionListParams, ) { return requestClient.get( '/agent/commission/list', { params, }, ); } /** * 获取代理提现列表 */ async function getAgentWithdrawalList( params: AgentApi.GetAgentWithdrawalListParams, ) { return requestClient.get( '/agent/withdrawal/list', { params, }, ); } /** * 获取代理产品配置列表 */ async function getAgentProductionConfigList( params: AgentApi.GetAgentProductionConfigListParams, ) { return requestClient.get( '/agent/product_config/list', { params, }, ); } /** * 更新代理产品配置 */ async function updateAgentProductionConfig( params: AgentApi.UpdateAgentProductionConfigParams, ) { return requestClient.post( '/agent/product_config/update', params, ); } /** * 获取代理返佣记录列表 */ async function getAgentRebateList(params: AgentApi.GetAgentRebateListParams) { return requestClient.get('/agent/rebate/list', { params, }); } /** * 获取代理升级记录列表 */ async function getAgentUpgradeList( params: AgentApi.GetAgentUpgradeListParams, ) { return requestClient.get('/agent/upgrade/list', { params, }); } /** * 获取代理订单列表 */ async function getAgentOrderList(params: AgentApi.GetAgentOrderListParams) { return requestClient.get('/agent/order/list', { params, }); } /** * 获取邀请码列表 */ async function getInviteCodeList(params: AgentApi.GetInviteCodeListParams) { return requestClient.get( '/agent/invite_code/list', { params, }, ); } /** * 生成钻石邀请码 */ async function generateDiamondInviteCode( params: AgentApi.GenerateDiamondInviteCodeParams, ) { return requestClient.post( '/agent/invite_code/diamond/generate', params, ); } /** * 获取系统配置 */ async function getAgentConfig() { return requestClient.get('/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( '/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('/agent/reward/list', { params, }); } export { auditWithdrawal, generateDiamondInviteCode, getAgentCommissionList, getAgentConfig, getAgentLinkList, getAgentList, getAgentOrderList, getAgentProductionConfigList, getAgentRebateList, getAgentRealNameList, getAgentRewardList, getAgentUpgradeList, getAgentWithdrawalList, getInviteCodeList, updateAgentConfig, updateAgentProductionConfig, };