2.4 KiB
2.4 KiB
02 — 卡列表批量展示预计最终到期
What to build: 运营人员和代理人员查看卡列表时,每张卡都能看到与资产详情完全一致的“预计套餐到期时间”、剩余自然日、推算状态和临期标记。列表按本页资产一次批量计算,不因新增字段产生逐卡查询,也不改变普通卡列表既有筛选、分页和排序。
Blocked by: .scratch/ur46-estimated-final-expiry/issues/01-admin-asset-detail-estimated-final-expiry.md — 01 — 后台资产详情统一展示预计最终到期
Status: backend-implemented(补充验收测试后结项)
- 架构主通道为 Query;复用 01 已建立的批量入口和纯计算核心,完整收口普通卡列表的预计最终到期投影,不迁移卡管理写操作、套餐生命周期或未触碰的列表逻辑。
- 卡列表每项明确返回预计日期、剩余自然日、推算状态、状态中文名称和临期标记;非
exact时 nullable 字段返回null,查询错误遵循统一错误规范。 - 一次批量加载本页全部卡的参与使用记录和必要历史套餐兜底数据,再按资产分组计算;不得逐卡调用单资产 Query 或产生其他 N+1 查询。
- 同一张卡在列表批量入口和详情单资产入口得到完全一致的结果,包含历史快照回退、等待激活、异常数据和已过期负数天数场景。
- Count 与 Fetch 保持原有相同过滤条件,新增投影不改变总数;普通卡列表继续使用原有稳定排序,不按预计日期或临期程度重新排序。
- 后台和代理端卡列表统一显示“预计套餐到期时间”,四种状态分别展示精确日期、待激活后起算、—、数据异常;前端不叠加套餐时长或自行计算剩余天数。(前端任务,不纳入后端交付)
is_expiring=true时仅应用约定临期颜色,不引入 UR#33 的独立临期列表、0~3 天置顶、Dashboard 或通知行为。(前端任务,不纳入后端交付)- HTTP 集成测试覆盖四种状态、nullable 字段、详情与列表一致性、原筛选和分页不变;使用每页 100 张卡的代表性数据验证固定查询数量并满足项目性能目标。(后端验收测试待补)
- 前端验收普通卡列表排序不变、翻页稳定,当前套餐自身到期时间不再作为资产摘要中的第二个汇总到期字段。(前端任务,不纳入后端交付)