ProductQueryService.enrichCreatedByName 与主题列表 ProductLineService 对齐: 优先 wechatName, fallback username。前端契约不变, 无需改前端代码。 测试服 54 条记录全量回扫: - 10 个 unique createdBy: 8 个解析为企微中文名 (lixiaosong→小松/wangxiao→王骁/jiangyulian→蒋雨莲/mimingguang→米明光/xulai→徐莱), 2 个 fallback username (admin/test_admin 未绑企微) - 0 条 createdByName=null @mmg Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
这个提交包含在:
父节点
8a2fdb250c
当前提交
8ef595e115
@ -0,0 +1,95 @@
|
||||
---
|
||||
date: 2026-05-13
|
||||
type: backend-improvement
|
||||
service: hl-product-service-v2
|
||||
priority: low
|
||||
notify: ["@mmg"]
|
||||
status: verified
|
||||
---
|
||||
|
||||
# 产品版本列表「创建人」显示企业微信中文名(与主题列表对齐)
|
||||
|
||||
> **PR**: [#2218](https://git.1814.love:8443/wx/HL/pulls/2218) — 已合并 dev + 部署测试服
|
||||
> **Issue**: [#2217](https://git.1814.love:8443/wx/HL/issues/2217)
|
||||
> **状态**: ✅ **测试服已验证** (api.test.1814.love:9443) — 真 admin token / 网关 / 54 条记录全量回扫通过
|
||||
|
||||
---
|
||||
|
||||
## 一、背景
|
||||
|
||||
`hl-ui` 管理端「产品列表」(即产品版本列表)「创建人」列原本展示**登录账号**(`admin_user.username`,如 `lixiaosong` / `wangxiao`),与同模块「主题列表」(产品线列表)已经在用的**企业微信中文名**(如「小松」「王骁」)不一致,需要对齐。
|
||||
|
||||
根因(之前老接口逻辑):`ProductQueryService.enrichCreatedByName` 拿 `Map<Long, String>` 只取 `username`。
|
||||
修复(PR #2218 与主题列表 `ProductLineService` 对齐):改为 `Map<Long, AdminBasicDTO>`,set 时 `StrUtil.blankToDefault(dto.getWechatName(), dto.getUsername())` — **优先用 wechatName(企微中文名),没绑定企微时 fallback username**。
|
||||
|
||||
仅 1 文件 +12/-3 行:`hl-product-service-v2/src/main/java/com/hulalv/service/admin/ProductQueryService.java`。
|
||||
|
||||
---
|
||||
|
||||
## 二、变更接口清单
|
||||
|
||||
| # | 接口 | 方法 | 路径 | 变更类型 | 说明 |
|
||||
|---|------|------|------|----------|------|
|
||||
| 1 | 产品分页列表 | GET | `/admin/product/item/list` | 字段值优化 | `data.records[].createdByName` 由 username → wechatName(fallback username) |
|
||||
|
||||
**前端契约 100% 不变**:
|
||||
- 字段名 `createdByName` 不变
|
||||
- 字段类型 String 不变
|
||||
- 字段位置在 `data.records[]` 不变
|
||||
- 不为 null(要么中文要么 username)
|
||||
|
||||
**前端无需改任何代码** —— 字段值天然变好,渲染层零感知。
|
||||
|
||||
---
|
||||
|
||||
## 三、字段语义
|
||||
|
||||
| 字段 | 改前 | 改后 |
|
||||
|------|------|------|
|
||||
| `createdByName` | `admin_user.username`(如 `lixiaosong`) | `admin_user.wechat_name`(如「小松」),无 wechatName 时 fallback `username` |
|
||||
|
||||
---
|
||||
|
||||
## 四、测试服验证(硬性凭证)
|
||||
|
||||
`GET /admin/product/item/list?page=1&pageSize=200`,Bearer admin token(`admin` / `Admin@123456`),公网网关 `api.test.1814.love:9443`:
|
||||
|
||||
- HTTP 200 / code=200 / total=54
|
||||
- **0 条 createdByName=null**(铁律:要么中文要么 username)
|
||||
- **10 个不同 createdBy 中,8 个解析为企微中文名**,2 个 fallback username(admin、test_admin 这两个测试账号未绑定企微)
|
||||
|
||||
部分映射证据(按用户截图最关心的 lixiaosong 优先列出):
|
||||
|
||||
| createdBy | createdByName | 出处 |
|
||||
|---|---|---|
|
||||
| `2033349910786715649` (username=`lixiaosong`) | **`小松`** ✅(用户截图里 `D260511001` 同账号的版本) | wechatName 生效,与主题列表一致 |
|
||||
| `2021059720172838914` (username=`wangxiao`) | **`王骁`** ✅ | wechatName 生效 |
|
||||
| `2046065465288949761` (username=`jiangyulian`) | **`蒋雨莲`** ✅ | wechatName 生效 |
|
||||
| `2027579942221352962` (username=`mimingguang`) | **`米明光`** ✅ | wechatName 生效 |
|
||||
| `2033350005166944258` (username=`xulai`) | **`徐莱`** ✅ | wechatName 生效 |
|
||||
| `1001` | `admin` | 无 wechatName,fallback username(符合预期) |
|
||||
| `1002` | `test_admin` | 无 wechatName,fallback username(符合预期) |
|
||||
|
||||
lixiaosong 实测明细(用户截图里 lixiaosong 创建的版本现在显示什么):
|
||||
|
||||
```
|
||||
productId=2052568716926681090 productNo=D260508001 name=燕 私人订制 createdByName=小松
|
||||
productId=2049468625294708737 productNo=D260429001 name=私人订制 9天8晚... createdByName=小松
|
||||
productId=2046109281911996418 productNo=C260420004 name=1111 出生地点... createdByName=小松
|
||||
```
|
||||
|
||||
3/3 都已展示「小松」(企微中文名),改造前会全部展示 `lixiaosong`。
|
||||
|
||||
---
|
||||
|
||||
## 五、部署
|
||||
|
||||
- 测试服 SSH rolling 部署完成(hl-product-service-v2: 8083 + 8183 双实例 ~30s,零停机)
|
||||
- Nacos `test` namespace 两实例 healthy=true 已确认
|
||||
|
||||
---
|
||||
|
||||
## 六、风险与回滚
|
||||
|
||||
- 风险极低:仅展示字段值优化,无 schema 变更、无前端契约变化、无业务逻辑改动
|
||||
- 回滚:reverse PR #2218 即可(1 文件 -12/+3)
|
||||
正在加载...
x
在新工单中引用
屏蔽一个用户