增加工单首次查看标识

This commit is contained in:
yml2213
2026-08-17 20:11:35 +08:00
parent 1b4bdec56d
commit 370acdba60
12 changed files with 228 additions and 18 deletions
@@ -5,6 +5,7 @@ import {
getWorkerUserById,
getWorkOrderById,
listWorkerWorkOrderNotes,
listWorkerWorkOrderViews,
listWorkOrderShares,
sumPendingUnfreezeByOrderIds,
} from '../../repositories/worker-platform/index.js'
@@ -283,15 +284,26 @@ async function publishWorkOrderSnapshots(input: {
)) {
const worker = await getWorkerUserById(workerId)
if (!worker) continue
const notes = await listWorkerWorkOrderNotes(workerId, [workOrderId])
const [notes, views] = await Promise.all([
listWorkerWorkOrderNotes(workerId, [workOrderId]),
listWorkerWorkOrderViews(workerId, [workOrderId]),
])
const note = notes.find((item) => Number(item.work_order_id) === workOrderId)?.note || ''
const viewedAt =
views.find((item) => Number(item.work_order_id) === workOrderId)?.viewed_at || null
const share = shares.find((item) => Number(item.worker_id) === workerId)
publishRealtimeEvent({
type: 'work_order.changed',
entityId: workOrderId,
scopes: ['worker_my_orders'],
operation: 'upsert',
data: mapWorkOrderForWorker(workOrder, resolveWorkerPermissions(worker), share, note),
data: mapWorkOrderForWorker(
workOrder,
resolveWorkerPermissions(worker),
share,
note,
viewedAt,
),
workerIds: [workerId],
})
}