feat(pdd): 支持根据数据库已有订单自适应翻页拉取,防高峰漏单
1. 新增数据库批量排查已有订单接口 findExistingPlatformOrderIds,利用 B-Tree 索引毫秒级判定当前页订单是否存在; 2. 优化 syncStoreOrders 支持自适应翻页拉取:当第 1 页全部为新订单时,自适应向后递增翻页拉取(支持 maxPages 默认 5 页,平滑限速 300ms); 3. 翻页终止自适应判定:当拉取到包含数据库已有旧订单的页面时立即 break 停止翻页,兼顾高性能与不漏单; 4. 扩展全局配置支持 maxPages(自适应最大翻页页数),支持后台管理员在 UI 设置与立即拉单参数联动; 5. 新增单元测试 pdd-sync-service.test.ts,验证全部新订单自适应翻页与命中已有订单提前终止行为。
This commit is contained in:
@@ -180,11 +180,13 @@ router.post(
|
||||
const body = (req.body || {}) as {
|
||||
shopId?: string
|
||||
pageSize?: number
|
||||
maxPages?: number
|
||||
orderType?: number
|
||||
}
|
||||
const shopId = String(body.shopId || '').trim()
|
||||
const config = getPddSourcesConfig()
|
||||
const pageSize = Math.min(100, Math.max(1, Number(body.pageSize || config.pageSize || 50)))
|
||||
const maxPages = Math.min(20, Math.max(1, Number(body.maxPages || config.maxPages || 5)))
|
||||
const orderType = Number(body.orderType ?? config.orderType ?? 2)
|
||||
|
||||
if (shopId) {
|
||||
@@ -195,10 +197,10 @@ router.post(
|
||||
errorCode: 'pdd_store_not_found',
|
||||
})
|
||||
}
|
||||
return syncStoreOrders(store, { pageSize, orderType })
|
||||
return syncStoreOrders(store, { pageSize, maxPages, orderType })
|
||||
}
|
||||
|
||||
return syncAllPddStores({ pageSize, orderType })
|
||||
return syncAllPddStores({ pageSize, maxPages, orderType })
|
||||
},
|
||||
{
|
||||
successMessage: '拼多多同步已触发',
|
||||
|
||||
Reference in New Issue
Block a user