docs(v2): 服务标准三篇 changelog 改朴素简洁版(去圈号标题/表格/多余粗体)
这个提交包含在:
@@ -1,69 +1,37 @@
|
||||
# 产品编辑 Step5「服务标准」tab —— 只读预览接口(一个接口返三块)
|
||||
# 产品 Step5 服务标准 tab 只读预览接口
|
||||
|
||||
- **端类型**:管理后台
|
||||
- **变更类型**:新增接口
|
||||
- **日期**:2026-06-03
|
||||
- **PR**:[#3377](https://git.1814.love:8443/wx/HL/pulls/3377)
|
||||
- **后端负责人**:wx
|
||||
端类型:管理后台
|
||||
日期:2026-06-03
|
||||
PR:#3377
|
||||
|
||||
---
|
||||
Step5 补充信息新增服务标准 tab,一个接口返三块(都只读、实时拉取不冻快照):当前绑定模板内容、各行程节点服务标准、各行程节点退费说明。模板的绑定(写)走 Step5 保存的 serviceStandardTemplateId(见另一篇《服务标准模板与产品关联说明》),本接口只负责只读预览。
|
||||
|
||||
## ① 背景
|
||||
## 接口
|
||||
|
||||
产品编辑 Step5「补充信息」新增「服务标准」tab,一屏内同时给运营看三块(均**只读、实时**,不冻快照):
|
||||
1. 当前绑定的服务标准模板内容
|
||||
2. 各行程节点的服务标准(来自资源 service_standard)
|
||||
3. 各行程节点的退费说明(来自资源退费说明)
|
||||
GET /admin/product/item/{id}/service-standard-preview(admin token,产品数据权限与产品详情同口径)
|
||||
|
||||
模板的**绑定(写)**走既有 Step5 保存(`serviceStandardTemplateId`,见 6-03 另一篇《服务标准模板与产品关联说明》)。本接口只负责 tab 内的**只读预览展示**。
|
||||
|
||||
---
|
||||
|
||||
## ② 新增接口
|
||||
|
||||
| 接口 | 方法 | 路径 | 鉴权 |
|
||||
|------|------|------|------|
|
||||
| 服务标准预览 | GET | `/admin/product/item/{id}/service-standard-preview` | admin token;产品数据权限(与产品详情同口径) |
|
||||
|
||||
响应 `data` 结构:
|
||||
返回 data:
|
||||
|
||||
```
|
||||
{
|
||||
"templateId": 2061281473171775490, // 当前绑定模板ID,未绑定为 null
|
||||
"template": { // 绑定模板完整内容,未绑定为 null
|
||||
"id", "name", "intro", "applicableScope",
|
||||
"sections": [ { "title", "items": [ { "title","content","remark","color","contactName","phone" } ] } ]
|
||||
},
|
||||
"nodes": [ // 行程节点的服务标准+退费说明(仅含有内容的节点;皆空的节点不返回)
|
||||
templateId, // 当前绑定模板 ID,未绑定为 null
|
||||
template, // 绑定模板完整内容(id/name/intro/applicableScope/sections[].items[6字段]),未绑定为 null
|
||||
nodes: [ // 行程节点的服务标准+退费说明,只含有内容的节点,皆空的节点不返回
|
||||
{
|
||||
"dayNumber": 2,
|
||||
"nodeName": "呼和诺尔草原旅游区",
|
||||
"nodeType": "SCENIC", // SCENIC/ACTIVITY/HOTEL/RESTAURANT...
|
||||
"serviceStandard": "……", // 资源节点服务标准,无则 null
|
||||
"refundNote": { // 退费说明,无则 null
|
||||
"intro": "……",
|
||||
"items": [
|
||||
{ "title","amount","unitLabel","settleScope","settleScopeLabel","remark","effectiveFrom","effectiveTo" }
|
||||
]
|
||||
}
|
||||
dayNumber,
|
||||
nodeName,
|
||||
nodeType, // SCENIC/ACTIVITY/HOTEL/RESTAURANT...
|
||||
serviceStandard, // 节点服务标准,无则 null
|
||||
refundNote: { intro, items:[{title,amount,unitLabel,settleScope,settleScopeLabel,remark,effectiveFrom,effectiveTo}] } // 无则 null
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
## 测试服实测(dev-v3)
|
||||
|
||||
## ③ 测试服实测(已部署 dev-v3)
|
||||
12 个产品调用全 200。模板块、退费说明块用真数据验证通过;节点服务标准块在景区/游玩项目/服务各配一条 service_standard 后,三类节点均正确返回。
|
||||
|
||||
- 12 个产品调用全 `code=200`。
|
||||
- **模板块**:产品 2056938821550747650 → `templateId=2061281473171775490`、`template` 含完整 sections,正确返回。
|
||||
- **退费说明块**:产品 2056944461216100353 → 节点「呼和诺尔草原旅游区(SCENIC)」`refundNote.items` 2 条(成人未参加/整团未到),正确返回。
|
||||
- **节点服务标准块**:当前测试库 66 个景区**均未配置 `service_standard`**,故 `serviceStandard` 现返回 null。字段链路已端到端打通(资源端已填充、本接口已映射),**运营在资源上配置 service_standard 后即自动展示**,前端无需改动。
|
||||
## 前端动作
|
||||
|
||||
---
|
||||
|
||||
## ④ 前端动作
|
||||
|
||||
- 在 Step5「服务标准」tab 调本接口渲染三块(模板内容 + 节点服务标准 + 节点退费说明),均为**只读展示**。
|
||||
- 节点列表已按天/节点顺序、过滤掉无服务标准且无退费说明的节点;`serviceStandard`/`refundNote` 可能为 null,按需隐藏。
|
||||
- 与模板**绑定**(写)配合使用:绑定走 `PUT /admin/product/item/{id}/supplement` 的 `serviceStandardTemplateId`,预览走本接口。
|
||||
在服务标准 tab 调本接口渲染三块,均只读。serviceStandard/refundNote 可能为 null,按需隐藏。绑定写走 supplement 的 serviceStandardTemplateId,预览读走本接口。
|
||||
|
||||
在新工单中引用
屏蔽一个用户