docs(changelog/v2): 站内信通知中心代码审查批量修复 PR#3873
这个提交包含在:
父节点
c8e19dc870
当前提交
409b3087cc
@ -0,0 +1,40 @@
|
||||
# 【批量修复·站内信/通知中心】代码审查问题批量修复(含 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。
|
||||
正在加载...
x
在新工单中引用
屏蔽一个用户