import useApiFetch from "@/composables/useApiFetch"; /** * 代理相关API调用统一管理 */ /** * 构建查询字符串的辅助函数 * @param {object} params - 查询参数对象 * @returns {string} 查询字符串 */ function buildQueryString(params) { const queryParams = new URLSearchParams(); Object.keys(params).forEach((key) => { if ( params[key] !== undefined && params[key] !== null && params[key] !== "" ) { queryParams.append(key, params[key]); } }); const queryString = queryParams.toString(); return queryString ? `?${queryString}` : ""; } // ==================== 公开接口(无需登录) ==================== /** * 获取推广链接数据 * @param {string} linkIdentifier - 推广链接标识 */ export function getLinkData(linkIdentifier) { return useApiFetch( `/agent/link?link_identifier=${encodeURIComponent(linkIdentifier)}` ) .get() .json(); } /** * 通过邀请码申请成为代理(已注册用户) * @param {object} params - 申请参数 * @param {string} params.mobile - 手机号 * @param {string} params.code - 验证码 * @param {string} params.invite_code - 邀请码(必填) * @param {string} params.region - 区域(可选) */ export function applyForAgent(params) { return useApiFetch("/agent/apply").post(params).json(); } /** * 通过邀请码注册(同时注册用户和代理) * @param {object} params - 注册参数 * @param {string} params.mobile - 手机号 * @param {string} params.code - 验证码 * @param {string} params.invite_code - 邀请码(必填) * @param {string} params.region - 区域(可选) * @param {string} params.wechat_id - 微信号(可选) */ export function registerByInviteCode(params) { return useApiFetch("/agent/register/invite").post(params).json(); } // ==================== 需要登录的接口 ==================== /** * 获取代理信息 */ export function getAgentInfo() { return useApiFetch("/agent/info").get().json(); } /** * 获取代理等级特权信息 */ export function getLevelPrivilege() { return useApiFetch("/agent/level/privilege").get().json(); } /** * 生成推广链接 * @param {object} params - 生成参数 * @param {number} params.product_id - 产品ID * @param {number} params.set_price - 设定价格 */ export function generateLink(params) { return useApiFetch("/agent/generating_link").post(params).json(); } /** * 获取产品配置 */ export function getProductConfig() { return useApiFetch("/agent/product_config").get().json(); } /** * 获取团队统计 */ export function getTeamStatistics() { return useApiFetch("/agent/team/statistics").get().json(); } /** * 获取团队列表 * @param {object} params - 查询参数 * @param {number} params.page - 页码 * @param {number} params.page_size - 每页数量 */ export function getTeamList(params) { const queryString = buildQueryString(params || {}); return useApiFetch(`/agent/team/list${queryString}`).get().json(); } /** * 获取下级列表 * @param {object} params - 查询参数 * @param {number} params.page - 页码 * @param {number} params.page_size - 每页数量 */ export function getSubordinateList(params) { const queryString = buildQueryString(params || {}); return useApiFetch(`/agent/subordinate/list${queryString}`).get().json(); } /** * 获取收益信息 */ export function getRevenueInfo() { return useApiFetch("/agent/revenue").get().json(); } /** * 获取转化率统计 */ export function getConversionRate() { return useApiFetch("/agent/conversion/rate").get().json(); } /** * 获取佣金记录 * @param {object} params - 查询参数 * @param {number} params.page - 页码 * @param {number} params.page_size - 每页数量 */ export function getCommissionList(params) { const queryString = buildQueryString(params || {}); return useApiFetch(`/agent/commission/list${queryString}`).get().json(); } /** * 获取返佣记录(推广返佣) * @param {object} params - 查询参数 * @param {number} params.page - 页码 * @param {number} params.page_size - 每页数量 * @param {number} params.rebate_type - 返佣类型(可选):1=直接上级返佣,2=钻石上级返佣,3=黄金上级返佣 */ export function getRebateList(params) { const queryString = buildQueryString(params || {}); return useApiFetch(`/agent/rebate/list${queryString}`).get().json(); } /** * 获取升级返佣记录 * @param {object} params - 查询参数 * @param {number} params.page - 页码 * @param {number} params.page_size - 每页数量 */ export function getUpgradeRebateList(params) { const queryString = buildQueryString(params || {}); return useApiFetch(`/agent/rebate/upgrade/list${queryString}`).get().json(); } /** * 获取升级记录 * @param {object} params - 查询参数 * @param {number} params.page - 页码 * @param {number} params.page_size - 每页数量 */ export function getUpgradeList(params) { const queryString = buildQueryString(params || {}); return useApiFetch(`/agent/upgrade/list${queryString}`).get().json(); } /** * 申请升级 * @param {object} params - 升级参数 * @param {number} params.to_level - 目标等级:2=黄金,3=钻石 */ export function applyUpgrade(params) { return useApiFetch("/agent/upgrade/apply").post(params).json(); } /** * 钻石代理升级下级 * @param {object} params - 升级参数 * @param {number} params.subordinate_id - 下级代理ID * @param {number} params.to_level - 目标等级(只能是2=黄金) */ export function upgradeSubordinate(params) { return useApiFetch("/agent/upgrade/subordinate").post(params).json(); } /** * 获取提现列表 * @param {object} params - 查询参数 * @param {number} params.page - 页码 * @param {number} params.page_size - 每页数量 */ export function getWithdrawalList(params) { const queryString = buildQueryString(params || {}); return useApiFetch(`/agent/withdrawal/list${queryString}`).get().json(); } /** * 申请提现 * @param {object} params - 提现参数 * @param {number} params.amount - 提现金额 * @param {string} params.payee_account - 收款账户 * @param {string} params.payee_name - 收款人姓名 */ export function applyWithdrawal(params) { return useApiFetch("/agent/withdrawal/apply").post(params).json(); } /** * 实名认证 * @param {object} params - 实名认证参数 * @param {string} params.name - 姓名 * @param {string} params.id_card - 身份证号 * @param {string} params.mobile - 手机号 * @param {string} params.code - 验证码 */ export function realNameAuth(params) { return useApiFetch("/agent/real_name").post(params).json(); } /** * 生成邀请码 * @param {object} params - 生成参数 * @param {number} params.count - 生成数量 * @param {number} params.expire_days - 过期天数(可选,0表示不过期) * @param {string} params.remark - 备注(可选) */ export function generateInviteCode(params) { return useApiFetch("/agent/invite_code/generate").post(params).json(); } /** * 获取邀请码列表 * @param {object} params - 查询参数 * @param {number} params.page - 页码 * @param {number} params.page_size - 每页数量 * @param {number} params.status - 状态(可选):0=未使用,1=已使用,2=已失效 */ export function getInviteCodeList(params) { const queryString = buildQueryString(params || {}); return useApiFetch(`/agent/invite_code/list${queryString}`).get().json(); } /** * 删除邀请码 * @param {object} params - 删除参数 * @param {number} params.id - 邀请码ID */ export function deleteInviteCode(params) { return useApiFetch("/agent/invite_code/delete").post(params).json(); } /** * 获取邀请链接 * @param {object} params - 请求参数 * @param {string} params.invite_code - 邀请码 */ export function getInviteLink(params) { const queryString = buildQueryString(params || {}); return useApiFetch(`/agent/invite_link${queryString}`).get().json(); } // ==================== 白名单相关接口 ==================== /** * 获取可屏蔽的 feature 列表(带价格) */ export function getWhitelistFeatures() { return useApiFetch("/agent/whitelist/features").get().json(); } /** * 创建白名单订单 * @param {object} params - 创建参数 * @param {string} params.id_card - 身份证号 * @param {string[]} params.feature_ids - 要屏蔽的 feature ID 列表 */ export function createWhitelistOrder(params) { return useApiFetch("/agent/whitelist/order/create").post(params).json(); } /** * 查询白名单列表 * @param {object} params - 查询参数 * @param {number} params.page - 页码 * @param {number} params.page_size - 每页数量 * @param {string} params.id_card - 身份证号(可选) */ export function getWhitelistList(params) { const queryString = buildQueryString(params || {}); return useApiFetch(`/agent/whitelist/list${queryString}`).get().json(); } /** * 检查模块是否已下架 * @param {object} params - 查询参数 * @param {string} params.id_card - 身份证号 * @param {string} params.feature_api_id - Feature 的 API 标识 * @param {string} params.query_id - 查询记录 ID(可选) */ export function checkFeatureWhitelistStatus(params) { const queryString = buildQueryString(params || {}); return useApiFetch(`/agent/whitelist/check${queryString}`).get().json(); } /** * 下架单个模块(免费或需支付) * @param {object} params - 下架参数 * @param {string} params.feature_api_id - Feature 的 API 标识 * @param {string} params.query_id - 查询记录 ID(必填) */ export function offlineFeature(params) { return useApiFetch("/agent/whitelist/offline").post(params).json(); } /** * 检查订单是否属于当前代理推广 * @param {object} params - 查询参数 * @param {string} params.order_id - 订单 ID */ export function checkOrderAgent(params) { const queryString = buildQueryString(params || {}); return useApiFetch(`/agent/order/agent${queryString}`).get().json(); }