fix(claim): 修复后台手动关闭任务后领取链接未失效的缺陷
1. 鉴权层激活 CLAIM_TERMINAL_STATUSES:在 getClaimContext 中增加 task 状态校验,对 closed 与 expired 终态任务实施 410 拦截并自愈更新关联 Token; 2. 仓储层新增 closeClaimTokensByTaskId():支持按 taskId 批量更新所有非 closed 状态的 Token 为 closed,彻底杜绝多 Token 或重发链接导致的历史活跃残留; 3. 后台关闭任务流程闭环:closeAdminTask 显式触发 closeClaimTokensByTaskId,确保任务关闭时关联领取链接立即失效; 4. 补充 CLAIM_TERMINAL_STATUSES 单元测试与完整排查分析方案文档。
This commit is contained in:
@@ -1,4 +1,7 @@
|
||||
import { updateClaimToken } from '../../../repositories/claim-token-repo.js'
|
||||
import {
|
||||
closeClaimTokensByTaskId,
|
||||
updateClaimToken,
|
||||
} from '../../../repositories/claim-token-repo.js'
|
||||
import { updateTask } from '../../../repositories/task-repo.js'
|
||||
import { createTaskEvent } from '../../../repositories/task-event-repo.js'
|
||||
import { createTaskClaimToken, buildClaimUrl } from '../../claim/claim-service.js'
|
||||
@@ -57,6 +60,8 @@ export async function closeAdminTask(
|
||||
})
|
||||
}
|
||||
|
||||
await closeClaimTokensByTaskId(task.id, now)
|
||||
|
||||
const updatedTask = await updateTask(task.id, {
|
||||
task_status: TASK_STATUS.CLOSED,
|
||||
delivery_status: 'closed',
|
||||
|
||||
Reference in New Issue
Block a user