# 服务标准模板与产品的关联方式(产品编辑 Step5 补充信息)——说明补齐 - **端类型**:管理后台 - **变更类型**:说明补齐(既有功能,此前未同步给前端)+ 行为统一(私人定制不再冻结快照) - **日期**:2026-06-03 - **PR**:[#3375](https://git.1814.love:8443/wx/HL/pulls/3375)(行为统一部分) - **后端负责人**:wx --- ## ① 背景 前端反馈:**「服务标准模板怎么和产品关联」一直没有收到说明**。本文补齐这块的完整接口契约,供产品编辑 Step5「补充信息」里做「服务标准」相关 UI(绑定模板)使用。 服务标准模板(出团服务说明书)是一份**统一维护的全局模板库**;产品通过**纯引用一个模板 ID** 与之关联,不复制模板内容。 --- ## ② 关联机制(产品 ←→ 服务标准模板) | 步骤 | 接口 | 方法 | 路径 | 说明 | |------|------|------|------|------| | 取模板下拉 | 启用模板下拉 | GET | `/admin/product/service-standard-template/enabled` | 返回 `[{id, name}]`,仅 status=ENABLED | | 取模板详情(预览) | 模板详情 | GET | `/admin/product/service-standard-template/{id}` | 返回 `{id,name,intro,applicableScope,sections:[{title,items:[{title,content,remark,color,contactName,phone}]}]}` | | 取模板分页 | 模板分页 | GET | `/admin/product/service-standard-template/page?page=&pageSize=` | 列表页不下钻 sections(为 null),仅主表字段 | | **保存绑定** | Step5 补充信息保存 | PUT | `/admin/product/item/{id}/supplement` | 请求体字段 **`serviceStandardTemplateId`**(Long,可空)即为产品绑定的服务标准模板 ID | - **绑定即"纯引用"**:产品只存 `serviceStandardTemplateId`,不存模板正文。 - **回显**:产品详情/Step5 读取接口返回的 `serviceStandardTemplateId` 即当前绑定,前端据此回填下拉选中项;未绑定为 null。 --- ## ③ 展示语义(统一实时引用,私人定制不再冻快照) - **所有产品类型**(含 CORE/GROUP/CUSTOM 私人定制)C 端/订单详情的服务标准,**统一按 `serviceStandardTemplateId` 实时查模板展示**。 - 模板内容被运营修改后,**已绑定的产品实时跟随**(含私人定制)。 - 此前私人定制产品在「完成设计」时会冻结一份快照(`service_standard_snapshot`),**现已废除**(PR #3375):私人定制与普通产品行为一致,统一实时引用。**此为后端内部数据来源变化,接口结构不变,前端无需改动**。 --- ## ④ 前端动作 - 在产品编辑 Step5「补充信息」做服务标准模板的**绑定 UI**:用 `/enabled` 拉下拉、选中后把 `serviceStandardTemplateId` 随 `PUT /{id}/supplement` 提交;可用 `/{id}` 拉模板详情做选中预览。 - 回显:读 Step5 数据里的 `serviceStandardTemplateId` 回填。 - 无破坏性变更,按需接入即可。 > 说明:产品编辑页「服务标准」tab 中**只读展示行程节点服务标准/退费说明**的能力为独立后端需求,正在设计,待后端接口就绪后另发 changelog。