feat: wire admin workflows to real APIs

This commit is contained in:
hectorzhao
2026-07-02 13:50:09 +08:00
parent f8c9b78c21
commit ab421cf8a7
42 changed files with 2596 additions and 250 deletions
+71 -8
View File
@@ -55,9 +55,10 @@
- 账单流水
- 企业认证
- 用户管理
- 账号设置
- 系统日志
第一版不展示独立“账号设置”菜单,退出登录、修改密码统一放在右上角用户头像下拉菜单。
暂不开发:
- 彩信服务分组下全部菜单
@@ -241,26 +242,41 @@
- 展示总发送量、成功率、通道健康度、待处理审核数。
- 发送监控展示通道状态、发送趋势、失败率、积压队列。
- 数据统计支持按企业、应用、通道、日期统计。
- 运营概览一级菜单下只保留运营看板、发送监控、数据统计;客户管理独立作为一级业务域展示,避免重复菜单。
- 右上角消息铃铛展示所有待审核任务总数,并按企业认证、短信审核、短信模板审核、签名审核等分类展示;点击分类跳转到对应审核页面。
- 新审核任务进入时,运营端应触发浏览器通知或站内提醒;提醒数据必须来自真实待审核数量接口,不得只写死前端数字。
### 5.11 运营端客户与企业
- 支持企业列表、企业详情、新增、编辑、启用、停用。
- 支持企业认证资料审核。
- 支持查看企业下应用、签名、模板、发送记录、报备记录。
- 企业管理列表不提供无业务意义的“详情”按钮;需要查看明细时从企业应用、签名、模板、发送记录等业务入口进入。
- 企业应用管理编辑保存后返回企业应用管理列表。
- 企业应用列表展示 CMPP 连接数;点击连接数打开连接详情弹窗,内容包含连接 id、状态、连接建立时间、最近心跳时间、上次提交时间、窗口占用等。
- 企业应用连接详情支持删除连接;删除连接必须调用真实后端接口或 Gateway 回写接口,并写入系统日志。
- 企业应用列表提供 CMPP 连接参数查看与一键复制能力,参数来源于真实应用/通道配置,不允许只在前端拼接假数据。
### 5.12 运营端审核
- 企业认证审核:通过、驳回、查看材料。
- 企业认证详情必须展示客户提交的主体资料、统一社会信用代码、法定代表人、注册地址、营业执照附件、对公账户验证资料、联系人信息、提交时间、审核备注、驳回原因等;通过/驳回必须更新认证记录和租户认证状态,并写操作日志。
- 短信模板审核:通过、驳回、敏感词提示、变量检查。
- 短信模板审核必须支持按客户、应用、模板内容、审核编号和审核状态搜索;搜索应由真实后端 API 支持,前端只做展示和交互。
- 短信审核:查看短信内容、号码量、计费条数、进入审核原因、命中规则、风险原因;支持通过、驳回。
- 审核动作集中在审核中心;企业应用/签名/模板管理页面只做查询、维护、停用、备注和查看审核记录。
### 5.13 运营端通道管理
- 支持新增、编辑、删除、启用、停用短信通道。
- 删除通道采用软删除或停用归档,不能破坏历史发送、报备、日志外键;删除、启用、停用、复制等高影响操作必须二次确认并写系统日志。
- 支持复制通道:复制后新建一个通道,除 id/code 自动生成外,通道配置、CMPP 参数、通道报备字段、签名/引流报备材料和个性化字段配置均需从源通道复制;名称默认追加“副本”。
- 支持发送测试短信。
- 支持查看通道成功率、未知率、失败率、累计发送量。
- 支持进入通道报备详情。
- 通道报备详情页中,签名下的引流信息默认收起,用户点击后展开;展开/收起只影响页面展示,不改变报备数据。
- 通道列表状态区域展示“链接日志”入口;点击后弹窗展示真实连接日志,包括新建连接、断开、心跳、重连、异常等事件,日志来源于 Gateway 回写或 OperationLog。
- 通道操作按钮应保持一致的两列布局,报备详情、编辑、复制、发送测试、启停、删除等操作文案清晰。
### 5.14 运营端通道组管理
@@ -288,6 +304,9 @@
- 敏感词管理:发送前和审核时命中提示或拦截。
- 手机号段库:用于运营商识别和路由。
- 引流信息字段库:用于签名/报备资料结构化采集。
- 企业黑名单、全局黑名单、敏感词管理必须提供搜索、添加、启停/删除功能;所有操作调用真实后端 API,写入系统日志。
- 企业黑名单支持按企业、应用、手机号、入库原因、状态搜索;全局黑名单支持按手机号、原因、状态搜索;敏感词支持按词、分类/级别、状态搜索。
- “引流信息字段库”菜单命名为“报备字段库”,编辑、删除按钮使用通用操作按钮样式。
### 5.18 风控规则闭环
@@ -318,8 +337,11 @@
### 5.21 系统管理与审计
- 用户管理支持角色、权限、启停、重置密码。
- 系统日志记录登录、配置变更、审核、发送、导入导出、密钥重置等操作
- 用户管理支持角色、权限、启停、重置密码;客户端用户角色第一版限定一个企业管理员,避免多个企业管理员导致租户管理边界不清
- 用户管理删除按钮使用统一危险操作样式;删除、启停、重置密码必须二次确认并写操作日志
- 客户端和运营端右上角用户头像提供下拉菜单,支持退出登录、修改密码;账号设置独立菜单第一版不展示。
- 客户端和运营端系统日志均支持分页、搜索和详情展示;详情列内容较长时使用详情卡/弹窗展示,不能被表格窄列截断。
- 系统日志记录登录、退出、配置变更、审核、发送、导入导出、密钥重置、通道复制、通道启停、通道删除、连接状态变化、安全控制变更等操作。
## 6. 非功能需求
@@ -550,6 +572,12 @@
- `GET /api/client/billing/transactions`
- `POST /api/client/enterprise-certification`
- `GET /api/client/users`
- `POST /api/client/users`
- `PUT /api/client/users/{id}`
- `DELETE /api/client/users/{id}`
- `POST /api/client/users/{id}/status`
- `POST /api/client/users/{id}/password/reset`
- `POST /api/client/auth/password/change`
- `GET /api/client/system-logs`
### 10.2 运营端 API
@@ -561,15 +589,29 @@
- `POST /api/admin/enterprises`
- `PUT /api/admin/enterprises/{id}`
- `GET /api/admin/enterprise-applications`
- `PUT /api/admin/enterprise-applications/{id}`
- `GET /api/admin/enterprise-applications/{id}/connections`
- `DELETE /api/admin/enterprise-applications/{id}/connections/{connectionId}`
- `GET /api/admin/enterprise-applications/{id}/cmpp-params`
- `GET /api/admin/enterprise-signatures`
- `GET /api/admin/enterprise-templates`
- `GET /api/admin/enterprise-certifications`
- `GET /api/admin/enterprise-certifications/{id}`
- `POST /api/admin/enterprise-certifications/{id}/approve`
- `POST /api/admin/enterprise-certifications/{id}/reject`
- `GET /api/admin/audit-summary`
- `POST /api/admin/audits/{id}/approve`
- `POST /api/admin/audits/{id}/reject`
- `GET /api/admin/channels`
- `POST /api/admin/channels`
- `PUT /api/admin/channels/{id}`
- `POST /api/admin/channels/{id}/status`
- `DELETE /api/admin/channels/{id}`
- `POST /api/admin/channels/{id}/copy`
- `POST /api/admin/channels/{id}/test`
- `GET /api/admin/channels/{id}/reports`
- `GET /api/admin/channels/{id}/connections`
- `GET /api/admin/channels/{id}/link-logs`
- `POST /api/admin/channel-groups`
- `GET /api/admin/report-tasks`
- `POST /api/admin/report-tasks/generate`
@@ -579,9 +621,18 @@
- `GET /api/admin/sms/tasks`
- `GET /api/admin/sms/records`
- `GET /api/admin/sms/uplinks`
- `GET /api/admin/blacklists/enterprise`
- `GET /api/admin/blacklists/global`
- `GET /api/admin/sensitive-words`
- `GET /api/admin/dictionaries/blacklists/enterprise`
- `POST /api/admin/dictionaries/blacklists/enterprise`
- `POST /api/admin/dictionaries/blacklists/enterprise/{id}/status`
- `DELETE /api/admin/dictionaries/blacklists/enterprise/{id}`
- `GET /api/admin/dictionaries/blacklists/global`
- `POST /api/admin/dictionaries/blacklists/global`
- `POST /api/admin/dictionaries/blacklists/global/{id}/status`
- `DELETE /api/admin/dictionaries/blacklists/global/{id}`
- `GET /api/admin/dictionaries/sensitive-words`
- `POST /api/admin/dictionaries/sensitive-words`
- `POST /api/admin/dictionaries/sensitive-words/{id}/status`
- `DELETE /api/admin/dictionaries/sensitive-words/{id}`
- `GET /api/admin/risk-rules`
- `POST /api/admin/risk-rules`
- `PUT /api/admin/risk-rules/{id}`
@@ -593,7 +644,17 @@
- `POST /api/admin/billing/recharges`
- `GET /api/admin/phone-segments`
- `GET /api/admin/drainage-fields`
- `POST /api/admin/drainage-fields`
- `PUT /api/admin/drainage-fields/{id}`
- `DELETE /api/admin/drainage-fields/{id}`
- `GET /api/admin/users`
- `POST /api/admin/users`
- `PUT /api/admin/users/{id}`
- `DELETE /api/admin/users/{id}`
- `POST /api/admin/users/{id}/status`
- `POST /api/admin/users/{id}/password/reset`
- `POST /api/admin/auth/password/change`
- `GET /api/admin/system-logs`
### 10.3 通道回调 API
@@ -774,8 +835,9 @@
2. NestJS 后端实现 Prisma schema、migration、Service、Controller、DTO、单元测试。
3. Go Gateway 实现配置、连接管理、CMPP submit/deliver/active test、回执事件发布、单元测试。
4. 前端将对应 mock 数据替换为 API 调用,保留现有视觉样式。
5. 补充错误处理、权限校验、操作日志
6. 运行构建和相关测试
5. 原型阶段的 mock、localStorage 或静态数据只能作为开发临时兜底,不得作为真实开发完成标准;审核、通道、连接、日志、黑名单、敏感词、报备字段、用户、账务等闭环必须接入真实 API、数据库或 Gateway 回写
6. 补充错误处理、权限校验、操作日志
7. 运行构建和相关测试,并更新测试进度文档。
```
## 14. 已确认关键决策
@@ -1096,6 +1158,7 @@
- 不从零手写整个 CMPP 协议栈,也不直接照搬完整开源网关;协议层可复用,服务层按本项目自研。
- NestJS 负责业务审核、风控、计费、报备、路由和发送编排。
- Go Gateway 只负责 CMPP 连接、协议提交、submit resp、回执、上行事件回传。
- 当前项目已进入真实开发阶段;前端 mock、localStorage 或静态数据只能临时兜底,不能作为功能完成标准。涉及审核、通道、连接、日志、安全控制、用户、账务等闭环时,必须接入真实 API、数据库或 Gateway 回写,并补测试。
请从 docs/first-version-development-requirements.md 的“阶段 0:技术 Spike”开始执行。