notices 由三档 NoticeGroupVO[] 改服务标准服务承诺条目平铺 NoticeItem[] + 新增 noticesIntro;handoverChecklist 文案对齐原型。破坏性,管理后台前端须同步。
6.5 KiB
6.5 KiB
打印行程单注意事项改用订单服务标准(平铺不分级)+ 交接清单对齐原型
接口路径:GET /v3/admin/order/{id}/print-itinerary 服务:hl-order-service-v3 PR:#4701(notices 改造)+ #4703(handover 文案)| Issue:#4700 / #4702| 前序:#4697 / #4692 / #4683 / #4650| 合并至:dev-v3 变更类型:修改接口(含破坏性变更)
1. 接口背景
打印行程单第四轮调整:注意事项区块(07)此前是后端写死三档(严禁/警示/流程标准),改为直接取订单服务标准的服务承诺条目、平铺不分级。同时交接确认清单(09)文案对齐原型。只改出参,入参不变,零 DDL。
2. 变更清单
| 类型 | 字段路径 | 变更说明 |
|---|---|---|
| 破坏性变更 | notices |
类型由 NoticeGroupVO[](三档 level/title/color/icon/items)→ ServiceStandardVO.NoticeItem[](服务承诺条目平铺 title/content/remark/color/contactName/phone) |
| 新增字段 | noticesIntro |
注意事项引言(订单服务标准 intro,如"全程贴心服务保障";无则 null) |
| 文案变更 | handoverChecklist |
5 条文案对齐原型 §09(结构不变,仍 List<String>) |
入参无变化,无 DDL,无新依赖。
3. 接口详情
- 方法:GET | 路径:
/v3/admin/order/{id}/print-itinerary| 鉴权:管理后台 JWT - 响应:
Result<PrintItineraryRespVO>
4. 入参
| 位置 | 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| Path | id |
String | 是 | 订单 ID |
本次入参无变化。
5. 出参
5.1 顶层新增/变更
| 字段 | 类型 | 说明 | 变化 |
|---|---|---|---|
noticesIntro |
String | 注意事项引言(服务标准 intro) | 新增 |
notices |
List<NoticeItem> | 注意事项条目(平铺,见 5.2) | 类型/结构变更 |
5.2 notices 元素 NoticeItem
| 字段 | 类型 | 说明 |
|---|---|---|
title |
String | 主文案 |
content |
String | 正文(可选,多为 null) |
remark |
String | 补充说明(可选) |
color |
String | 文案颜色 #RRGGBB(可选,个别条目标色,如禁自费红 #F5222D / 送站限时橙 #FF6600) |
contactName |
String | 联系人(可选,如"房务·舒馨") |
phone |
String | 联系电话(可选) |
5.3 handoverChecklist(09,文案对齐原型)
固定 5 条(List<String>,结构不变):
- 已核全程房(含入住前一天再次确认)
- 已在客户群发温馨提示 + 大交通时间
- 已确认客人接机时间、车辆清洁完毕
- 已领取签单本、备品、备用金
- 已阅读严禁 / 警示事项并签字
6. 枚举 / 数据字典
本次无枚举变更。notices 不再有 level(FORBIDDEN/WARNING/STANDARD) 分档字段。
7. 错误码
无新增错误码。服务标准取不到走降级(notices 空列表、noticesIntro null),不抛业务错误。
8. 示例
8.1 典型成功(notices 片段)
{
"noticesIntro": "全程贴心服务保障",
"notices": [
{"title": "拿到行程单第一时间核全程房(用团号确认),入住前一天晚上 8 点前再次和酒店确认。", "content": null, "remark": "没有核房造成无房按实际损失处罚。", "color": null, "contactName": "房务·舒馨", "phone": "15391131404"},
{"title": "此团禁止推荐自费项目或带进购物店,一经发现或投诉,扣除全部车费,永不录用。", "content": null, "remark": null, "color": "#F5222D", "contactName": null, "phone": null},
{"title": "不允许过早提前送机 / 送站(不得早于 2 小时)。", "content": null, "remark": null, "color": "#FF6600", "contactName": null, "phone": null}
],
"handoverChecklist": ["已核全程房(含入住前一天再次确认)", "已在客户群发温馨提示 + 大交通时间", "已确认客人接机时间、车辆清洁完毕", "已领取签单本、备品、备用金", "已阅读严禁 / 警示事项并签字"]
}
8.2 边界(服务标准未维护 / 取不到)
{ "noticesIntro": null, "notices": [] }
8.3 异常
getServiceStandard 异常 → 同边界,notices 空列表、noticesIntro null,不阻断整单。
9. 业务边界
- notices / noticesIntro 取自订单产品快照服务标准(
getServiceStandard→order_product_snapshot,下单冻结)。产品之后改了服务标准,旧订单 notices 不变。 - 条目顺序按服务标准 sections 展开顺序,前端按数组顺序渲染即可。
- 与
days[].nodes[].serviceStandard(资源级、实时)是不同来源、不同粒度,勿混。
10. 修改前后对比
| 字段 | 修改前 | 修改后 |
|---|---|---|
| notices | [{level:"FORBIDDEN", title, color, icon, items:[...]}, {WARNING...}, {STANDARD...}](三档对象数组) |
[{title, content, remark, color, contactName, phone}, ...](服务承诺条目平铺数组) |
| noticesIntro | 无 | 新增(服务标准引言) |
| handoverChecklist | 实现自拟 5 条 | 原型 §09 原文 5 条 |
11. 影响评估 / 回滚
破坏性变更(前端必须同步):
notices结构由三档NoticeGroupVO[](level/title/color/icon/items)→ 服务承诺条目NoticeItem[](title/remark/color/contactName/phone)。前端渲染从"遍历三档、每档展开 items"改为"遍历条目列表、每条展示 title + 可选 remark/color/联系人"。
新增可选:noticesIntro(区块引言)。
回滚:接口层回退到 PR #4697 版本。零 DDL,无数据迁移。
12. 注意事项
- notices 条目的
color多数为 null,个别标色(红=禁自费、橙=时限类),前端有 color 时按 color 渲染、无则默认样式。 contactName/phone个别条目有(如房务兜底),可展示为可点击电话。- handoverChecklist 仅文案变化,前端无需改结构。