# 智慧康养短信平台系统 模块规划

---

## 1. 模块定位

智慧康养短信平台系统是全平台的**消息基础设施**，为所有业务模块提供短信发送能力，包括业务通知短信（服务确认/审核结果/订单变更）、健康预警短信（体征异常推送家属）、系统告警短信（设备离线/SOS事件）以及模板管理、接口对接和发送统计等能力。

本系统是平台级基础能力，不面向终端用户直接提供界面，而是作为内部服务对其他模块暴露 API。

---

## 2. 建设目标

1. 提供统一的短信发送 API，所有业务模块通过统一入口发送短信，避免各模块各自对接运营商
2. 管理短信模板，支持变量占位符（老人姓名/服务时间/家属联系方式）
3. 实现健康预警短信的优先级发送（体征危急值 = 最高优先级）
4. 提供发送统计与失败重试机制
5. 支持多运营商/多通道切换，保障发送成功率

---

## 3. 核心功能范围

### 3.1 一级模块

- 短信发送服务
- 健康预警短信
- 告警自动发送
- 模板管理
- 运营商接口对接
- 发送统计
- 权限管理

### 3.2 二级模块

- **短信发送服务**：单发、群发、定时发送 API
- **健康预警**：健康管理系统（08）触发危急值短信，优先级队列
- **告警自动发送**：安全系统（09）SOS/跌倒/走失告警短信自动发送给家属/护工
- **模板管理**：内置系统模板 + 自定义模板，工信部报备管理
- **运营商对接**：阿里云短信/腾讯云短信/云之讯等多通道配置，自动故障切换
- **发送统计**：每日/月发送量、成功率、费用统计、模板使用排行
- **权限管理**：各模块调用限额、IP白名单、API密钥管理

### 3.3 核心功能说明

| 功能         | 描述                                                   | 技术要点                  |
| ------------ | ------------------------------------------------------ | ------------------------- |
| 统一短信API  | 内部HTTP API接口，接收目标号码+模板+变量，返回发送结果 | RESTful API + 异步回调    |
| 优先级队列   | SOS告警 > 健康危急 > 业务通知，高优先级跳过排队        | 分级消息队列（多个Queue） |
| 多通道切换   | 主通道失败→自动切换备用通道（<30s内）                  | 健康检查 + 故障转移逻辑   |
| 模板变量渲染 | 模板中 ${name}、${time} 占位符替换                     | 字符串模板引擎            |
| 失败重试     | 发送失败后按指数退避重试（最多3次）                    | 重试队列 + 退避算法       |

---

## 4. 与现有 mall 的关系

**契合度：C（低契合，架构可参考但不可直接复用）**

mall 自身集成了短信发送功能（注册验证码/订单通知），但：

| 能力             | mall 现状                 | 结论                             |
| ---------------- | ------------------------- | -------------------------------- |
| 短信发送基础能力 | 有（阿里云短信SDK集成）   | 可参考实现方式，但未做成独立服务 |
| 模板管理界面     | 无（模板硬编码在业务层）  | 须新建专项管理界面               |
| 优先级消息队列   | 无                        | 须新建                           |
| 多通道故障切换   | 无                        | 须新建                           |
| 健康预警短信业务 | 无（纯电商领域无此需求）  | 须新建                           |
| 多模块统一API    | 无（短信dispersed在各处） | 须统一接入点设计                 |

**建设路径：独立微服务（C→D，以独立为主）**

鉴于全平台27个模块都需要短信能力，建议将本系统建设为独立的基础设施微服务（类似短信网关），而非在 mall 中扩展。

---

## 5. 规划判断

**独立微服务（短信基础设施）**

- 无独立用户界面（仅有内部管理后台）
- 对内：提供HTTP/gRPC短信发送API
- 对外：对接阿里云/腾讯云短信平台
- 管理界面：轻量级Vue3 Web（模板管理+统计查看）

---

## 6. 需新增业务能力

