接单平台新增拼单与取消接单能力

拼单功能:
- 工单/物品规则支持拼单配置(启用、总数量、单价),总价=单价×数量三方联动,启用拼单时工单金额自动同步拼单总价
- 拼单参与按数量冻结比例押金,验收通过后按份额结算报酬,升级统计按数量计入
- 抢单大厅拼单入口:紫色渐变大按钮带单价展示,拼单进度/剩余份数,弹窗输入数量实时预估报酬与押金
- 我的订单展示拼单份额(数量×单价、状态),拼单者各自提交验收,全部提交后管理员统一验收
- 新增 work_order_shares 表与迁移 008

取消接单:
- 进行中订单可取消(押金全额退还、工单回大厅),30 天内限 5 次防滥用
This commit is contained in:
yml2213
2026-08-01 16:31:27 +08:00
parent 52a85f7f9e
commit c33e859e96
12 changed files with 1745 additions and 61 deletions
+14
View File
@@ -3,6 +3,7 @@ import type {
CollectLookupResponse,
UploadedFile,
WorkOrder,
WorkOrderShare,
WorkerFinanceRequest,
WorkerHallOrdersResponse,
WorkerListResponse,
@@ -107,6 +108,13 @@ export function grabWorkerOrder(workOrderId: number) {
)
}
export function joinWorkerSharingOrder(workOrderId: number, payload: { quantity: number }) {
return apiPost<{ share: WorkOrderShare }>(
`/api/v1/worker/hall/orders/${workOrderId}/join-sharing`,
payload,
)
}
export function fetchWorkerMyOrders(params?: Record<string, unknown>) {
return apiGet<WorkerListResponse<WorkOrder>>('/api/v1/worker/orders', params)
}
@@ -121,6 +129,12 @@ export function submitWorkerAcceptance(
)
}
export function cancelWorkerOrder(workOrderId: number) {
return apiPost<{ order: WorkOrder }>(
`/api/v1/worker/orders/${workOrderId}/cancel`,
)
}
export function lookupCollectOrder(orderNo: string) {
return apiPost<CollectLookupResponse>('/api/v1/collect/lookup', { orderNo })
}