docs(changelog-v2): 取消绑定服务标准模板清不掉旧值修复 PR#3489(管理后台)

这个提交包含在:
API Changelog Bot 2026-06-05 11:16:23 +08:00
父节点 1a9cab348a
当前提交 9889228594

查看文件

@ -0,0 +1,45 @@
# 【后端修复·管理后台】取消绑定服务标准模板清不掉旧值updateById 忽略 null
> **PR**: #3489 | **关联工单**: 无PR #3484 deferred 项收口 / 工单 #3147 followup
> **服务**: hl-product-service-v2Step5 补充信息保存)| **更新时间**: 2026-06-05
>
> **存放目录**: `changelogs-v2/2026-06/`
> **影响范围**: 管理后台「产品编辑 → 补充信息(Step5) → 服务标准」tab 的「取消绑定」
> **前端动作**: **无需改代码**,「取消绑定」现在能真正生效,可重新测试
---
## ⚠️ 关键说明
接 PR #3484(修复绑定回显)的遗留项。现象:服务标准模板下拉**清空(取消绑定)后保存,旧绑定清不掉**,刷新仍显示原模板。
接口路径/结构未变,纯后端行为修复。
## 1. 根因
`PUT /admin/product/item/{id}/supplement` 用 MyBatis-Plus `updateById` 持久化 `serviceStandardTemplateId`,默认 `FieldStrategy.NOT_NULL` 会**忽略 null 字段**——取消绑定时该列被跳过,旧值残留。
## 2. 修复
仅在 `serviceStandardTemplateId == null`(取消绑定)时追加一次定向清列(绑定/改绑路径零改动):
- `ProductMapper.clearServiceStandardTemplateId(productId)``LambdaUpdateWrapper.set(column, null)` 显式置空(与既有 `clearApprovalFields` 同款)
## 3. 前端动作
- **无需改代码**:下拉本就 `clearable`,清空后保存即触发后端清列。
- **请重新测试**:服务标准 tab → 清空模板下拉 → 保存 → 刷新,应显示「未绑定模板」。
## 4. 验证(测试服已实测)
| 操作 | 结果 |
|---|---|
| 取消绑定templateId=null后查详情 | `supplement.serviceStandardTemplateId = null` ✅ |
| 重新绑定后查详情 | 恢复为原模板ID ✅ |
| 其余 Step5 字段(费用/人群优惠/保险等) | 完全不受影响 ✅ |
## 5. 关联 / 联系人
- **本次 PR**#3489(已合并 dev-v3,已部署测试服并 API 实测取消绑定生效)
- **前序 PR**#3484(绑定回显修复)
- **后端负责人**@wx | **前端对接(管理后台)**mmg