fix(product-v2): 快照列表创建人回填 + 还原弹窗文案中文化 (PR #2529)

这个提交包含在:
API Changelog Bot 2026-05-18 15:19:43 +08:00
父节点 0aee0ceddb
当前提交 40e0a3cc60

查看文件

@ -0,0 +1,86 @@
# product-v2: 快照列表「创建人」回填 + 还原弹窗文案中文化(mmg 必看)
> **服务**: hl-product-service-v2 (端口 8083)
> **PR**: #2529
> **Issue**: #2528
> **日期**: 2026-05-18
> **影响范围**: 版本管理列表展示 + 还原版本弹窗文案
---
## ⚠️ mmg 必看 - 两件事
### 1. 后端 RespVO 加了 `createdByName` 字段 — 列表展示绑这个
接口 URL / Method 不变,出参新增字段:
```json
GET /admin/product/item/{id}/snapshots?pageNum=1&pageSize=10
{
"code": 200,
"data": {
"records": [
{
"id": "...",
"name": "v1-行程定稿",
"description": "...",
"fileSize": 67890,
"keepForever": false,
"createdBy": 1001,
"createdByName": "张三", ← 🆕 新增字段,前端「创建人」列绑这个
"createTime": "2026-05-18 14:30:00"
}
]
}
}
```
**展示规则**:
- 历史 5 条 created_by=NULL 的快照, createdByName 也是 null → 前端展示「—」(已知,接受)
- 新保存的快照, createdByName 优先企微昵称, fallback username
### 2. 「创建时间」列前端字段绑错请改
如果前端模板绑的是 `createdAt`, 改成 `createTime` (后端返的字段名是 `createTime`, 历史也一直是这个)。
### 3. 还原版本弹窗文案中文化(用户截图反馈)
旧文案(英文/技术词,用户看不懂):
```
还原后:
- 产品所有字段(含价格、行程、备品等)会回到该版本
- 产品状态会强制设回「草稿」, 原 publishedAt / approvalNo 会被清空
- 已有订单(活跃报名)或处于「已上架」状态的产品无法还原
- 操作日志会记录一条还原(RESTORE)
```
新文案建议:
```
还原后:
- 产品所有字段(含价格、行程、备品等)会回到该版本
- 产品状态会强制设回「草稿」, 上架时间和审批编号会被清空
- 已有订单(活跃报名)或处于「已上架」状态的产品无法还原
- 操作日志会记录一条「还原版本」
```
去掉 `publishedAt` / `approvalNo` / `RESTORE` 三个英文字段名/枚举值,改用中文业务术语。
---
## 服务端改动
- saveSnapshot 显式 setCreatedBy(AdminContextUtil.getAdminId()) 兜底 OperatorHolderFilter 未生效场景
- ProductSnapshotRespVO 加 createdByName String 字段
- ProductSnapshotService 加 enrichCreatedByName: 批量调 UserFeignClient.batchGetAdminInfo 回填, 与 ProductQueryService 同方案
- 注入 UserFeignClient (@Nullable, 单测兼容)
- ProductSnapshotServiceTest 21/21 全绿
---
## 部署
- 测试服: 等待 PR #2529 后续部署
- 正式服: 等下一次 release 合 main 后部署
- nacos / DB: 无变化