perf: 筛选统计去掉 JSON 兜底,并补上 orders 覆盖索引
去掉 work_orders 堆访问后,JOIN 会把 orders 整表扫进 Hash Right Join。 领取页在快照新鲜时不再打上游;快手出网统一 10 秒超时。倒计时改为自适应间隔。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
export const DEADLINE_FAST_TICK_MS = 1_000
|
||||
export const DEADLINE_SLOW_TICK_MS = 30_000
|
||||
export const DEADLINE_FAST_WINDOW_MS = 60_000
|
||||
|
||||
export function resolveDeadlineCountdown(deadlineAt: string, now: number) {
|
||||
const remainingMs = new Date(deadlineAt).getTime() - now
|
||||
if (!Number.isFinite(remainingMs) || remainingMs <= 0) {
|
||||
return {
|
||||
label: '已超时',
|
||||
color: 'red' as const,
|
||||
tickMs: DEADLINE_SLOW_TICK_MS,
|
||||
}
|
||||
}
|
||||
|
||||
const totalSeconds = Math.floor(remainingMs / 1000)
|
||||
const minutes = Math.floor(totalSeconds / 60)
|
||||
const seconds = totalSeconds % 60
|
||||
const fast = remainingMs < DEADLINE_FAST_WINDOW_MS
|
||||
const label = fast
|
||||
? minutes > 0
|
||||
? `剩余 ${minutes} 分 ${seconds} 秒`
|
||||
: `剩余 ${seconds} 秒`
|
||||
: `剩余 ${minutes} 分`
|
||||
|
||||
return {
|
||||
label,
|
||||
color: (remainingMs < 10 * 60_000 ? 'orange' : 'blue') as 'orange' | 'blue',
|
||||
tickMs: fast ? DEADLINE_FAST_TICK_MS : DEADLINE_SLOW_TICK_MS,
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user