文件
hl-api-changelog/changelogs-v2/2026-06/05_3489_取消绑定服务标准模板清不掉旧值修复-管理后台.md
T

2.1 KiB
原始文件 Blame 文件历史

【后端修复·管理后台】取消绑定服务标准模板清不掉旧值(updateById 忽略 null)

PR: #3489 | 关联工单: 无(PR #3484 deferred 项收口 / 工单 #3147 followup) 服务: hl-product-service-v2(Step5 补充信息保存)| 更新时间: 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