feat: refine template deletion and channel group filters
This commit is contained in:
@@ -3335,3 +3335,28 @@ git diff --check
|
||||
- 从预生产服务器公网复核:运营登录、客户端登录、API health和客户Swagger均为HTTP 200;API独立域名根路径及管理删除预检均为404;主站未认证运营端和客户端删除预检均为401。公网CMPP 17890纯TCP连接成功。本机执行公网检查时因本机DNS无法解析两个域名返回000,已由服务器侧公网检查闭环,不将本机DNS故障误记为平台故障。
|
||||
- 9条active供应商通道发布重启后6条为`connected 1/1`;“会员营销-富泷”“移动物业-富泷”“联电物业-富泷”3条仍为`authentication / connect response status: auth failed`。本轮未修改通道账号、密码、启停状态或连接参数,只保留并报告供应商真实返回。
|
||||
- 本次只部署代码和文档,未执行任何真实通道、签名、模板、引流信息或报备任务删除,未发送、补发或重投真实短信,未修改企业余额、客户连接或通道配置。部署依赖审计仍报告根项目3项high、API项目3项moderate和4项high,专用安全缓解门禁通过,未执行可能破坏兼容性的自动升级。
|
||||
|
||||
## 2026-08-09 模板删除与既有短信任务解耦(本地未提交)
|
||||
|
||||
- 纠正“模板删除必须等待关联短信任务结束”的错误耦合。单独删除模板时,预检和事务内复核都不再查询或阻断`SmsSendTask`/`SmsBatchTask`;模板仅逻辑删除,已创建任务、消息、计费、审核快照及历史`templateId`关联保持不变。
|
||||
- 已删除模板仍不能用于新建发送任务。已接受的定时任务到点时改为使用持久化内容快照继续处理,不因模板当前`deleted`状态失败;仍重新校验企业、应用、模板归属和签名当前状态。签名删除的级联安全阻断本轮未改。
|
||||
- 删除治理定向1 suite / 11 tests通过;发送链3个新增边界用例通过,覆盖已删模板禁止新任务、已有定时任务按快照继续、签名失效仍阻断。排除依赖本机Redis的`send-chain.service.spec.ts`后,API其余32 suites / 324 tests全部通过;API正式构建TypeScript检查和`git diff --check`通过。
|
||||
- 完整发送链套件仍因本机Redis `127.0.0.1:6379` 未运行出现5个既有连接拒绝超时,与上次记录的环境阻塞一致;本轮新增3个发送链用例已单独精确运行并通过,未为通过测试伪造Redis或改动队列配置。
|
||||
- 本轮未连接预生产、未修改数据库,未执行任何真实模板/签名/任务操作,未发送、补发或重投短信,也未修改通道、余额或客户连接。代码和文档保持未提交、未推送、未部署。
|
||||
|
||||
## 2026-08-09 通道支持运营商多选需求评估(暂缓,未实施)
|
||||
|
||||
- 新需求拟将通道本体从“移动、联通、电信、三网”单选改为“移动、联通、电信”三个运营商复选,三个全选等价于现行三网,并允许两个运营商组合。用户已明确本需求暂时不实施,本步骤只同步需求和规划用例,没有修改代码、Prisma schema、migration、API、页面或生产数据。
|
||||
- 已确认多运营商通道继续共用同一个通道单价,不设计分运营商价格。完整报备的理想模型为“签名 × 通道 × 运营商”,但本期暂不考虑该扩展;未来重新启动需求时必须先重新确认报备粒度,不能把当前“签名 × 通道”状态无依据复制到各运营商。
|
||||
- 2026-08-09预生产只读盘点共18条通道:8条`all/active`、1条`all/disabled`、1条`mobile/active`,另有6条`mobile/deleted`、1条`unicom/deleted`和1条`telecom/deleted`,没有NULL或非法旧值;另有28条通道组成员、54条活动路由规则、69条签名报备任务、148条报备历史记录和6907条提交记录需要在未来迁移与回归时保护。
|
||||
- 未来数据迁移固定按旧值语义保守映射:单运营商转单元素集合,`all`转移动/联通/电信全选,已删除通道同样迁移;不得从通道名称、当前通道组关联或近期发送量自动推断并缩减能力。取消仍被对应运营商活动通道组引用的能力时必须由真实后端阻止,禁止自动删除关联或历史。
|
||||
- 未来实施属于跨数据库、通道管理、通道组校验、发送选路、签名/引流报备、批次生成、筛选、复制、审计和文档的高风险改造,必须采用“兼容字段与回填底座→开放多选写入”的分阶段发布。生产出现双运营商组合后,回滚下限必须是已支持新集合的兼容版本,不能回滚到只识别旧`carrier`单值的版本。
|
||||
- 规划验收用例已记录为`TC-CHANNEL-CARRIER-MULTI-001`至`007`,当前均为“暂缓、未执行”,不计入现版本通过率,也不得作为现有系统Bug;本步骤未连接或修改预生产数据库,未修改通道账号、密码、启停状态、企业余额或客户连接,未发送、补发或重投真实短信。
|
||||
|
||||
## 2026-08-09 通道组按通道筛选(本地未提交)
|
||||
|
||||
- 运营端“短信通道组管理”新增“通道”可搜索下拉筛选。页面首次加载并行请求真实`GET /api/admin/channel-groups`和`GET /api/admin/channels`,下拉显示全部真实通道的名称和编码;已删除通道显式标记,未加入任何组的通道也保留可选,未新增静态列表、Mock或localStorage。
|
||||
- 选定通道后按成员的精确`channelId`筛选通道组,与通道组名称条件取交集;筛选结果的总数和分页同步重算,条件变更后回到第一页。“重置”同时清空名称和通道条件。
|
||||
- 按React性能口径将通道选项和筛选结果都作为`groups`与查询状态的派生值计算,不使用effect复制派生状态,避免额外请求、重复渲染和状态偏移。
|
||||
- 前端TypeScript `--noEmit --incremental false`通过;Vite v8.1.5生产构建通过(2535 modules),仅保留既有约2.04MB单chunk告警;`git diff --check`通过。本地预览能正常加载运营端应用和登录页,但本地API未运行,请求返回502且无已登录会话,因此未伪造登录或Mock通道数据进行页面交互验收。
|
||||
- 本轮未连接预生产、未修改数据库或真实通道/通道组,未发送、补发或重投短信,也未修改余额或客户连接。代码和文档保持未提交、未推送、未部署。
|
||||
|
||||
Reference in New Issue
Block a user