匹配日志支持结果状态关键词与日期筛选及服务端分页

This commit is contained in:
yml2213
2026-08-23 10:30:47 +08:00
parent b4918769f1
commit fdf83a6745
4 changed files with 160 additions and 19 deletions
@@ -15,7 +15,12 @@ import type { JsonObject } from '../../types/json.js'
import type { OrderItemRow, OrderRow } from '../../types/repository/rows.js'
import { createHttpError } from '../../utils/http.js'
import { nowIso } from '../../utils/time.js'
import { normalizePage, normalizePageSize, safeParseJson } from '../admin/admin-query-utils.js'
import {
normalizeDateString,
normalizePage,
normalizePageSize,
safeParseJson,
} from '../admin/admin-query-utils.js'
import {
mapWorkProductRule,
normalizeBoolean,
@@ -262,8 +267,17 @@ export async function testAdminKuaishouProductMatch(payload: JsonObject = {}) {
}
export async function listAdminWorkProductMatchLogs(payload: JsonObject = {}) {
const limit = Math.min(500, normalizePositiveInteger(payload.limit, 100))
return { items: (await listWorkProductMatchLogs(limit)).map(mapWorkProductMatchLog) }
const page = normalizePage(payload.page)
const pageSize = Math.min(200, normalizePageSize(payload.pageSize))
const { items, total } = await listWorkProductMatchLogs({
page,
pageSize,
matchStatus: String(payload.matchStatus || payload.status || '').trim(),
keyword: String(payload.keyword || '').trim(),
createdFrom: normalizeDateString(payload.createdFrom),
createdTo: normalizeDateString(payload.createdTo),
})
return { items: items.map(mapWorkProductMatchLog), pagination: { page, pageSize, total } }
}
function mapWorkProductRuleMapping(mapping: WorkProductRuleMappingRow) {