Files
bdqr-webview/src/api/agent.js
2026-02-28 17:57:40 +08:00

346 lines
10 KiB
JavaScript
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 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列表
* @param {string} params.order_id - 关联的查询订单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标识
*/
export function checkFeatureWhitelistStatus(params) {
const queryString = buildQueryString(params || {});
return useApiFetch(`/agent/whitelist/check${queryString}`).get().json();
}
/**
* 下架单个模块(创建订单并支付/或免费下架)
* @param {object} params - 下架参数
* @param {string} params.id_card - 身份证号
* @param {string} params.feature_api_id - Feature的API标识
* @param {string} params.order_id - 关联的查询订单ID可选
* @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();
}