1. **统一短信网关API**：标准化短信发送接口（单发/批量发/定时发）
2. **模板管理与工信部报备**：短信模板的创建、审核状态管理、报备流程追踪
3. **多通道编排**：配置主备通道，自动健康检查和故障切换
4. **优先级队列**：至少三级优先级（紧急/普通/营销）
5. **发送限流**：按调用方（模块）设置每小时/每日发送上限，防止异常刷量
6. **号码黑名单**：支持用户退订（短信STOP指令处理），合规管理

---

## 7. 需新增数据模型

| 模型                 | 关键字段                                                                                      |
| -------------------- | --------------------------------------------------------------------------------------------- |
| `sms_template`       | id, code, name, content, variables(array), channel_template_ids(JSONB), status, registered_at |
| `sms_send_record`    | id, template_id, receiver, variables(JSONB), channel, priority, status, sent_at, fail_reason  |
| `sms_channel_config` | id, provider(aliyun/tencent), access_key, priority_level, is_active, health_status            |
| `sms_quota_config`   | caller_module, hour_limit, day_limit, current_hour_count, current_day_count                   |
| `sms_blacklist`      | phone_no, reason, added_at, added_by                                                          |

---

## 8. 需新增技术栈 / 第三方能力 / 中间件

| 类别       | 技术选型                         | 用途                     |
| ---------- | -------------------------------- | ------------------------ |
| 短信服务商 | 阿里云SMS（主）+ 腾讯云SMS（备） | 短信发送通道             |
| 消息队列   | RabbitMQ（多级优先级队列）       | 异步发送、优先级管理     |
| 缓存       | Redis                            | 限流计数器、号码频率控制 |
| 监控       | Prometheus指标暴露               | 发送成功率、队列深度监控 |

---

## 9. 外部系统对接关系

| 对接方（调用方） | 典型短信场景                    |
| ---------------- | ------------------------------- |
| 健康管理（08）   | 体征危急值告警 → 家属           |
| 安全系统（09）   | SOS/跌倒/走失 → 家属+紧急联系人 |
| 长护险（18）     | 服务完成确认 → 老人/监察员      |
| 审批系统（04）   | 补贴审核结果 → 申请人           |
| 居家养老（10）   | 服务预约确认 → 老人             |
| 医养商城（19）   | 订单发货/物流更新 → 消费者      |
| 系统管理（05）   | 账号注册/密码重置验证码         |

---

## 10. 风险与边界

| 风险              | 说明                                                     | 应对                        |
| ----------------- | -------------------------------------------------------- | --------------------------- |
| 工信部模板审核    | 短信模板需报备审核，周期1-3天                            | 提前规划模板，预留报备时间  |
| 短信费用失控      | 告警类短信量大，费用可能超预期                           | 限流配置 + 每日用量预警     |
| 号码归属地屏蔽    | 某些运营商拦截短信                                       | 多通道备份 + 短信到达率监控 |
| 边界：不含APP推送 | APP推送由各业务模块自行集成极光/腾讯推送，本系统仅做短信 | 明确能力范围                |

---

## 11. 实施优先级与分期建议

**优先级：P1（基础设施，其他模块依赖）**

| 分期             | 内容                                        | 说明                            |
| ---------------- | ------------------------------------------- | ------------------------------- |
| 第一期（P1同步） | 基础短信发送API + 验证码模板 + 阿里云单通道 | 所有P1模块的账号/通知依赖此能力 |
| 第二期           | 模板管理界面 + 优先级队列 + 多通道切换      | —                               |
| 第三期           | 用量统计報表 + 限流控制 + 黑名单管理        | —                               |

---

## 12. 结论

短信平台是全平台级基础设施，须在P1阶段早期完成基础能力建设，支撑其他模块的通知依赖。

mall 现有分散的短信代码可作为起点参考，但须重新设计为**独立微服务架构**，提供统一API入口，实现多通道管理、优先级调度和合规管控，避免27个模块各自维护短信代码的维护灾难。
