chore: 更新 fix-realname-activation-logic OpenSpec 任务清单
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m15s
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m15s
标记全部 13 个任务为已完成 Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
@@ -104,44 +104,9 @@ ResumeCardIfStopped 不触发
|
||||
|
||||
**存量问题修复**(代码部署后手动执行):
|
||||
|
||||
```sql
|
||||
-- 找出所有已实名载体下仍处于 pending_realname_activation=true 的套餐
|
||||
-- 设备级
|
||||
UPDATE tb_package_usage pu
|
||||
SET
|
||||
status = 1,
|
||||
pending_realname_activation = false,
|
||||
activated_at = NOW(),
|
||||
expires_at = NOW() + INTERVAL '12 months', -- 按实际套餐 duration 调整
|
||||
updated_at = NOW()
|
||||
WHERE pu.status = 0
|
||||
AND pu.pending_realname_activation = true
|
||||
AND pu.device_id > 0
|
||||
AND pu.device_id IN (
|
||||
SELECT DISTINCT dsb.device_id
|
||||
FROM tb_device_sim_binding dsb
|
||||
JOIN tb_iot_card ic ON ic.id = dsb.iot_card_id
|
||||
WHERE dsb.bind_status = 1 AND dsb.deleted_at IS NULL
|
||||
AND ic.real_name_status = 1 AND ic.deleted_at IS NULL
|
||||
);
|
||||
**当前生产环境确认**:仅 `id=1`(device_id=2,`natural_month` 12 个月,`data_reset_cycle=monthly`)受影响。
|
||||
|
||||
-- 卡级
|
||||
UPDATE tb_package_usage pu
|
||||
SET
|
||||
status = 1,
|
||||
pending_realname_activation = false,
|
||||
activated_at = NOW(),
|
||||
expires_at = NOW() + INTERVAL '12 months', -- 按实际套餐 duration 调整
|
||||
updated_at = NOW()
|
||||
WHERE pu.status = 0
|
||||
AND pu.pending_realname_activation = true
|
||||
AND pu.iot_card_id > 0
|
||||
AND pu.iot_card_id IN (
|
||||
SELECT id FROM tb_iot_card WHERE real_name_status = 1 AND deleted_at IS NULL
|
||||
);
|
||||
```
|
||||
|
||||
> ⚠️ 以上 SQL 中 `expires_at` 使用了简化的固定值,生产执行前需根据 `CalculateExpiryTime` 逻辑按每条记录的套餐配置计算实际到期时间。
|
||||
**关键约束**:`expires_at` 必须匹配 Go 层 `CalculateExpiryTime` 的逻辑(自然月套餐 = 目标月末 23:59:59,不是简单的 `+N months`),同时需一并写入 `next_reset_at`。具体可执行 SQL 见 `tasks.md` 任务 4.2(三步操作:确认范围 → BEGIN/UPDATE/COMMIT → 验证)。
|
||||
|
||||
**回滚**:代码变更纯逻辑,无 schema 变更,直接回滚二进制即可。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user