- 等级按累计验收通过工单数自动升级(阈值后台可配),VIP1-5 默认配置 10/30/50/100 - 存量打手统一归 VIP1,原 regular 等级停用 - 注册支持邀请码绑定邀请人,每人生成唯一邀请码 - 新增 worker_level_logs 升级流水表 - 个人中心展示邀请码与升级进度,管理端等级表单支持升级阈值配置
135 lines
3.3 KiB
TypeScript
135 lines
3.3 KiB
TypeScript
import { apiGet, apiPost } from '@/lib/http'
|
|
import type {
|
|
CollectLookupResponse,
|
|
UploadedFile,
|
|
WorkOrder,
|
|
WorkerFinanceRequest,
|
|
WorkerListResponse,
|
|
WorkerLoginResponse,
|
|
WorkerProfileResponse,
|
|
WorkerUser,
|
|
WorkerWalletLedger,
|
|
} from '@/types/worker-platform'
|
|
|
|
export function registerWorker(payload: {
|
|
username: string
|
|
password: string
|
|
displayName?: string
|
|
phone?: string
|
|
inviteCode?: string
|
|
}) {
|
|
return apiPost<{ worker: WorkerUser; reviewRequired: boolean }>(
|
|
'/api/v1/worker/auth/register',
|
|
payload,
|
|
)
|
|
}
|
|
|
|
export function loginWorker(payload: { username: string; password: string }) {
|
|
return apiPost<WorkerLoginResponse>('/api/v1/worker/auth/login', payload)
|
|
}
|
|
|
|
export function fetchWorkerSession() {
|
|
return apiGet<{
|
|
authenticated: boolean
|
|
expiresAt: string
|
|
worker: WorkerUser
|
|
}>('/api/v1/worker/auth/session')
|
|
}
|
|
|
|
export function logoutWorker() {
|
|
return apiPost<{ success: boolean }>('/api/v1/worker/auth/logout')
|
|
}
|
|
|
|
export function fetchWorkerProfile() {
|
|
return apiGet<WorkerProfileResponse>('/api/v1/worker/profile')
|
|
}
|
|
|
|
export function fetchWorkerWalletLedgers(params?: Record<string, unknown>) {
|
|
return apiGet<WorkerListResponse<WorkerWalletLedger>>(
|
|
'/api/v1/worker/profile/wallet-ledgers',
|
|
params,
|
|
)
|
|
}
|
|
|
|
export function fetchWorkerFinanceRequests(params?: Record<string, unknown>) {
|
|
return apiGet<WorkerListResponse<WorkerFinanceRequest>>(
|
|
'/api/v1/worker/profile/finance-requests',
|
|
params,
|
|
)
|
|
}
|
|
|
|
export function createWorkerRechargeRequest(payload: {
|
|
amount?: number
|
|
note?: string
|
|
}) {
|
|
return apiPost<{ request: WorkerFinanceRequest }>(
|
|
'/api/v1/worker/profile/recharge-requests',
|
|
payload,
|
|
)
|
|
}
|
|
|
|
export function createWorkerWithdrawRequest(payload: {
|
|
amount?: number
|
|
accountChannel?: string
|
|
accountName?: string
|
|
accountNo?: string
|
|
note?: string
|
|
}) {
|
|
return apiPost<{ request: WorkerFinanceRequest }>(
|
|
'/api/v1/worker/profile/withdraw-requests',
|
|
payload,
|
|
)
|
|
}
|
|
|
|
export function changeWorkerPassword(payload: {
|
|
currentPassword: string
|
|
newPassword: string
|
|
}) {
|
|
return apiPost<{ worker: WorkerUser; reloginRequired: boolean }>(
|
|
'/api/v1/worker/profile/change-password',
|
|
payload,
|
|
)
|
|
}
|
|
|
|
export function fetchWorkerHallOrders(params?: Record<string, unknown>) {
|
|
return apiGet<WorkerListResponse<WorkOrder>>(
|
|
'/api/v1/worker/hall/orders',
|
|
params,
|
|
)
|
|
}
|
|
|
|
export function grabWorkerOrder(workOrderId: number) {
|
|
return apiPost<{ order: WorkOrder }>(
|
|
`/api/v1/worker/hall/orders/${workOrderId}/grab`,
|
|
)
|
|
}
|
|
|
|
export function fetchWorkerMyOrders(params?: Record<string, unknown>) {
|
|
return apiGet<WorkerListResponse<WorkOrder>>('/api/v1/worker/orders', params)
|
|
}
|
|
|
|
export function submitWorkerAcceptance(
|
|
workOrderId: number,
|
|
payload: { note?: string; imageUrls?: string[]; files?: UploadedFile[] },
|
|
) {
|
|
return apiPost<{ order: WorkOrder }>(
|
|
`/api/v1/worker/orders/${workOrderId}/submit-acceptance`,
|
|
payload,
|
|
)
|
|
}
|
|
|
|
export function lookupCollectOrder(orderNo: string) {
|
|
return apiPost<CollectLookupResponse>('/api/v1/collect/lookup', { orderNo })
|
|
}
|
|
|
|
export function submitCollectOrder(payload: {
|
|
orderNo: string
|
|
workOrderId?: number
|
|
fields: Record<string, string>
|
|
}) {
|
|
return apiPost<{ complete: boolean; order: Record<string, unknown> }>(
|
|
'/api/v1/collect/submit',
|
|
payload,
|
|
)
|
|
}
|