refactor: 移除 Rock 发货处理中状态,新增异常派生筛选标记
- 新增迁移 028:历史 redeeming 回退为 bound,重建 pending 部分索引
- pending 语义改为 bound + redeem_requested_at 标记,不再写状态与状态日志
- 新增 anomaly 虚拟筛选项:基于状态日志派生异常标记,不改状态、不落库
- 状态列追加「⚠️ 异常」标签,统计新增 anomaly_stock
- 清理前后端 redeeming 相关分支与文案
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
-- 028: 移除 redeeming 状态,pending 改为纯标记字段;恢复 redeeming 历史数据
|
||||
-- 背景:上游异步兑奖不再占用独立状态,Token 保持 bound,
|
||||
-- 用 redeem_requested_at / redeemed_at 判定「发货确认中」。
|
||||
|
||||
-- 1) 回退历史 redeeming 数据:只回状态,不写状态日志,避免伪造流转。
|
||||
UPDATE rock_tokens
|
||||
SET status = 'bound',
|
||||
updated_at = NOW()
|
||||
WHERE status = 'redeeming'
|
||||
AND redeemed_at IS NULL;
|
||||
|
||||
-- 2) 旧的 pending 索引依赖 status='redeeming',必须替换为标记口径。
|
||||
DROP INDEX IF EXISTS idx_rock_tokens_redeem_next_retry_at;
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_rock_tokens_redeem_pending
|
||||
ON rock_tokens (redeem_next_retry_at)
|
||||
WHERE redeem_requested_at IS NOT NULL
|
||||
AND redeemed_at IS NULL;
|
||||
|
||||
COMMENT ON COLUMN rock_tokens.redeem_requested_at IS '提交上游兑换的时间(发货确认中标记,非状态)';
|
||||
COMMENT ON COLUMN rock_tokens.redeem_next_retry_at IS '下一次允许轮询上游的时间(指数退避)';
|
||||
COMMENT ON COLUMN rock_tokens.redeem_timeout_warned_at IS '超过等待上限仍未确认时写入的告警时间(仅标记)';
|
||||
Reference in New Issue
Block a user