Files
tyapi-frontend/src/api/index.js
2025-12-06 13:53:58 +08:00

322 lines
12 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 request from '@/utils/request'
import { articleApi } from './article.js'
import { announcementApi } from './announcement.js'
import { balanceAlertApi } from './balanceAlertApi.js'
import { adminInvoiceApi, invoiceApi } from './invoice.js'
// 直接导出发票API、文章API、公告API和余额预警API
export { adminInvoiceApi, articleApi, announcementApi, balanceAlertApi, invoiceApi }
// 用户相关接口 - 严格按照后端路由定义
export const userApi = {
// 发送验证码
sendCode: (data) => request.post('/users/send-code', data),
// 用户注册
register: (data) => request.post('/users/register', data),
// 密码登录
loginWithPassword: (data) => request.post('/users/login-password', data),
// 短信登录
loginWithSMS: (data) => request.post('/users/login-sms', data),
// 获取用户信息 (需认证)
getProfile: () => request.get('/users/me'),
// 修改密码 (需认证)
changePassword: (data) => request.put('/users/me/password', data),
// 重置密码 (无需认证)
resetPassword: (data) => request.post('/users/reset-password', data),
// 管理员功能 - 获取用户列表 (需管理员权限)
getUserList: (params) => request.get('/users/admin/list', { params }),
// 管理员功能 - 获取用户详情 (需管理员权限)
getUserDetail: (userId) => request.get(`/users/admin/${userId}`),
// 管理员功能 - 获取用户统计信息 (需管理员权限)
getUserStats: () => request.get('/users/admin/stats')
}
// 产品相关接口
export const productApi = {
// 产品列表(用户端接口)
getProducts: (params) => request.get('/products', { params }),
getProductDetail: (id, params) => request.get(`/products/${id}`, { params }),
searchProducts: (params) => request.get('/products/search', { params }),
// 产品分类
getCategories: (params) => request.get('/categories', { params }),
// 订阅产品
subscribeProduct: (productId) => request.post(`/products/${productId}/subscribe`),
// 产品API配置
getProductApiConfig: (productId) => request.get(`/products/${productId}/api-config`),
getProductApiConfigByCode: (productCode) => request.get(`/products/code/${productCode}/api-config`),
getProductApiConfigsByProductIDs: (productIds) => request.get('/products/api-configs', {
params: { product_ids: productIds.join(',') }
}),
// 下载接口文档支持PDF和Markdown
downloadProductDocumentation: (productId) => request.get(`/products/${productId}/documentation/download`, {
responseType: 'blob'
})
}
// 分类相关接口 - 数据大厅
export const categoryApi = {
// 获取分类列表 (公开接口)
getCategories: (params) => request.get('/categories', { params }),
// 获取分类详情 (公开接口)
getCategoryDetail: (id) => request.get(`/categories/${id}`)
}
// 订阅相关接口 - 我的订阅
export const subscriptionApi = {
// 获取我的订阅列表 (需认证)
getMySubscriptions: (params) => request.get('/my/subscriptions', { params }),
// 获取我的订阅统计 (需认证)
getMySubscriptionStats: () => request.get('/my/subscriptions/stats'),
// 获取我的订阅详情 (需认证)
getMySubscriptionDetail: (id) => request.get(`/my/subscriptions/${id}`),
// 获取我的订阅使用情况 (需认证)
getMySubscriptionUsage: (id) => request.get(`/my/subscriptions/${id}/usage`),
// 取消我的订阅 (需认证)
cancelMySubscription: (id) => request.post(`/my/subscriptions/${id}/cancel`)
}
// 财务相关接口
export const financeApi = {
// 钱包相关
createWallet: (data) => request.post('/finance/wallet', data),
getWallet: () => request.get('/finance/wallet'),
updateWallet: (data) => request.put('/finance/wallet', data),
rechargeWallet: (data) => request.post('/finance/wallet/recharge', data),
withdrawWallet: (data) => request.post('/finance/wallet/withdraw', data),
walletTransaction: (data) => request.post('/finance/wallet/transaction', data),
getWalletStats: () => request.get('/finance/wallet/stats'),
getRechargeConfig: () => request.get('/finance/wallet/recharge-config'),
// 充值相关
transferRecharge: (data) => request.post('/finance/wallet/transfer-recharge', data),
giftRecharge: (data) => request.post('/finance/wallet/gift-recharge', data),
createAlipayRecharge: (data) => request.post('/finance/wallet/alipay-recharge', data),
// 用户密钥相关
createUserSecrets: (data) => request.post('/finance/secrets', data),
getUserSecrets: () => request.get('/finance/secrets'),
regenerateAccessKey: () => request.post('/finance/secrets/regenerate'),
deactivateUserSecrets: () => request.post('/finance/secrets/deactivate'),
// 钱包交易记录
getUserWalletTransactions: (params) => request.get('/finance/wallet/transactions', { params }),
// 支付宝订单状态查询
getAlipayOrderStatus: (params) => request.get('/finance/wallet/alipay-order-status', { params }),
// 管理员充值功能
transferRecharge: (data) => request.post('/admin/finance/transfer-recharge', data),
giftRecharge: (data) => request.post('/admin/finance/gift-recharge', data),
// 充值记录相关接口
getUserRechargeRecords: (params) => request.get('/finance/wallet/recharge-records', { params }),
getAdminRechargeRecords: (params) => request.get('/admin/finance/recharge-records', { params })
}
// 认证相关接口
export const certificationApi = {
// 获取认证详情
getCertificationDetails: () => request.get('/certifications/details'),
// 获取认证进度
getCertificationProgress: () => request.get('/certifications/progress'),
// 提交企业信息
submitEnterpriseInfo: (data) => request.post('/certifications/enterprise-info', data),
// 发起人脸识别验证
initiateFaceVerify: (data) => request.post('/certifications/face-verify', data),
// 申请合同签署
applyContract: () => request.post('/certifications/apply-contract'),
// 获取认证详情
getCertificationDetails: () => request.get('/certifications/details'),
// 确认签署状态
confirmSign: (data) => request.post('/certifications/confirm-sign', data),
// 确认认证状态
confirmAuth: (data) => request.post('/certifications/confirm-auth', data),
// OCR营业执照识别
recognizeBusinessLicense: (formData) => request.post('/certifications/ocr/business-license', formData, {
headers: {
'Content-Type': 'multipart/form-data'
}
})
}
// API相关接口
export const apiApi = {
// 用户API调用记录
getUserApiCalls: (params) => request.get('/my/api-calls', { params }),
// 加密参数接口(用于前端调试)
encryptParams: (data, secretKey) => request.post('/encrypt', { data, secret_key: secretKey }),
// 解密参数接口(用于前端调试)
decryptParams: (encryptedData, secretKey) => request.post('/decrypt', { encrypted_data: encryptedData, secret_key: secretKey })
}
// API调用记录API
export const apiCallApi = {
// 用户端API调用记录
getUserApiCalls: (params) => request.get('/my/api-calls', { params }),
// 管理端API调用记录
getAdminApiCalls: (params) => request.get('/admin/api-calls', { params }),
// 管理端导出API调用记录
exportAdminApiCalls: (params) => request.get('/admin/api-calls/export', {
params,
responseType: 'blob'
})
}
// 钱包交易记录API
export const walletTransactionApi = {
// 用户端消费记录
getUserWalletTransactions: (params) => request.get('/finance/wallet/transactions', { params }),
// 管理端消费记录
getAdminWalletTransactions: (params) => request.get('/admin/wallet-transactions', { params }),
// 管理端导出消费记录
exportAdminWalletTransactions: (params) => request.get('/admin/wallet-transactions/export', {
params,
responseType: 'blob'
})
}
// 充值记录API
export const rechargeRecordApi = {
// 用户端充值记录
getUserRechargeRecords: (params) => request.get('/finance/wallet/recharge-records', { params }),
// 管理端充值记录
getAdminRechargeRecords: (params) => request.get('/admin/recharge-records', { params }),
// 管理端导出充值记录
exportAdminRechargeRecords: (params) => request.get('/admin/recharge-records/export', {
params,
responseType: 'blob'
})
}
// API密钥相关接口
export const apiKeysApi = {
// 获取用户API密钥 (需认证)
getUserApiKeys: () => request.get('/api-keys')
}
export const whiteListApi = {
// 获取用户白名单列表 (需认证)
getWhiteList: (remark = '') => {
const params = {}
if (remark) {
params.remark = remark
}
return request.get('/white-list', { params })
},
// 添加白名单IP (需认证)
addWhiteListIP: (ipAddress, remark = '') => request.post('/white-list', { ip_address: ipAddress, remark: remark }),
// 删除白名单IP (需认证)
deleteWhiteListIP: (ipAddress) => request.delete(`/white-list/${encodeURIComponent(ipAddress)}`)
}
// 管理员接口 - 需要管理员权限
export const productAdminApi = {
// 产品管理
getProducts: (params) => request.get('/admin/products', { params }),
getProductDetail: (id) => request.get(`/admin/products/${id}`),
createProduct: (data) => request.post('/admin/products', data),
updateProduct: (id, data) => request.put(`/admin/products/${id}`, data),
deleteProduct: (id) => request.delete(`/admin/products/${id}`),
// 组合包管理
getAvailableProducts: (params) => request.get('/admin/products/available', { params }),
addPackageItem: (packageId, data) => request.post(`/admin/products/${packageId}/package-items`, data),
updatePackageItem: (packageId, itemId, data) => request.put(`/admin/products/${packageId}/package-items/${itemId}`, data),
removePackageItem: (packageId, itemId) => request.delete(`/admin/products/${packageId}/package-items/${itemId}`),
reorderPackageItems: (packageId, data) => request.put(`/admin/products/${packageId}/package-items/reorder`, data),
updatePackageItems: (packageId, data) => request.put(`/admin/products/${packageId}/package-items/batch`, data),
// 分类管理
getCategories: (params) => request.get('/admin/product-categories', { params }),
getCategoryDetail: (id) => request.get(`/admin/product-categories/${id}`),
createCategory: (data) => request.post('/admin/product-categories', data),
updateCategory: (id, data) => request.put(`/admin/product-categories/${id}`, data),
deleteCategory: (id) => request.delete(`/admin/product-categories/${id}`),
// 订阅管理
getSubscriptions: (params) => request.get('/admin/subscriptions', { params }),
getSubscriptionStats: () => request.get('/admin/subscriptions/stats'),
updateSubscriptionPrice: (id, data) => request.put(`/admin/subscriptions/${id}/price`, data),
batchUpdateSubscriptionPrices: (data) => request.post('/admin/subscriptions/batch-update-prices', data),
// 产品API配置管理
getProductApiConfig: (productId) => request.get(`/admin/products/${productId}/api-config`),
createProductApiConfig: (productId, data) => request.post(`/admin/products/${productId}/api-config`, data),
updateProductApiConfig: (productId, data) => request.put(`/admin/products/${productId}/api-config`, data),
deleteProductApiConfig: (productId) => request.delete(`/admin/products/${productId}/api-config`),
// 产品文档管理
getProductDocumentation: (productId) => request.get(`/admin/products/${productId}/documentation`),
createProductDocumentation: (productId, data) => request.post(`/admin/products/${productId}/documentation`, data),
updateProductDocumentation: (productId, data) => request.put(`/admin/products/${productId}/documentation`, data),
deleteProductDocumentation: (productId) => request.delete(`/admin/products/${productId}/documentation`)
}
// 表单配置相关接口
export const formConfigApi = {
// 获取指定API的表单配置
getFormConfig: (apiCode) => request.get(`/form-config/${apiCode}`)
}
// Console专用API调用接口
export const consoleApi = {
// 调用产品API使用JWT认证不需要域名认证
callProductAPI: (apiCode, requestBody, accessId) => {
return request.post(`/console/${apiCode}`, requestBody, {
headers: {
'Access-Id': accessId
}
})
}
}
// 导出所有API
export default {
user: userApi,
certification: certificationApi,
finance: financeApi,
product: productApi,
category: categoryApi,
subscription: subscriptionApi,
productAdmin: productAdminApi,
apiKeys: apiKeysApi,
whiteList: whiteListApi,
api: apiApi,
invoice: invoiceApi,
adminInvoice: adminInvoiceApi
}