Files
one-pipe-system/openspec/changes/add-polling-config-preview-and-statistics/proposal.md
luo 06684e1fc0
All checks were successful
构建并部署前端到测试环境 / deploy (push) Successful in 55s
fix: 轮询按运营商账户限流
2026-10-26 14:31:15 +08:00

4.4 KiB
Raw Blame History

Change: 接入轮询配置匹配预览、调序、重算和统计

Why

docs/轮询配置管理_API简化版.md 新增 7 个接口。当前 PollingConfigService 仅有配置 CRUD、启停和启用列表,轮询配置页面没有匹配预览、优先级整体调整、异步重算及统计入口。需要按已明确的契约补齐,并延续之前菜单、权限和界面交付标准。

What Changes

  • 为全部 7 个新增接口补充服务方法、请求/响应类型及契约测试。
  • 在既有「轮询配置」/polling-management/config 内增加匹配预览入口:支持当前配置 GET 预览,以及携带多条未保存修改的 POST 预览。支持新增草稿(id=0)、覆盖配置和模拟停用,展示卡信息、命中配置和最终任务间隔;预览不写数据。
  • 草稿表单支持资产状态、套餐状态、五项检查间隔及重置日前窗口字段,准确区分前四项间隔的 null 继承、0 禁用和正数间隔;保护期 null 不检查。新增字段仅进入文档明确的 overrides,不擅自扩展旧 CRUD 保存契约。
  • 为超级管理员接入优先级排序提交和确认后的异步重算,界面和事件双重身份检查,不创建普通用户可分配的专属操作权限。
  • 在既有配置页面提供按 task_id 查询重算进度入口;启动后可自动查询,关闭、卸载和终态清理轮询,失败保留任务 ID 与错误信息。
  • 在「轮询管理」下新增「轮询配置统计」/polling-management/config-stats,包含重置日前加密查流量统计、分层统计两个独立授权区域;不额外增加一级菜单或详情路由。
  • 界面沿用店铺列表及店铺详情标准;业务时间使用 formatDateTime;搜索展开仅在条件数 >=4 时启用;运营商账户复用按名称搜索的远程下拉。
  • 完成后在 docs/权限.md 与最终回复列明实际新增菜单名称、URL、父菜单、页面权限和按钮权限,仅列普通账号配置。

Impact

  • Affected specs: polling-config-extensions(新增);仓库当前没有已归档 specs,已完成的 add-gateway-rate-limit-management 提供可复用账户搜索和通用交互能力,不更改它的接口与权限。
  • Affected code: src/api/modules/pollingConfig.ts、src/types/api/pollingConfig.ts、类型统一导出、新权限常量、src/views/polling-management/config/、新增统计页、路由别名和静态路由、scripts/tests/、docs/权限.md。
  • 保留当前工作区全部既有修改,包括网关限流、停复机时间控件、用户部署文件和 package.json。
  • 不执行真实配置修改、优先级提交、重算任务创建、Git 推送或线上部署;写接口只用本地 mock 验证。

Contract boundaries

  • POST 匹配预览同时在 Query 与 JSON Body 传同一 ICCID;Body 包含必填 iccid,不能只传其中一处。
  • 优先级接口没有明确成功 data DTO,不读取虚构的返回列表;成功后主动刷新配置列表。
  • 重算 carrier_id 请求为 number/null,响应为 string,任务状态和计数按接口原值展示;不把重算完成误解为停复机执行或强制推后轮询。
  • 两个统计接口提供明确 DTO,按该结构展示;周期 null 显示无数据,0 保留为真实零。分层统计注明 5 分钟缓存,未匹配项突出告警;统计刷新不宣称清除后端缓存。
  • 新文档只明确 overrides 支持额外配置字段,未给出新版持久化 CRUD 契约。因此保留原保存行为,用独立草稿表单承载新增预览字段;待后端提供明确保存契约后再扩展原保存表单。

Proposed ordinary-user configuration

项目 URL / 编码 父菜单 / 位置
轮询配置统计 /polling-management/config-stats,页面权限 polling_config_stats:page 轮询管理
匹配预览(当前配置/草稿) polling_config:match_preview 既有轮询配置
查询重算进度 polling_config:recalculate_progress 既有轮询配置
查看重置日前统计 polling_config_stats:pre_reset 轮询配置统计
查看分层统计 polling_config_stats:tiers 轮询配置统计

以上是前端配置约定,后端独立鉴权。既有轮询配置菜单和旧 CRUD 权限不因本次接入强制迁移。

用户于 2026-10-24 回复「执行」,并于 2026-10-26 回复「继续」,已批准按本提案实施。