feat: add signature quality period trends

This commit is contained in:
hectorzhao
2026-08-09 22:54:32 +08:00
parent 608662a054
commit 35de17a2d4
11 changed files with 385 additions and 30 deletions
+1 -1
View File
@@ -132,7 +132,7 @@
"group": "quality",
"isPrivate": false,
"signatureSha256": "6b9c3761674cb0d01000caca5e12cf91a6e526757592ffb783fc673c178b204c",
"bodySha256": "a7203deb5a8c7c3b6f6afaf83a55bb1ff45a0bf198f86a2158868c4b8c759b2d"
"bodySha256": "d07df712d2adadd05462914715f284e0215afbd0309fe276f78d2ac90a5aa0b7"
},
{
"name": "auditLogs",
@@ -1998,3 +1998,10 @@
- 运营端“短信通道组管理”在通道组名称条件之外增加“通道”筛选。选定一个通道后,只展示成员配置中真实包含该`channelId`的未删除通道组;与通道组名称同时输入时按两个条件取交集。
- 通道选项必须来自真实通道API,不使用静态列表、Mock或localStorage。页面首次加载时通道组与通道两个独立请求并行执行;选项同时展示通道名称和编码,已删除通道明确标记“已删除”。未加入任何通道组的真实通道仍可选择,选中后结果为零而不得隐藏该选项。
- 通道选择控件必须为通用下拉可搜索控件,支持按通道名称或编码搜索;“全部通道”表示不按通道限制,点击“重置”必须同时清空通道组名称和通道条件并回到第一页。
## 签名发送质量多周期趋势(2026-08-09)
- 运营端原“数据统计”菜单更名为“签名发送质量”,路由保持`/admin/analytics`兼容。日期控件保留并明确为“统计截止日”;近3日、近7日、近30日均包含所选截止日当天,例如截止日为8月6日时,近3日为8月4日至8月6日。
- 页面增加“当天发送签名数量”指标,按所选截止日内存在真实`SmsMessageRecord`且关联已登记`signatureId`的不同签名去重统计;搜索关键字不改变该全局当天指标。
- 签名列表候选范围为截至所选日期的近30日,截止日当天没有发送但此前29日有发送的签名仍须出现。签名详情按“签名 × 消息最终归属通道 × 号码运营商”展示近3/7/30日的发送业务条数、到达业务条数和到达率。业务条数以`SmsMessageRecord`为唯一计数单位,长短信分片和同一短信的通道补发尝试不得重复放大;到达率为到达业务条数除以发送业务条数,分母为0时显示0%。
- 点击任一通道、运营商和周期组合的“查看趋势”,必须展示该周期每个自然日的发送业务条数、到达业务条数和到达率折线;无数据日期补0,首尾日期与所选周期严格一致并包含截止日当天。数据必须来自真实后端和PostgreSQL,不得使用Mock、静态数据或localStorage。
+6
View File
@@ -4000,6 +4000,12 @@ npm run verify:phase8
| TC-ANALYTICS-SIGNATURE-011 | 点击“查看明细” | 打开右侧详情抽屉,展示运营商概览及通道×运营商矩阵;Esc、关闭按钮和遮罩均可关闭 |
| TC-ANALYTICS-SIGNATURE-012 | 所选日期没有已登记签名发送 | 返回真实空状态,不显示演示或历史日期数据 |
| TC-ANALYTICS-SIGNATURE-013 | 同一运营商的一条业务短信首通道失败后切换通道并最终送达 | 运营商概览计1条业务短信、最终成功率为100%;通道矩阵仍分别记录两次真实提交 |
| TC-ANALYTICS-SIGNATURE-014 | 统计截止日选择8月6日,查看近3/7/30日 | 统计范围分别为8月4日至6日、7月31日至8月6日、7月8日至8月6日,三段均包含8月6日当天 |
| TC-ANALYTICS-SIGNATURE-015 | 同一签名同一天存在长短信分片和跨通道补发,再查看通道×运营商多周期质量 | 每个业务消息按最终归属通道只计1条,不按分片或提交尝试重复计数;发送数、到达数和到达率与真实消息记录一致 |
| TC-ANALYTICS-SIGNATURE-016 | 点击任一通道、运营商的近3日“查看趋势” | 折线固定展示含截止日在内的3个自然日,逐日包含发送业务条数、到达业务条数和到达率,无数据日期显示0 |
| TC-ANALYTICS-SIGNATURE-017 | 当天多个消息使用同一签名、另有消息使用第二个签名,并输入签名搜索条件 | “当天发送签名数量”为2且不受搜索条件影响;未关联`signatureId`的消息不计入 |
| TC-ANALYTICS-SIGNATURE-018 | 检查运营端导航、面包屑和日期控件 | 菜单与面包屑显示“签名发送质量”,日期控件语义为“统计截止日”,原`/admin/analytics`路由仍可访问 |
| TC-ANALYTICS-SIGNATURE-019 | 某签名在截止日当天无发送、但此前29日内有发送 | 该签名仍出现在近30日列表并可查看对应周期数据;“当天发送签名数量”不计入该签名 |
# 列表后端分页与响应性能测试(2026-07-28)
## TC-LIST-PERF-001 短信记录真实后端分页
+9
View File
@@ -3372,3 +3372,12 @@ git diff --check
- 从预生产服务器公网复核:运营登录、客户登录、API health和客户Swagger均为HTTP 200;API独立域名根路径、管理页面和管理通道组接口均为404,主站未认证通道组接口为401。生产前端包已包含“输入通道名称或编码搜索”,运行API源码已包含模板任务快照继续处理逻辑。
- 9条active供应商通道发布重启后6条为`connected 1/1`;“会员营销-富泷”“移动物业-富泷”“联电物业-富泷”3条仍返回`connect response status: auth failed`。本轮未修改其账号、密码、启停状态或连接参数,只保留并报告供应商真实返回。
- 发布依赖审计仍报告根项目3项high、API项目3项moderate和4项high;专用安全缓解门禁通过,未执行可能破坏兼容性的自动升级。本次没有执行任何真实模板、签名、通道或通道组删除,未发送、补发或重投短信,未修改企业余额、客户连接或供应商通道配置。
## 2026-08-09 签名发送质量多周期趋势(本地验证完成)
- 运营端菜单及面包屑更名为“签名发送质量”,日期控件明确为统计截止日。近3/7/30日全部包含截止日当天;前端以自然日补齐趋势日期,不因数据库无记录而省略日期点。
- `GET /api/admin/operations/signature-quality`将签名列表候选及列表概览扩展为截至所选日期的近30日,并增加当天发送签名去重数,以及当前分页签名近30日按最终通道、运营商、自然日聚合的真实业务短信统计。截止日当天无发送但此前29日有发送的签名仍可查询;统计直接读取`SmsMessageRecord`,不按长短信分片或`SmsSubmitRecord`补发尝试重复计数。
- 签名详情新增“通道 × 运营商业务质量”表,逐组合展示近3/7/30日发送业务条数、到达业务条数和到达率;点击周期打开双轴折线图,展示逐日发送、到达和到达率。原单日运营商概览、通道提交矩阵和按引流切分继续保留,避免改变既有提交尝试诊断口径。
- 页面新增“当天发送签名数量”指标,按截止日内关联已登记签名的不同`signatureId`去重,且不受列表关键字筛选影响。未增加数据库字段或migration。
- Node.js v24下运营统计专项1 suite / 28 tests通过;API正式TypeScript构建、前端TypeScript及Vite v8.1.5生产构建通过(2535 modules,仅保留既有约2.04MB单chunk提示);`operations-r2`结构契约已按本次明确修改的`signatureQuality`行为更新并重新通过。发布与预生产只读验收结果待完成后补记。
- 发布前通过SSH对预生产PostgreSQL执行同口径只读探测:北京时间2026-08-09当天共有3个已登记签名、218条业务消息;近30日按签名、最终通道、运营商和北京时间自然日分组SQL成功执行并返回真实数据,未修改数据库或触发短信发送。