hl-api-changelog/changelogs-v2/2026-06/16_站内信通知中心代码审查批量修复-管理后台.md

41 行
3.1 KiB
Markdown

此文件含有模棱两可的 Unicode 字符

此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。

# 【批量修复·站内信/通知中心】代码审查问题批量修复(含 3 项前端可感知)
> hl-ui 管理后台(站内信 / 通知中心 / 自定义推送)| 服务hl-user-service | PR #3873 | 已合并 dev-v3 + 部署测试服双实例(8081/8181) + API 行为实测无回归 | 2026-06-16
## ⚠️ 关键说明
对站内信/通知中心模块做了一轮多维代码审查(分层/越权/并发/数据模型/复用/测试 6 维 + 逐条对抗验证),确认并修复一批问题。其中 **3 项前端可感知**,其余为后端分层/安全/可维护性加固(接口路径、出入参结构均不变,前端无需改)。
## 1. 前端可感知(请知悉)
### 1.1 选人接口手机号改为脱敏返回(管理后台·自定义推送选目标)
- **接口**`GET /admin/notification/custom-push/users`(按关键词搜 C 端用户做推送目标)。
- **变更**:返回的 `phone` 字段由**明文完整手机号**改为**脱敏格式**(如 `137****9999`)。
- **影响**:选人下拉/列表展示请直接用脱敏值即可;若前端原先依赖完整手机号做任何逻辑,请改为不依赖(脱敏是安全合规要求)。
- **实测**:测试服已验证返回 `137****9999` 形态。
### 1.2 自定义推送接口加幂等 + 限流(管理后台·自定义推送)
- **接口**`POST /admin/notification/custom-push`
- **变更**:新增幂等 + 单管理员限流。**短时间内相同内容重复提交(双击/网络重试)会被幂等拦截**,不再重复给目标群发站内信/短信;单管理员发起批量推送的频次也有上限。
- **影响**:前端按钮建议照常做提交后置灰;若收到限流/幂等相关错误码提示,属预期防护(避免重复广播扰民 + 短信费用)。
### 1.3 「测试发送」失败返回标准业务错误码(管理后台·通知配置)
- **接口**`POST /admin/notification/config/{id}/test`
- **变更**:事件配置不存在/发送失败时,由原先的**通用错误字符串**改为**标准业务错误码**`200xxx` 段,走统一错误结构),且不再吞掉上游真实错误码。
- **影响**:前端可按错误码编程区分错误类型;提示文案仍为中文,可直接展示。
## 2. 后端加固(接口契约不变,前端无需关注)
- 消除站内信分类汇总的 SQL 字符串硬编码,改合规链式查询(红线①)。
- 通知配置/消息分类编辑接口的 Controller→Service 改走 VO,不再传持久层对象红线②
- 跨聚合数据访问收口、发送日志短信号码脱敏、通道码/状态码常量化(落库值不变)、鉴权取值逻辑去重、并发与空值守卫加固等。
## 验证
- hl-user-service 相关单测 112 项全绿AdminNotificationControllerTest 20 / AdminMessageServiceTest 17 / CustomPushServiceTest 32 等)。
- 合并部署测试服双实例 8081/8181 均 Started + health UP;经网关 9443 + 真 admin token 实测选人接口返脱敏手机号、站内信分类汇总返回正常categoryName 中文非 null,无回归。
- 仅改 hl-user-service,未动数据库 schema / Flyway。