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

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。