优化打手订单结算和大厅加载

This commit is contained in:
yml2213
2026-08-17 13:06:40 +08:00
parent 1d9e102527
commit bca2e4a801
8 changed files with 306 additions and 74 deletions
@@ -28,6 +28,7 @@ import {
getWorkerUserByDisplayName,
getWorkOrderById,
getWorkOrderShare,
getWorkerOrderOverview,
grabWorkOrder,
incrementWorkerSessionVersion,
joinWorkOrderShare,
@@ -1148,6 +1149,40 @@ export async function listWorkerMyOrders(query: JsonObject = {}, session: Worker
}
}
/** 打手订单标签概览:订单数与预计/已结算金额。 */
export async function getWorkerMyOrderOverview(session: WorkerSession) {
requireActiveWorkerSession(session)
const worker = await getRequiredWorker(session.workerId)
await settleOverdueWorkOrders({ workerId: worker.id, limit: 50 })
const rows = await getWorkerOrderOverview(worker.id)
const items = rows.map((row) => ({
status: row.status,
orderCount: row.orderCount,
settlementAmount: row.settlementAmount,
}))
const vipEvidencePending = rows.reduce(
(summary, row) => ({
orderCount: summary.orderCount + row.vipEvidencePendingCount,
settlementAmount: summary.settlementAmount + row.vipEvidencePendingSettlementAmount,
}),
{ orderCount: 0, settlementAmount: 0 },
)
const all = items.reduce(
(summary, item) => ({
orderCount: summary.orderCount + item.orderCount,
settlementAmount: summary.settlementAmount + item.settlementAmount,
}),
{ orderCount: 0, settlementAmount: 0 },
)
return {
items: [
...items,
{ status: 'vip_evidence_pending', ...vipEvidencePending },
{ status: 'all', ...all },
],
}
}
export async function getWorkerMyOrderEvents(workOrderId: number | string, session: WorkerSession) {
requireActiveWorkerSession(session)
if (runtimeConfig.worker.orderTimelineVisible !== true) {