改造实时事件缓存同步

This commit is contained in:
yml2213
2026-08-17 17:32:02 +08:00
parent be7c124d65
commit 2aa8769661
16 changed files with 837 additions and 351 deletions
@@ -70,8 +70,8 @@ import {
resolveAdminNotificationEntity,
} from '../admin/admin-notification-service.js'
import {
publishRealtimeEvent,
publishWorkerFinanceRealtimeChange,
publishWorkerWalletRealtimeChange,
publishWorkOrderRealtimeChange,
} from '../realtime/realtime-event-service.js'
import {
@@ -544,12 +544,7 @@ export async function assignAdminWorkOrderToWorker(
workerIds: [Number(worker.id)],
hallChanged: workOrder.status === WORK_ORDER_STATUS.OPEN,
})
publishRealtimeEvent({
type: 'worker_wallet.changed',
entityId: Number(worker.id),
scopes: ['worker_wallet'],
workerIds: [Number(worker.id)],
})
publishWorkerWalletRealtimeChange(Number(worker.id))
return { order: mapWorkOrderAdmin(updated), voucherConsume }
}
@@ -578,12 +573,7 @@ export async function creditAdminWorkerWallet(workerId: number | string, payload
payloadJson: JSON.stringify({ source: 'admin_manual_credit' }),
now: nowIso(),
})
publishRealtimeEvent({
type: 'worker_wallet.changed',
entityId: Number(workerId),
scopes: ['worker_wallet'],
workerIds: [Number(workerId)],
})
publishWorkerWalletRealtimeChange(Number(workerId))
return { wallet: mapWallet(wallet) }
}
@@ -1515,12 +1505,7 @@ export async function acceptAdminWorkOrder(workOrderId: number | string, actorNa
workerIds,
})
for (const workerId of workerIds) {
publishRealtimeEvent({
type: 'worker_wallet.changed',
entityId: workerId,
scopes: ['worker_wallet'],
workerIds: [workerId],
})
publishWorkerWalletRealtimeChange(workerId)
}
return { order: mapWorkOrderAdmin(updated || workOrder) }
}
@@ -1603,12 +1588,7 @@ export async function unassignAdminWorkOrder(workOrderId: number | string, actor
workOrderId: Number(workOrder.id),
workerIds: [Number(workOrder.assigned_worker_id)],
})
publishRealtimeEvent({
type: 'worker_wallet.changed',
entityId: Number(workOrder.assigned_worker_id),
scopes: ['worker_wallet'],
workerIds: [Number(workOrder.assigned_worker_id)],
})
publishWorkerWalletRealtimeChange(Number(workOrder.assigned_worker_id))
return { order: mapWorkOrderAdmin(updated) }
}
@@ -1673,12 +1653,7 @@ export async function cancelAdminWorkOrder(
hallChanged: action === 'return_to_hall',
})
if (workerId) {
publishRealtimeEvent({
type: 'worker_wallet.changed',
entityId: workerId,
scopes: ['worker_wallet'],
workerIds: [workerId],
})
publishWorkerWalletRealtimeChange(workerId)
}
return { order: mapWorkOrderAdmin(updated), action }
}
@@ -83,8 +83,8 @@ import {
remindWorkerAcceptanceAdminNotification,
} from '../admin/admin-notification-service.js'
import {
publishRealtimeEvent,
publishWorkerFinanceRealtimeChange,
publishWorkerWalletRealtimeChange,
publishWorkOrderRealtimeChange,
} from '../realtime/realtime-event-service.js'
@@ -1223,12 +1223,7 @@ export async function grabWorkerHallOrder(workOrderId: number | string, session:
workerIds: [Number(worker.id)],
hallChanged: true,
})
publishRealtimeEvent({
type: 'worker_wallet.changed',
entityId: Number(worker.id),
scopes: ['worker_wallet'],
workerIds: [Number(worker.id)],
})
publishWorkerWalletRealtimeChange(Number(worker.id))
return { order: mapWorkOrderForWorker(grabbed.order, permissions) }
}
@@ -1266,12 +1261,7 @@ export async function settleDueDepositUnfreezes(
})
if (released) {
processedCount += 1
publishRealtimeEvent({
type: 'worker_wallet.changed',
entityId: Number(released.worker_id),
scopes: ['worker_wallet'],
workerIds: [Number(released.worker_id)],
})
publishWorkerWalletRealtimeChange(Number(released.worker_id))
}
}
return {
@@ -1313,12 +1303,7 @@ export async function settleOverdueWorkOrders(options: { limit?: number; workerI
hallChanged: result.order.status === WORK_ORDER_STATUS.OPEN,
})
if (Number(workOrder.assigned_worker_id)) {
publishRealtimeEvent({
type: 'worker_wallet.changed',
entityId: Number(workOrder.assigned_worker_id),
scopes: ['worker_wallet'],
workerIds: [Number(workOrder.assigned_worker_id)],
})
publishWorkerWalletRealtimeChange(Number(workOrder.assigned_worker_id))
}
} else {
skippedCount += 1
@@ -1652,12 +1637,7 @@ export async function submitWorkerOrderAcceptance(
workOrderId: Number(workOrder.id),
workerIds: [Number(worker.id)],
})
publishRealtimeEvent({
type: 'worker_wallet.changed',
entityId: Number(worker.id),
scopes: ['worker_wallet'],
workerIds: [Number(worker.id)],
})
publishWorkerWalletRealtimeChange(Number(worker.id))
return {
order: mapWorkOrderForWorker(acceptedOrder, resolveWorkerPermissions(worker)),
}
@@ -2271,12 +2251,7 @@ async function publishWorkOrderParticipantChange(
...(options.hallChanged ? { hallChanged: true } : {}),
})
for (const workerId of options.walletChangedWorkerIds || []) {
publishRealtimeEvent({
type: 'worker_wallet.changed',
entityId: workerId,
scopes: ['worker_wallet'],
workerIds: [workerId],
})
publishWorkerWalletRealtimeChange(workerId)
}
}