docs(changelog-v2): 服务标准模板回显修复 PR#3484(Step5刷新后绑定不显·管理后台)

这个提交包含在:
API Changelog Bot 2026-06-05 10:44:25 +08:00
父节点 8c14545452
当前提交 24e3181976

查看文件

@ -0,0 +1,80 @@
# 【后端修复·管理后台】产品详情回显补 serviceStandardTemplateIdStep5 服务标准 tab 刷新后绑定不显)
> **PR**: #3484 | **关联工单**: 无(小 bug 修复)
> **服务**: hl-product-service-v2产品详情回显| **更新时间**: 2026-06-05
>
> **存放目录**: `changelogs-v2/2026-06/`
> **影响范围**: 管理后台「产品编辑 → 补充信息(Step5) → 服务标准」tab 的模板绑定回显
> **前端动作**: **无需改代码**,重新测试即可(前端读取逻辑本就正确)
---
## ⚠️ 关键说明
现象是「选了服务标准模板,保存后刷新页面,下拉变空、预览显示『未绑定模板』,像是没保存上」。
**实测真相**:绑定**早就保存成功**了(`product.service_standard_template_id` 在库里有值,预览接口也能返回完整模板内容)。问题在**详情回显接口漏返该字段**——保存写进去了,但编辑页重新加载时读不到,所以下拉回显不出来。
本次为纯后端修复,**接口路径/结构未变,仅在 `supplement` 段新增一个字段**,前端无破坏性变更。
---
## 1. 根因
工单 #3147 引入 `serviceStandardTemplateId`(服务标准模板绑定)时,漏改了详情回显 VO
- 保存接口 `PUT /admin/product/item/{id}/supplement` 已把它写入 **product 主表**
- 但详情接口 `GET /admin/product/item/{id}` 的响应 VO `ProductDetailRespVO.SupplementVO` **缺这个字段**(兄弟字段 `guaranteeTemplateId`/`faqTemplateId`/`safetyTemplateId` 都在,唯独漏了它)
- 前端从 `data.supplement.serviceStandardTemplateId` 读取(读取位置正确),后端不返 → 永远 `undefined` → 下拉空、预览「未绑定」
## 2. 修复
| 文件 | 改动 |
|---|---|
| `ProductDetailRespVO.SupplementVO` | 新增字段 `Long serviceStandardTemplateId` |
| `ProductQueryService.getProductDetail` | 从 product 主表显式回填进 `supplement` 段(缺 supplement 段时跳过,不回归) |
## 3. 接口响应变化(前端关注)
`GET /admin/product/item/{id}``data.supplement` 段**新增一个字段**
| 字段 | 类型 | 含义 |
|---|---|---|
| `serviceStandardTemplateId` | Long雪花,JSON 透传字符串) | 当前绑定的服务标准模板 ID;未绑定为 `null` |
请求/响应示例(测试服已验证):
```bash
curl -k "https://api.test.1814.love:9443/admin/product/item/2045345825172639746" \
-H "Authorization: Bearer {admin_token}"
```
```json
{
"code": 200,
"data": {
"supplement": {
"serviceStandardTemplateId": "2061281473171775490",
"guaranteeTemplateId": "2044407984976486401",
"...": "其余字段不变"
}
}
}
```
## 4. 前端动作
- **无需改代码**:前端 `productEdit.js` 已正确读取 `sp.serviceStandardTemplateId` 并回填到下拉,本次后端补返该字段后即自动生效。
- **请重新测试**:产品编辑页 → 补充信息 → 服务标准 → 选模板 → 保存 → **刷新页面**,下拉应保持选中、模板内容预览应正常渲染。
## 5. 关联 / 联系人
- **本次 PR**#3484(已合并 dev-v3,已部署测试服并 API 验证回显成功)
- **后端负责人**@wx
- **前端对接(管理后台)**mmg
---
## 备注(后端内部,前端无需关注)
另发现一个潜在 bug「取消绑定」下拉清空 → null因 MyBatis-Plus `updateById` 默认忽略 null 字段,清不掉旧值。改全局 `FieldStrategy` 对 partial-update 有风险,**未纳入本 PR**,后续以定向 `LambdaUpdateWrapper` 单独修。