# 02 — 交付后台通知筛选、分类汇总与全部已读

**What to build:** 当前后台账号可以按通知类别、类型、严重级别和已读状态分页查看自己的消息，获得总未读数及审批、临期、同步、系统四个固定类别的汇总，并将当前类别或全部未过期通知一次性标记为已读。筛选、汇总和更新始终绑定认证账号，不因管理员身份扩大到其他用户。

**Blocked by:** 01 — 向明确后台账号可靠投递首条站内通知

**Status:** 代码完成、验证延期

**架构通道:** 主通道为 Query，辅助通道为简单写 Application。

**完整业务边界:** 本票收口后台通知中心所需的筛选、固定分类汇总和批量已读用例。明确不实现个人客户接口、动态接收人、目标跳转、前端页面、Redis 未读计数或管理员查看他人通知能力。

- [x] 列表支持类别、类型、严重级别、已读状态、页码和每页数量组合过滤，所有条件使用 AND 语义并保持创建时间、ID 倒序。
- [x] 非法类别、严重级别、已读参数或越界分页返回统一参数错误，不向客户端拼接底层校验信息。
- [x] 未读汇总固定返回 `total`、`approval`、`expiry`、`sync`、`system`，过期通知不计入任何分类。
- [x] 全部已读在类别为空时更新当前账号全部未过期未读通知，在类别有效时只更新该类别，并返回实际更新数量。
- [x] 批量更新使用当前接收人、未读状态、未过期和可选类别条件；重复调用返回零更新且保持成功，不覆盖既有 `read_at`。
- [x] `/read-all` 等静态路由先于 `/{id}` 动态路由注册，生成的 OpenAPI 与真实路由、请求参数和响应结构一致。
- [ ] PostgreSQL 与真实后台认证 HTTP 集成测试覆盖组合筛选、固定汇总、最大分页、过期排除、非法类别、并发批量已读及无法操作他人通知。（按本 Change 测试环境豁免转任务 6.1）
