3.1 KiB
3.1 KiB
【批量修复·站内信/通知中心】代码审查问题批量修复(含 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。