第一次上传
This commit is contained in:
@@ -0,0 +1,93 @@
|
||||
import { useAuthStore } from '@/stores/auth'
|
||||
|
||||
export interface ApiResponse<T = unknown> {
|
||||
code?: string | number
|
||||
data?: T
|
||||
msg?: string
|
||||
message?: string
|
||||
}
|
||||
|
||||
type QueryValue = string | number | boolean | null | undefined
|
||||
|
||||
interface RequestOptions extends RequestInit {
|
||||
params?: Record<string, QueryValue>
|
||||
}
|
||||
|
||||
function withQuery(url: string, params?: Record<string, QueryValue>) {
|
||||
if (!params) return url
|
||||
const search = new URLSearchParams()
|
||||
Object.entries(params).forEach(([key, value]) => {
|
||||
if (value !== undefined && value !== null && value !== '') search.set(key, String(value))
|
||||
})
|
||||
const query = search.toString()
|
||||
if (!query) return url
|
||||
return `${url}${url.includes('?') ? '&' : '?'}${query}`
|
||||
}
|
||||
|
||||
async function request<T>(url: string, options: RequestOptions = {}): Promise<T> {
|
||||
const auth = useAuthStore()
|
||||
const headers = new Headers(options.headers)
|
||||
const isFormData = typeof FormData !== 'undefined' && options.body instanceof FormData
|
||||
if (!headers.has('Content-Type') && !isFormData) {
|
||||
headers.set('Content-Type', 'application/json;charset=utf-8')
|
||||
}
|
||||
if (auth.accessToken) headers.set('Authorization', `Bearer ${auth.accessToken}`)
|
||||
|
||||
const response = await fetch(withQuery(url, options.params), {
|
||||
...options,
|
||||
headers,
|
||||
})
|
||||
|
||||
const contentType = response.headers.get('content-type') || ''
|
||||
const body = contentType.includes('application/json')
|
||||
? ((await response.json()) as ApiResponse<T> | T)
|
||||
: ((await response.text()) as T)
|
||||
|
||||
if (!response.ok) {
|
||||
const apiBody = body as ApiResponse<T>
|
||||
throw new Error(apiBody?.msg || apiBody?.message || response.statusText || '网络请求失败')
|
||||
}
|
||||
|
||||
if (body && typeof body === 'object' && Object.prototype.hasOwnProperty.call(body, 'code')) {
|
||||
const apiBody = body as ApiResponse<T>
|
||||
const code = String(apiBody.code)
|
||||
if (code === '00000' || code === '0' || code === '200') {
|
||||
return apiBody.data as T
|
||||
}
|
||||
throw new Error(apiBody.msg || apiBody.message || '请求失败')
|
||||
}
|
||||
|
||||
return body as T
|
||||
}
|
||||
|
||||
export function get<T>(url: string, options?: RequestOptions) {
|
||||
return request<T>(url, { ...options, method: 'GET' })
|
||||
}
|
||||
|
||||
export function post<T>(url: string, data?: unknown, options?: RequestOptions) {
|
||||
return request<T>(url, {
|
||||
...options,
|
||||
method: 'POST',
|
||||
body: data === undefined ? undefined : JSON.stringify(data),
|
||||
})
|
||||
}
|
||||
|
||||
export function postForm<T>(url: string, data: FormData, options?: RequestOptions) {
|
||||
return request<T>(url, {
|
||||
...options,
|
||||
method: 'POST',
|
||||
body: data,
|
||||
})
|
||||
}
|
||||
|
||||
export function put<T>(url: string, data?: unknown, options?: RequestOptions) {
|
||||
return request<T>(url, {
|
||||
...options,
|
||||
method: 'PUT',
|
||||
body: data === undefined ? undefined : JSON.stringify(data),
|
||||
})
|
||||
}
|
||||
|
||||
export function del<T>(url: string, options?: RequestOptions) {
|
||||
return request<T>(url, { ...options, method: 'DELETE' })
|
||||
}
|
||||
@@ -0,0 +1,685 @@
|
||||
import { del, get, post, postForm, put } from '@/api/http'
|
||||
|
||||
export interface LoginPayload {
|
||||
loginType?: string
|
||||
account?: string
|
||||
username?: string
|
||||
mobile?: string
|
||||
email?: string
|
||||
password?: string
|
||||
code?: string
|
||||
}
|
||||
|
||||
export interface RegisterPayload {
|
||||
registerType?: string
|
||||
username?: string
|
||||
password?: string
|
||||
mobile?: string
|
||||
email?: string
|
||||
code?: string
|
||||
nickname?: string
|
||||
inviteCode?: string
|
||||
}
|
||||
|
||||
export interface TokenPair {
|
||||
accessToken: string
|
||||
refreshToken?: string
|
||||
expiresIn?: number
|
||||
}
|
||||
|
||||
export interface CurrentMember {
|
||||
userId?: number
|
||||
id?: number
|
||||
username?: string
|
||||
nickname?: string
|
||||
mobile?: string
|
||||
email?: string
|
||||
avatar?: string
|
||||
inviteCode?: string
|
||||
agentLevel?: number
|
||||
commissionRate?: number
|
||||
inviteCount?: number
|
||||
verifyStatus?: number
|
||||
}
|
||||
|
||||
export interface FileInfo {
|
||||
name?: string
|
||||
url?: string
|
||||
}
|
||||
|
||||
export interface MemberVerifyFieldPolicy {
|
||||
code?: string
|
||||
label?: string
|
||||
type?: 'TEXT' | 'IMAGE' | 'IMAGE_LIST' | string
|
||||
enabled?: boolean
|
||||
required?: boolean
|
||||
readonly?: boolean
|
||||
source?: string
|
||||
maxCount?: number
|
||||
sort?: number
|
||||
placeholder?: string
|
||||
}
|
||||
|
||||
export interface MemberVerifyPolicy {
|
||||
enabled?: boolean
|
||||
forceRequired?: boolean
|
||||
forceScenes?: string[]
|
||||
fields?: MemberVerifyFieldPolicy[]
|
||||
}
|
||||
|
||||
export interface MemberVerifyCurrent {
|
||||
memberUserId?: number
|
||||
status?: number
|
||||
verifyEnabled?: boolean
|
||||
forceRequired?: boolean
|
||||
forceScenes?: string[]
|
||||
currentRecordId?: number
|
||||
verifyNo?: string
|
||||
mobile?: string
|
||||
realName?: string
|
||||
idCardNo?: string
|
||||
idCardFrontUrl?: string
|
||||
idCardBackUrl?: string
|
||||
supportDocs?: string[]
|
||||
submitRemark?: string
|
||||
auditRemark?: string
|
||||
submitTime?: string
|
||||
auditTime?: string
|
||||
verifiedTime?: string
|
||||
policy?: MemberVerifyPolicy
|
||||
}
|
||||
|
||||
export interface MemberVerifySubmitPayload {
|
||||
realName?: string
|
||||
idCardNo?: string
|
||||
idCardFrontUrl?: string
|
||||
idCardBackUrl?: string
|
||||
supportDocs?: string[]
|
||||
submitRemark?: string
|
||||
}
|
||||
|
||||
export interface MemberAuthPublicConfig {
|
||||
registerMethods?: string[]
|
||||
loginMethods?: string[]
|
||||
mobileVerificationEnabled?: boolean
|
||||
emailVerificationEnabled?: boolean
|
||||
}
|
||||
|
||||
export interface MemberSiteConfig {
|
||||
siteName?: string
|
||||
siteFaviconUrl?: string
|
||||
siteLogoUrl?: string
|
||||
customerServiceType?: 'QR_CODE' | 'URL'
|
||||
customerServiceQrUrl?: string
|
||||
customerServiceUrl?: string
|
||||
homeFooterContent?: string
|
||||
}
|
||||
|
||||
export interface CaptchaInfo {
|
||||
captchaId?: string
|
||||
captchaBase64?: string
|
||||
}
|
||||
|
||||
export interface DurationOption {
|
||||
durationDays?: number
|
||||
durationUnit?: string
|
||||
durationValue?: number
|
||||
displayName?: string
|
||||
multiplier?: number
|
||||
}
|
||||
|
||||
export interface StaticRegion {
|
||||
regionId?: number
|
||||
regionCode?: string
|
||||
regionName?: string
|
||||
regionNameZh?: string
|
||||
countryCode?: string
|
||||
countryName?: string
|
||||
basePrice?: number
|
||||
iconUrl?: string
|
||||
}
|
||||
|
||||
export interface QiYunNodeOption {
|
||||
qiyunAreaId?: string
|
||||
qiyunAreaName?: string
|
||||
qiyunNodeId?: string
|
||||
qiyunNodeName?: string
|
||||
qiyunIsp?: string
|
||||
basePrice?: number
|
||||
priceType?: string
|
||||
availableQuantity?: number
|
||||
}
|
||||
|
||||
export interface StaticPackage {
|
||||
productId?: number
|
||||
productCode?: string
|
||||
productName?: string
|
||||
currency?: string
|
||||
qiyunProductType?: string
|
||||
upstreamProviderId?: number
|
||||
qiyunProjectRequired?: boolean
|
||||
defaultNodePrice?: number
|
||||
durations?: DurationOption[]
|
||||
regions?: StaticRegion[]
|
||||
}
|
||||
|
||||
export interface PackageCatalog {
|
||||
staticPackages?: StaticPackage[]
|
||||
dynamicPackages?: unknown[]
|
||||
durations?: unknown[]
|
||||
}
|
||||
|
||||
export interface StaticPurchasePayload {
|
||||
productId?: number
|
||||
durationDays?: number
|
||||
durationUnit?: string
|
||||
durationValue?: number
|
||||
purposeWeb?: string
|
||||
qiyunPid?: string
|
||||
qiyunProjectName?: string
|
||||
qiyunAreaId?: string
|
||||
qiyunAreaName?: string
|
||||
qiyunNodeId?: string
|
||||
qiyunNodeName?: string
|
||||
qiyunIsp?: string
|
||||
proxyAccountMode?: 'RANDOM' | 'CUSTOM'
|
||||
proxyUsername?: string
|
||||
proxyPassword?: string
|
||||
proxyPortMode?: 'RANDOM' | 'CUSTOM'
|
||||
proxyPort?: string
|
||||
quantity?: number
|
||||
items: Array<{
|
||||
regionId?: number
|
||||
qiyunAreaId?: string
|
||||
qiyunAreaName?: string
|
||||
qiyunNodeId?: string
|
||||
qiyunNodeName?: string
|
||||
qiyunIsp?: string
|
||||
quantity?: number
|
||||
}>
|
||||
}
|
||||
|
||||
export interface OrderSubmit {
|
||||
orderNo?: string
|
||||
orderStatus?: string
|
||||
payStatus?: string
|
||||
openStatus?: string
|
||||
saleAmount?: number
|
||||
payAmount?: number
|
||||
currency?: string
|
||||
message?: string
|
||||
}
|
||||
|
||||
export interface BatchOrderSubmit {
|
||||
orderCount?: number
|
||||
totalSaleAmount?: number
|
||||
orders?: OrderSubmit[]
|
||||
}
|
||||
|
||||
export interface PageResult<T> {
|
||||
list: T[]
|
||||
total: number
|
||||
}
|
||||
|
||||
export interface WalletOverview {
|
||||
balance?: number
|
||||
frozenBalance?: number
|
||||
totalRechargeAmount?: number
|
||||
totalConsumeAmount?: number
|
||||
totalRefundAmount?: number
|
||||
}
|
||||
|
||||
export interface WalletFlow {
|
||||
id?: number
|
||||
flowNo?: string
|
||||
userId?: number
|
||||
memberUserId?: number
|
||||
bizType?: string
|
||||
changeType?: 'IN' | 'OUT' | string
|
||||
changeAmount?: number
|
||||
beforeBalance?: number
|
||||
afterBalance?: number
|
||||
relatedOrderNo?: string
|
||||
remark?: string
|
||||
operateBy?: number
|
||||
createTime?: string
|
||||
}
|
||||
|
||||
export interface WalletRechargePromotionRule {
|
||||
rechargeAmount?: number
|
||||
giftAmount?: number
|
||||
}
|
||||
|
||||
export interface WalletRechargePromotionConfig {
|
||||
enabled?: boolean
|
||||
title?: string
|
||||
minRechargeAmount?: number
|
||||
quickAmounts?: number[]
|
||||
rules?: WalletRechargePromotionRule[]
|
||||
}
|
||||
|
||||
export interface WalletRechargePayload {
|
||||
amount: number
|
||||
paymentType: string
|
||||
clientType?: string
|
||||
returnUrl?: string
|
||||
remark?: string
|
||||
}
|
||||
|
||||
export interface WalletRechargeSubmit {
|
||||
id?: number
|
||||
rechargeNo?: string
|
||||
payOrderNo?: string
|
||||
payStatus?: string
|
||||
paymentType?: string
|
||||
paymentCompleted?: boolean
|
||||
payAction?: string
|
||||
payData?: string
|
||||
payMessage?: string
|
||||
gatewayOrderNo?: string
|
||||
amount?: number
|
||||
giftAmount?: number
|
||||
creditedAmount?: number
|
||||
promotionApplied?: boolean
|
||||
promotionRuleDescription?: string
|
||||
currency?: string
|
||||
payableAmount?: number
|
||||
payableCurrency?: string
|
||||
exchangeRate?: number
|
||||
exchangeRateFactor?: number
|
||||
exchangeRateApplied?: number
|
||||
exchangeRateSource?: string
|
||||
}
|
||||
|
||||
export interface WalletRechargeOrder {
|
||||
id?: number
|
||||
rechargeNo?: string
|
||||
payOrderNo?: string
|
||||
memberUserId?: number
|
||||
paymentType?: string
|
||||
payStatus?: string
|
||||
channelOrderNo?: string
|
||||
clientType?: string
|
||||
returnUrl?: string
|
||||
amount?: number
|
||||
giftAmount?: number
|
||||
creditedAmount?: number
|
||||
promotionRuleSnapshot?: string
|
||||
currency?: string
|
||||
paidTime?: string
|
||||
remark?: string
|
||||
createTime?: string
|
||||
updateTime?: string
|
||||
}
|
||||
|
||||
export interface DistributionAccount {
|
||||
id?: number
|
||||
userId?: number
|
||||
memberUserId?: number
|
||||
availableBalance?: number
|
||||
frozenBalance?: number
|
||||
totalEarnedAmount?: number
|
||||
totalRevokedAmount?: number
|
||||
totalTransferAmount?: number
|
||||
totalWithdrawAmount?: number
|
||||
withdrawThreshold?: number
|
||||
withdrawFeeRate?: number
|
||||
status?: number
|
||||
createTime?: string
|
||||
updateTime?: string
|
||||
}
|
||||
|
||||
export interface DistributionCommission {
|
||||
id?: number
|
||||
orderNo?: string
|
||||
levelNo?: number
|
||||
rate?: number
|
||||
baseAmount?: number
|
||||
commissionAmount?: number
|
||||
commissionStatus?: string
|
||||
confirmTime?: string
|
||||
invalidTime?: string
|
||||
createTime?: string
|
||||
remark?: string
|
||||
}
|
||||
|
||||
export interface NoticeItem {
|
||||
id?: number
|
||||
title?: string
|
||||
publishStatus?: number
|
||||
type?: number
|
||||
publisherName?: string
|
||||
level?: string
|
||||
publishTime?: string
|
||||
isRead?: number
|
||||
targetType?: number
|
||||
createTime?: string
|
||||
revokeTime?: string
|
||||
}
|
||||
|
||||
export interface NoticeDetail extends NoticeItem {
|
||||
content?: string
|
||||
}
|
||||
|
||||
export interface OpenApiApplyCurrent {
|
||||
id?: number
|
||||
applyNo?: string
|
||||
memberUserId?: number
|
||||
status?: number
|
||||
contactName?: string
|
||||
contactMobile?: string
|
||||
contactEmail?: string
|
||||
companyName?: string
|
||||
purpose?: string
|
||||
scenarioDescription?: string
|
||||
allowIpList?: string
|
||||
submitRemark?: string
|
||||
auditRemark?: string
|
||||
submitTime?: string
|
||||
auditTime?: string
|
||||
openApiAppId?: number
|
||||
}
|
||||
|
||||
export interface OpenApiApplyPayload {
|
||||
contactName: string
|
||||
contactMobile?: string
|
||||
contactEmail?: string
|
||||
companyName?: string
|
||||
purpose: string
|
||||
scenarioDescription: string
|
||||
allowIpList?: string
|
||||
submitRemark?: string
|
||||
}
|
||||
|
||||
export interface OpenApiCredential {
|
||||
id?: number
|
||||
appId?: string
|
||||
appName?: string
|
||||
appSecret?: string
|
||||
status?: number
|
||||
allowIpList?: string
|
||||
callbackUrl?: string
|
||||
callbackSecret?: string
|
||||
lastAuthTime?: string
|
||||
lastAuthIp?: string
|
||||
}
|
||||
|
||||
export interface OpenApiCallbackConfig {
|
||||
openApiAppId?: number
|
||||
callbackUrl?: string
|
||||
callbackSecret?: string
|
||||
}
|
||||
|
||||
export interface OpenApiAccount {
|
||||
id?: number
|
||||
openApiAppId?: number
|
||||
memberUserId?: number
|
||||
balance?: number
|
||||
frozenBalance?: number
|
||||
totalRechargeAmount?: number
|
||||
totalConsumeAmount?: number
|
||||
totalRefundAmount?: number
|
||||
status?: number
|
||||
createTime?: string
|
||||
updateTime?: string
|
||||
}
|
||||
|
||||
export interface OpenApiRechargePayload {
|
||||
amount: number
|
||||
paymentType: string
|
||||
clientType?: string
|
||||
returnUrl?: string
|
||||
remark?: string
|
||||
}
|
||||
|
||||
export interface OpenApiRechargeSubmit {
|
||||
id?: number
|
||||
rechargeNo?: string
|
||||
payOrderNo?: string
|
||||
payStatus?: string
|
||||
paymentType?: string
|
||||
paymentCompleted?: boolean
|
||||
amount?: number
|
||||
giftAmount?: number
|
||||
creditedAmount?: number
|
||||
currency?: string
|
||||
payAction?: string
|
||||
payData?: string
|
||||
payMessage?: string
|
||||
gatewayOrderNo?: string
|
||||
payableAmount?: number
|
||||
payableCurrency?: string
|
||||
exchangeRate?: number
|
||||
}
|
||||
|
||||
export interface OpenApiAccountFlow {
|
||||
id?: number
|
||||
flowNo?: string
|
||||
bizType?: string
|
||||
changeType?: string
|
||||
changeAmount?: number
|
||||
beforeBalance?: number
|
||||
afterBalance?: number
|
||||
relatedOrderNo?: string
|
||||
remark?: string
|
||||
createTime?: string
|
||||
}
|
||||
|
||||
export interface OpenApiRechargeOrder {
|
||||
id?: number
|
||||
rechargeNo?: string
|
||||
payOrderNo?: string
|
||||
paymentType?: string
|
||||
payStatus?: string
|
||||
amount?: number
|
||||
giftAmount?: number
|
||||
creditedAmount?: number
|
||||
currency?: string
|
||||
paidTime?: string
|
||||
remark?: string
|
||||
createTime?: string
|
||||
}
|
||||
|
||||
export interface OpenApiCallbackLog {
|
||||
id?: number
|
||||
orderNo?: string
|
||||
callbackUrl?: string
|
||||
eventType?: string
|
||||
responseStatus?: number
|
||||
deliveryStatus?: string
|
||||
errorMessage?: string
|
||||
attemptNo?: number
|
||||
triggerTime?: string
|
||||
finishTime?: string
|
||||
createTime?: string
|
||||
}
|
||||
|
||||
export const MemberAPI = {
|
||||
authConfig() {
|
||||
return get<MemberAuthPublicConfig>('/api/v1/member/auth/config')
|
||||
},
|
||||
siteConfig() {
|
||||
return get<MemberSiteConfig>('/api/v1/member/site-config')
|
||||
},
|
||||
captcha(scene: 'LOGIN' | 'REGISTER') {
|
||||
return get<CaptchaInfo>('/api/v1/member/auth/captcha', { params: { scene } })
|
||||
},
|
||||
sendMobileCode(params: {
|
||||
mobile: string
|
||||
scene: 'LOGIN' | 'REGISTER'
|
||||
captchaId: string
|
||||
captchaCode: string
|
||||
}) {
|
||||
return post<void>('/api/v1/member/auth/mobile/code', undefined, { params })
|
||||
},
|
||||
sendEmailCode(params: {
|
||||
email: string
|
||||
scene: 'LOGIN' | 'REGISTER'
|
||||
captchaId: string
|
||||
captchaCode: string
|
||||
}) {
|
||||
return post<void>('/api/v1/member/auth/email/code', undefined, { params })
|
||||
},
|
||||
login(data: LoginPayload) {
|
||||
return post<TokenPair>('/api/v1/member/auth/login', data)
|
||||
},
|
||||
register(data: RegisterPayload) {
|
||||
return post<TokenPair>('/api/v1/member/auth/register', data)
|
||||
},
|
||||
me() {
|
||||
return get<CurrentMember>('/api/v1/member/auth/me')
|
||||
},
|
||||
logout() {
|
||||
return del<void>('/api/v1/member/auth/logout')
|
||||
},
|
||||
publicCatalog() {
|
||||
return get<PackageCatalog>('/api/v1/public/package-center/catalog')
|
||||
},
|
||||
memberCatalog() {
|
||||
return get<PackageCatalog>('/api/v1/member/package-center/catalog')
|
||||
},
|
||||
qiyunProjects(productId: number) {
|
||||
return get<Array<{ id?: string; value?: string; extra?: Record<string, unknown> }>>(
|
||||
'/api/v1/member/package-center/qiyun/projects',
|
||||
{ params: { productId } },
|
||||
)
|
||||
},
|
||||
qiyunAreas(productId: number, pid?: string) {
|
||||
return get<Array<{ id?: string; value?: string; extra?: Record<string, unknown> }>>(
|
||||
'/api/v1/member/package-center/qiyun/areas',
|
||||
{ params: { productId, pid } },
|
||||
)
|
||||
},
|
||||
staticInventories(
|
||||
productId: number,
|
||||
params?: { purposeWeb?: string; qiyunPid?: string; qiyunAreaId?: string },
|
||||
) {
|
||||
return get<QiYunNodeOption[]>('/api/v1/member/package-center/static-inventory', {
|
||||
params: { productId, ...params },
|
||||
})
|
||||
},
|
||||
purchaseStaticPackage(data: StaticPurchasePayload) {
|
||||
return post<BatchOrderSubmit>('/api/v1/member/package-center/static-orders', data)
|
||||
},
|
||||
payOrder(orderNo: string, data?: { paymentType?: string }) {
|
||||
return post<OrderSubmit>(`/api/v1/member/orders/${orderNo}/pay`, data)
|
||||
},
|
||||
wallet() {
|
||||
return get<WalletOverview>('/api/v1/member/wallet')
|
||||
},
|
||||
walletFlows(params?: Record<string, unknown>) {
|
||||
return get<PageResult<WalletFlow>>('/api/v1/member/wallet/flows', {
|
||||
params: params as Record<string, string | number | boolean | null | undefined>,
|
||||
})
|
||||
},
|
||||
walletRechargePromotionConfig() {
|
||||
return get<WalletRechargePromotionConfig>('/api/v1/member/wallet/recharges/promotion-config')
|
||||
},
|
||||
previewWalletRecharge(data: WalletRechargePayload) {
|
||||
return post<WalletRechargeSubmit>('/api/v1/member/wallet/recharges/preview', data)
|
||||
},
|
||||
createWalletRecharge(data: WalletRechargePayload) {
|
||||
return post<WalletRechargeSubmit>('/api/v1/member/wallet/recharges', data)
|
||||
},
|
||||
walletRechargeOrders(params?: Record<string, unknown>) {
|
||||
return get<PageResult<WalletRechargeOrder>>('/api/v1/member/wallet/recharges', {
|
||||
params: params as Record<string, string | number | boolean | null | undefined>,
|
||||
})
|
||||
},
|
||||
walletRechargeDetail(rechargeNo: string) {
|
||||
return get<WalletRechargeOrder>(`/api/v1/member/wallet/recharges/${rechargeNo}`)
|
||||
},
|
||||
retryWalletRechargePaymentStatus(rechargeNo: string) {
|
||||
return post<WalletRechargeSubmit>(`/api/v1/member/wallet/recharges/${rechargeNo}/retry-payment-status`)
|
||||
},
|
||||
distributionAccount() {
|
||||
return get<DistributionAccount>('/api/v1/member/distribution/account')
|
||||
},
|
||||
distributionCommissions(params?: Record<string, unknown>) {
|
||||
return get<PageResult<DistributionCommission>>('/api/v1/member/distribution/commissions', {
|
||||
params: params as Record<string, string | number | boolean | null | undefined>,
|
||||
})
|
||||
},
|
||||
orders(params?: Record<string, unknown>) {
|
||||
return get<PageResult<unknown>>('/api/v1/member/orders', {
|
||||
params: params as Record<string, string | number | boolean | null | undefined>,
|
||||
})
|
||||
},
|
||||
staticAssets(params?: Record<string, unknown>) {
|
||||
return get<PageResult<unknown>>('/api/v1/member/static-assets', {
|
||||
params: params as Record<string, string | number | boolean | null | undefined>,
|
||||
})
|
||||
},
|
||||
dynamicChannels(params?: Record<string, unknown>) {
|
||||
return get<PageResult<unknown>>('/api/v1/member/dynamic-channels', {
|
||||
params: params as Record<string, string | number | boolean | null | undefined>,
|
||||
})
|
||||
},
|
||||
verifyCurrent() {
|
||||
return get<MemberVerifyCurrent>('/api/v1/member/verify/current')
|
||||
},
|
||||
verifyPolicy() {
|
||||
return get<MemberVerifyPolicy>('/api/v1/member/verify/policy')
|
||||
},
|
||||
submitVerify(data: MemberVerifySubmitPayload) {
|
||||
return post<void>('/api/v1/member/verify/submit', data)
|
||||
},
|
||||
uploadFile(file: File) {
|
||||
const formData = new FormData()
|
||||
formData.append('file', file)
|
||||
return postForm<FileInfo>('/api/v1/files', formData)
|
||||
},
|
||||
openApiCurrent() {
|
||||
return get<OpenApiApplyCurrent | null>('/api/v1/member/open-api/current')
|
||||
},
|
||||
openApiCredential() {
|
||||
return get<OpenApiCredential | null>('/api/v1/member/open-api/credential')
|
||||
},
|
||||
submitOpenApiApply(data: OpenApiApplyPayload) {
|
||||
return post<void>('/api/v1/member/open-api/submit', data)
|
||||
},
|
||||
openApiCallbackConfig() {
|
||||
return get<OpenApiCallbackConfig>('/api/v1/member/open-api/callback-config')
|
||||
},
|
||||
updateOpenApiCallbackConfig(data: { callbackUrl?: string; callbackSecret?: string }) {
|
||||
return put<OpenApiCallbackConfig>('/api/v1/member/open-api/callback-config', data)
|
||||
},
|
||||
openApiCallbackLogs(params?: Record<string, unknown>) {
|
||||
return get<PageResult<OpenApiCallbackLog>>('/api/v1/member/open-api/callback-logs', {
|
||||
params: params as Record<string, string | number | boolean | null | undefined>,
|
||||
})
|
||||
},
|
||||
retryOpenApiCallback(id: number) {
|
||||
return post<void>(`/api/v1/member/open-api/callback-logs/${id}/retry`)
|
||||
},
|
||||
openApiAccount() {
|
||||
return get<OpenApiAccount>('/api/v1/member/open-api/account')
|
||||
},
|
||||
openApiAccountFlows(params?: Record<string, unknown>) {
|
||||
return get<PageResult<OpenApiAccountFlow>>('/api/v1/member/open-api/account/flows', {
|
||||
params: params as Record<string, string | number | boolean | null | undefined>,
|
||||
})
|
||||
},
|
||||
previewOpenApiRecharge(data: OpenApiRechargePayload) {
|
||||
return post<OpenApiRechargeSubmit>('/api/v1/member/open-api/account/recharges/preview', data)
|
||||
},
|
||||
createOpenApiRecharge(data: OpenApiRechargePayload) {
|
||||
return post<OpenApiRechargeSubmit>('/api/v1/member/open-api/account/recharges', data)
|
||||
},
|
||||
openApiRechargeOrders(params?: Record<string, unknown>) {
|
||||
return get<PageResult<OpenApiRechargeOrder>>('/api/v1/member/open-api/account/recharges', {
|
||||
params: params as Record<string, string | number | boolean | null | undefined>,
|
||||
})
|
||||
},
|
||||
updateProfile(data: unknown) {
|
||||
return put<CurrentMember>('/api/v1/member/profile', data)
|
||||
},
|
||||
notices(params?: Record<string, unknown>) {
|
||||
return get<PageResult<NoticeItem>>('/api/v1/member/notices', {
|
||||
params: params as Record<string, string | number | boolean | null | undefined>,
|
||||
})
|
||||
},
|
||||
noticeDetail(id: number) {
|
||||
return get<NoticeDetail>(`/api/v1/member/notices/${id}/detail`)
|
||||
},
|
||||
}
|
||||
Reference in New Issue
Block a user