通知中心与临期中心聚合流程
适用场景
系统需要把「台账临期 / 到期提醒」与「账号异常 / 会话超限等运行异常」两类信息分别集中展示,且二者共用同一份台账临期数据源,避免重复计算时触发。路由:/reminders(全局临期中心)、/notifications(通知中心)。
操作步骤
- 导航注册:
app.py菜单元组注册两条(/reminders标记「全局临期中心」、/notifications标记「通知中心」,约 L103–104)。 - 临期数据源收敛:
app._reminder_items()(L1339)直接调用ledgers.reminder_items(),临期中心与通知中心共用,避免重复聚合。 - 临期中心渲染:
app._reminders()(L1346)取 items 渲染T.reminders_page(items);ledgers.reminder_items()遍历全部台账ALL.values(),日期列须 ISO,非 ISO 稳健降级。 - 通知中心渲染:
app._notifications()(L1353)渲染T.notifications_page();/notify/read→db.mark_notifications_read()标记全部已读后跳回来源页。 - 异常通知落库:账号 / 密码异常写审计 + 通知中心(L1167,带来源 IP 便于定位);单账号并发超
config.MAX_CLIENTS→db.add_notification('session_overflow', ...)(L1187–1190)定位到/accounts。
注意边界
- 2026-10-02 用户指令:通知中心不要下拉菜单,铃铛直链本页(
app._notificationsL1354 注释),不要自作主张加悬停弹层。 - 临期中心遍历
ledgers.ALL.values()而非白名单,新增台账自动纳入;日期列非 ISO 要稳健降级,别让整页崩。 db.add_notification失败要有兜底,别把异常抛到请求线程。
反例避雷
- 临期与通知各算一遍 → 口径不一致、性能翻倍;必须共用
ledgers.reminder_items()。 - 给通知中心加下拉菜单 → 违反用户锁版指令(2026 导航样式锁版),纯美化一律不做。
- 日期列非 ISO 直接
datetime()解析 → 抛异常整页 500;先reminder_items()内部降级。
关联笔记
- [[技能|吞噬异常统一留痕治理法]]
- [[技能|审计日志留痕体系流程]]
- [[技能|全流程体检第一原则基线法]]
实战战绩
2026-10-02 落地:双中心聚合,临期共用 reminder_items();账号异常 / 会话超限自动落通知中心;铃铛直链本页(用户明确去下拉菜单)。
版本记录
| 版本 | 日期 | 变更 |
|---|---|---|
| v1.0.0 | 2026-10-03 | 据 app.py /notifications/_reminders/_reminder_items 与 db 通知接口固化 |