Files
qnc-webview-v3/src/api/agent.js

344 lines
10 KiB
JavaScript
Raw Normal View History

2025-12-16 12:33:02 +08:00
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();
}
2026-03-02 12:58:07 +08:00
// ==================== 白名单相关接口 ====================
/**
* 获取可屏蔽的 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();
}