merge: 同步 main 最新到 dev(接单平台店铺筛选)

This commit is contained in:
yml2213
2026-10-22 15:30:38 +08:00
9 changed files with 200 additions and 17 deletions
@@ -3,6 +3,7 @@ import {
listConsignmentInventoriesByIds,
listWorkOrderEventsByOrderId,
listWorkOrderSharesByOrderIds,
listWorkOrderShopNames,
listWorkOrders,
sumPendingUnfreezeByOrderIds,
type ConsignmentInventoryRow,
@@ -49,6 +50,7 @@ function buildWorkOrderStatisticsCacheKey(filters: JsonObject): string {
filters.status || '',
filters.workOrderId || 0,
filters.keyword || '',
filters.shopNames || [],
filters.workerSharingId || 0,
filters.workerId || 0,
filters.workerLevelIds || [],
@@ -92,6 +94,7 @@ export function resolveAdminWorkOrderListFilters(query: JsonObject = {}): ListIn
workOrderId: 0,
categoryId: 0,
keyword,
shopNames: [],
workerSharingId: 0,
workerLevelIds: [],
vipEvidencePending: false,
@@ -106,6 +109,8 @@ export function resolveAdminWorkOrderListFilters(query: JsonObject = {}): ListIn
.map(normalizeOptionalId)
.filter((levelId): levelId is number => levelId !== null)
const statuses = normalizeStatuses(query.status)
// 店铺来自 orders.shop_name,前端按逗号拼串传参,复用同一套数组解析(去重 + trim)。
const shopNames = normalizeStatuses(query.shopNames ?? query.shop_names)
const vipEvidencePending = normalizeBoolean(query.vipEvidencePending, false)
const createdFrom = normalizeDateString(query.createdFrom)
const createdTo = normalizeDateString(query.createdTo)
@@ -116,6 +121,7 @@ export function resolveAdminWorkOrderListFilters(query: JsonObject = {}): ListIn
workOrderId,
categoryId,
keyword,
shopNames,
workerSharingId: workerId,
workerLevelIds,
vipEvidencePending,
@@ -182,3 +188,13 @@ export async function listAdminWorkOrders(query: JsonObject = {}) {
statistics,
}
}
/**
* 后台工单「店铺」筛选的下拉候选。
*
* 固定全量去重(不随状态/日期等筛选变化),下拉里带搜索框由前端过滤即可;
* 数据口径见 repository 的 listWorkOrderShopNames(orders.shop_name,精确匹配)。
*/
export async function listAdminWorkOrderShopNames(): Promise<{ items: string[] }> {
return { items: await listWorkOrderShopNames() }
}