322 lines
12 KiB
JavaScript
322 lines
12 KiB
JavaScript
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
|
||
}
|