支持待验收工单按VIP等级筛选

This commit is contained in:
yml2213
2026-08-20 18:02:13 +08:00
parent 3587e44261
commit 39aeb0baaa
4 changed files with 66 additions and 1 deletions
@@ -287,6 +287,8 @@ export type ListInput = {
/** 打手类型筛选:internal 内部打手 / external 外部打手 */
workerType?: string
workerId?: number
/** 后台待验收筛选:普通单按接单人,拼单按参与打手等级。 */
workerLevelIds?: number[]
categoryId?: number
workerSharingId?: number
visibleAfterIso?: string
@@ -1055,6 +1055,7 @@ export async function listWorkOrders({
workOrderId = 0,
keyword = '',
workerId = 0,
workerLevelIds = [],
categoryId = 0,
workerSharingId = 0,
visibleAfterIso = '',
@@ -1070,6 +1071,7 @@ export async function listWorkOrders({
workOrderId,
keyword,
workerId,
workerLevelIds,
categoryId,
workerSharingId,
visibleAfterIso,
@@ -3429,6 +3431,7 @@ function buildWorkOrderWhere({
workOrderId = 0,
keyword = '',
workerId = 0,
workerLevelIds = [],
categoryId = 0,
workerSharingId = 0,
visibleAfterIso = '',
@@ -3491,6 +3494,25 @@ function buildWorkOrderWhere({
)
)`)
}
if (workerLevelIds.length > 0) {
params.push(workerLevelIds)
filters.push(`(
EXISTS (
SELECT 1
FROM worker_users wu
WHERE wu.id = wo.assigned_worker_id
AND wu.level_id = ANY($${params.length}::bigint[])
)
OR EXISTS (
SELECT 1
FROM work_order_shares wos
INNER JOIN worker_users wu ON wu.id = wos.worker_id
WHERE wos.work_order_id = wo.id
AND wos.status != 'cancelled'
AND wu.level_id = ANY($${params.length}::bigint[])
)
)`)
}
if (categoryId) {
params.push(categoryId)
filters.push(`wo.category_id = $${params.length}`)