docs(changelog): 主题列表 createdByName 字段已上线测试服, 覆盖 heads-up 版
覆盖之前的 heads-up changelog (commit fd6e7b1) — 测试服 API 真测过, 字段 5/5 条全在 + 全非 null: - 王骁/小松 (企微昵称) - admin/test_admin (username fallback) PR #1944 已合并到 dev, dep.test.1814.love 滚动部署完成 (42s 双实例 OK)。 前端 mmg 可以直接接 createdByName 字段。 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
这个提交包含在:
父节点
fd6e7b104f
当前提交
7ce411a1b2
@ -1,45 +1,65 @@
|
||||
# 管理端主题列表: 卡片新增「创建人姓名」字段(企微昵称优先 fallback 用户名)
|
||||
# 管理端主题列表: 卡片新增「创建人姓名」字段 createdByName(企微昵称优先 fallback 用户名)
|
||||
|
||||
> **服务**: hl-product-service-v2 (端口 8083)
|
||||
> **PR**: 待开(后端开发中)
|
||||
> **Issue**: [#1943](https://git.1814.love:8443/wx/HL/issues/1943)
|
||||
> **PR**: [#1944](https://git.1814.love:8443/wx/HL/pulls/1944) — 已合并到 dev
|
||||
> **Issue**: [#1943](https://git.1814.love:8443/wx/HL/issues/1943) — 已关闭
|
||||
> **日期**: 2026-05-11
|
||||
> **影响范围**: 管理后台「产品管理 → 主题列表」(/product/line) 卡片
|
||||
> **状态**: ⚠️ **预告 (Heads-up)** — 后端尚未合并,前端可同步开始;字段名/格式以本文为准,PR 合并后会再补一条"已上线"changelog
|
||||
> **状态**: ✅ **已上线测试服**(dev 分支 → dep.test.1814.love 部署 → API 已验证)
|
||||
|
||||
---
|
||||
|
||||
## ⚠️ 关键变化
|
||||
## ⚠️ 关键变化(覆盖本日早些时候那条 heads-up)
|
||||
|
||||
主题列表卡片每张多一个字段 `createdByName`(String,可能为 null),用于显示是谁创建了这个主题。
|
||||
主题列表卡片每张多一个字段 **`createdByName`**(String,可能为 null)。
|
||||
|
||||
**显示规则(后端已实现)**:
|
||||
- 创建人 admin_user 绑定了企业微信 → 返回**企业微信昵称**
|
||||
- 未绑企微 → 返回 **admin_user.username**(用户名兜底)
|
||||
- 极端情况(user-service 降级 / admin 已删)→ 返回 null,前端可显示「-」或隐藏该行
|
||||
- 极端情况(user-service 降级 / admin 已删)→ 返回 null
|
||||
|
||||
前端**无需自己 fallback**,后端已聚合好,前端直接展示 `createdByName` 即可。
|
||||
前端**无需自己 fallback**,后端已聚合好,直接展示 `createdByName` 即可。
|
||||
|
||||
---
|
||||
|
||||
## 一、背景
|
||||
## 一、测试服已验证 (硬性凭证)
|
||||
|
||||
超级管理员/运营组长视角下,主题列表 27 张卡片看不出谁建的,特别是私人定制类主题(不同销售各自开),需要快速识别 owner。
|
||||
```
|
||||
GET https://api.test.1814.love:9443/admin/product/line/list?pageNo=1&pageSize=5
|
||||
Authorization: Bearer <admin 真 token>
|
||||
|
||||
HTTP 200
|
||||
data.records[*].createdByName 字段存在性: 5/5 条全部都有 ✓
|
||||
非 null 命中: 5/5 条 (createdBy 有值的全部回填) ✓
|
||||
|
||||
实测样本:
|
||||
lineId=2053279457388494849 createdBy=2021059720172838914 createdByName='王骁'
|
||||
lineId=2053278451187535873 createdBy=2021059720172838914 createdByName='王骁'
|
||||
lineId=2053060320829599746 createdBy=1001 createdByName='admin' (username fallback)
|
||||
lineId=2053060194102898690 createdBy=1002 createdByName='test_admin' (username fallback)
|
||||
lineId=2049467101390819329 createdBy=2033349910786715649 createdByName='小松' (企微昵称)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 二、变更接口清单
|
||||
## 二、背景
|
||||
|
||||
超级管理员/运营组长视角下,主题列表卡片看不出谁建的,特别是私人定制类主题(不同销售各自开),需要快速识别 owner。
|
||||
|
||||
---
|
||||
|
||||
## 三、变更接口清单
|
||||
|
||||
| # | 接口 | 方法 | 路径 | 变更类型 | 说明 |
|
||||
|---|------|------|------|----------|------|
|
||||
| 1 | 主题列表 | GET | `/admin/product/line/list` | 响应体新增字段 | 每条多 `createdByName` |
|
||||
| 2 | 主题详情 | GET | `/admin/product/line/{lineId}` | 响应体新增字段 | 多 `createdByName` |
|
||||
|
||||
后端 0 个 break、0 个删除、0 个语义变化。仅追加字段,前端不接也不会报错。
|
||||
后端 0 个 break、0 个删除、0 个语义变化。仅追加字段。
|
||||
|
||||
---
|
||||
|
||||
## 三、接口详情
|
||||
## 四、接口详情
|
||||
|
||||
### 1. 主题列表 `GET /admin/product/line/list`
|
||||
|
||||
@ -63,30 +83,18 @@
|
||||
"code": 200,
|
||||
"message": "成功",
|
||||
"success": true,
|
||||
"data": [
|
||||
{
|
||||
"lineId": 2045311111111111111,
|
||||
"name": "游牧的森林",
|
||||
"createdBy": 1002,
|
||||
"createdByName": "王宇",
|
||||
"createTime": "2026-04-17 12:59:24",
|
||||
"...其他字段": "..."
|
||||
},
|
||||
{
|
||||
"lineId": 2045322222222222222,
|
||||
"name": "嗨冰雪",
|
||||
"createdBy": 1003,
|
||||
"createdByName": "test_admin",
|
||||
"createTime": "..."
|
||||
},
|
||||
{
|
||||
"lineId": 2045333333333333333,
|
||||
"name": "私人定制",
|
||||
"createdBy": 1099,
|
||||
"createdByName": null,
|
||||
"...": "..."
|
||||
}
|
||||
]
|
||||
"data": {
|
||||
"records": [
|
||||
{
|
||||
"lineId": "2053279457388494849",
|
||||
"name": "私人订制",
|
||||
"createdBy": "2021059720172838914",
|
||||
"createdByName": "王骁",
|
||||
"createTime": "2026-05-10 09:02:25",
|
||||
"...其他字段": "..."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
@ -96,22 +104,11 @@
|
||||
|
||||
---
|
||||
|
||||
## 四、前端实现要点
|
||||
## 五、前端实现要点
|
||||
|
||||
### UI 位置(建议)
|
||||
|
||||
主题卡片当前布局(图示):
|
||||
```
|
||||
[封面图]
|
||||
[主题名] [核心产品/私人定制 标签]
|
||||
[简介]
|
||||
[季节/标签 chips]
|
||||
[版本数] [排序]
|
||||
[启用] [创建时间]
|
||||
[👁 编辑 删除按钮]
|
||||
```
|
||||
|
||||
建议在「创建时间」一行旁边或上面加一行「创建人: xxx」,排版方式由前端拍板。
|
||||
主题卡片在「创建时间」一行旁边或上面加一行「创建人: xxx」,排版方式由前端拍板。
|
||||
|
||||
### Null 处理
|
||||
|
||||
@ -124,17 +121,16 @@
|
||||
|
||||
---
|
||||
|
||||
## 五、不影响范围
|
||||
## 六、不影响范围
|
||||
|
||||
- ✅ MP 端任何接口:0 改动(C 端不需要看创建人)
|
||||
- ✅ 主题创建/编辑/删除接口:0 改动(写入侧不受影响)
|
||||
- ✅ 现有筛选条件(关键字/状态/主题类型):0 改动
|
||||
- ✅ 历史 27 条主题数据:无需迁移(createdBy 已写入,靠 enrich 实时取,老数据如 createdBy 已删则返 null)
|
||||
- ✅ 装备模板下拉、产品列表、其他列表:本次不涉及
|
||||
|
||||
---
|
||||
|
||||
## 六、降级/边界
|
||||
## 七、降级/边界
|
||||
|
||||
- user-service 降级(Feign 失败)→ 后端 catch 异常,所有 createdByName 返 null,列表照常返回,**不阻断页面**
|
||||
- batchGetAdminInfo 返空(admin 已删)→ 该条 createdByName = null
|
||||
@ -142,19 +138,20 @@
|
||||
|
||||
---
|
||||
|
||||
## 七、相关历史
|
||||
## 八、相关历史
|
||||
|
||||
| PR | Issue | 说明 | 是否仍有效 |
|
||||
|----|-------|------|------------|
|
||||
| 待开 PR | #1943 | 主题列表/详情新增 createdByName | 🚧 开发中 |
|
||||
| **#1944** | #1943 | 主题列表/详情新增 createdByName | ✅ **本次**(已合 dev + 测试服已验证) |
|
||||
|
||||
参考类似实现:产品列表 `ProductQueryService.enrichCreatedByName():243-267`(已上线,前端已使用 `createdByName` 字段)。
|
||||
参考类似实现:产品列表 `ProductQueryService.enrichCreatedByName():243-267`(已上线很久,前端已使用 `createdByName` 字段)。
|
||||
|
||||
---
|
||||
|
||||
## 八、相关文档
|
||||
## 九、相关文档
|
||||
|
||||
- 关联 Issue: [wx/HL#1943](https://git.1814.love:8443/wx/HL/issues/1943)
|
||||
- 关联 PR: [wx/HL#1944](https://git.1814.love:8443/wx/HL/pulls/1944)
|
||||
- Feign 接口: `hl-common/hl-common-feign/.../UserFeignClient.java:36-37`
|
||||
- AdminBasicDTO: `hl-common/hl-common-core/.../AdminBasicDTO.java:17,25-26`
|
||||
- 仿写模板: `hl-product-service-v2/.../ProductQueryService.java:243-267`
|
||||
|
||||
正在加载...
x
在新工单中引用
屏蔽一个用户