fix(product-v2): 快照列表创建人回填 + 还原弹窗文案中文化 (PR #2529)
这个提交包含在:
父节点
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: 无变化
|
||||||
正在加载...
x
在新工单中引用
屏蔽一个用户