hl-api-changelog/changelogs-v2/2026-06/02_3363_订单服务标准接口返回成品数据+notices加title-修改接口-管理后台.md
yaosutu 8398fd26a0 docs(changelog-v2): 订单服务标准接口返回真实成品 + notices 加 title (#3363/#3364)
GET /v3/admin/order/{id}/service-standard 由恒空改为新订单返回完整服务标准成品;
notices[] 每条新增 title 字段。管理后台端。
2026-06-02 19:55:14 +08:00

6.8 KiB

二期 v3订单详情「服务标准」Tab 接口返回真实成品数据 + notices 新增 title 字段

服务: hl-order-service-v3产品侧 hl-product-service-v2 配合改造,前端无感) : 管理后台 接口: GET /v3/admin/order/{id}/service-standard(订单详情 - 服务标准 Tab 类型: ✏️ 修改接口(出参 notices[] 新增 title 字段 + 接口由恒空改为返回真实成品) 日期: 2026-06-02 关联: Issue #3363 / PR #3364前序 #3340 建接口、#3353 改只读快照)


一句话结论

  1. 该接口此前对所有订单恒返 data: null(产品侧没生产服务标准成品)。本次产品侧补上生产端,新下单的订单会返回完整服务标准成品(标题 / 简介 / 服务承诺 / 行程 / 退费说明)。
  2. 出参 notices[](服务承诺条目)每条新增 title 字段

⚠️ 仅对部署之后新创建的订单生效。部署前的老订单仍返 null(其快照未冻入成品)。开发阶段老订单可忽略。


出参结构(完整,自包含)

data 类型 ServiceStandardVOdatanull 表示该订单无服务标准成品。

字段 类型 说明 可空
title string 标题,固定为 "出团服务标准·" + 产品名;产品名为空时退化为 "出团服务标准"
subtitle string 副标题 本期恒 null
intro string 服务标准简介 是(产品未配服务标准模板时为 null
notices NoticeItem[] 服务承诺条目(扁平,无分组) 是(无源时为空数组 []
itinerary DayVO[] 行程逐天列表 是(无行程时空数组)
refundNotes RefundNoteGroup[] 退费说明分组(按行程节点聚合) 是(无退费说明时空数组)

NoticeItem服务承诺条目

字段 类型 说明 可空
title string 本次新增。条目主文案标题(如「专业司机」)
content string 正文(如「持有 A1 驾照,8 年以上驾龄」)
remark string 备注 / 灰色二级说明
color string 文案颜色 #RRGGBB
contactName string 联系人
phone string 手机号

DayVO行程天

字段 类型 说明 可空
dayNumber integer 天序号(从 1 起)
dayTitle string 天标题(如「第一天-接机」)
remark string 当天备注 本期恒 null
itineraryNode ItineraryNode[] 当天点位列表

ItineraryNode行程点位

字段 类型 说明 可空
nodeName string 点位名称(如「呼和诺尔草原旅游区」「早餐」)
description string 点位描述
contactName string 联系人 本期恒 null
phone string 手机号 本期恒 null

RefundNoteGroup退费说明分组

字段 类型 说明 可空
sourceName string 来源点位名称(取行程节点名)
intro string 退费说明备注(如「苔藓为赠送项目,不退费」)
items RefundItem[] 退费明细列表

RefundItem退费明细条目

字段 类型 说明 可空
title string 展示标题(如「成人未参加」)
amount number 退费金额(赠送项目为 0
unitLabel string 展示文案:/人 /团 /辆
settleScope string 结算粒度枚举(见下)
settleScopeLabel string 结算粒度中文(冻结即定格)
remark string 备注
effectiveFrom string(date) 规则生效起日,null = 无限制
effectiveTo string(date) 规则生效止日,null = 无限制

枚举 / 数据字典

settleScope结算粒度

枚举值 settleScopeLabel中文 配套 unitLabel
PER_PERSON 按人 /人
PER_TEAM 按团 /团
PER_VEHICLE 按车 /辆

settleScopeLabel 在下单时随快照冻结,定格当时字典中文,资源后改不影响老订单。


请求示例

GET /v3/admin/order/2061762043987247105/service-standard
Authorization: Bearer {adminToken}

响应示例(真实,测试服 dev-v3 实测)

{
  "code": 200,
  "message": "成功",
  "success": true,
  "data": {
    "title": "出团服务标准·测试核心产品-单档-固定订金",
    "subtitle": null,
    "intro": "全程贴心服务保障",
    "notices": [
      {
        "title": "专业司机",
        "content": "持有A1驾照,8年以上驾龄",
        "remark": "仅限指定时段",
        "color": "#FF6600",
        "contactName": "李师傅",
        "phone": "13800000000"
      }
    ],
    "itinerary": [
      {
        "dayNumber": 1,
        "dayTitle": "第一天-接机",
        "remark": null,
        "itineraryNode": [
          { "nodeName": "海拉尔接机", "description": null, "contactName": null, "phone": null },
          { "nodeName": "早餐", "description": "含(酒店)", "contactName": null, "phone": null }
        ]
      }
    ],
    "refundNotes": [
      {
        "sourceName": "呼和诺尔草原旅游区",
        "intro": "苔藓为赠送项目,不退费",
        "items": [
          {
            "title": "成人未参加", "amount": 44.0, "unitLabel": "/人",
            "settleScope": "PER_PERSON", "settleScopeLabel": "按人",
            "remark": "凭票退", "effectiveFrom": null, "effectiveTo": null
          },
          {
            "title": "整团未到", "amount": 100.0, "unitLabel": "/团",
            "settleScope": "PER_TEAM", "settleScopeLabel": "按团",
            "remark": null, "effectiveFrom": null, "effectiveTo": null
          }
        ]
      }
    ]
  }
}

响应示例(老订单 / 无成品)

{ "code": 200, "message": "成功", "success": true, "data": null }

业务边界 / 注意事项

  • data: null 是合法返回,表示该订单无服务标准成品(部署前老订单 / 产品未配服务标准)。
  • intronotices 来源于产品「服务标准模板」:产品未绑模板时,intronullnotices[],但 title / itinerary / refundNotes(有各自数据源时)仍正常返回。
  • subtitleDayVO.remarkItineraryNode.contactName/phone 本期固定为 null(预留字段)。
  • 成品在下单时随产品快照整体冻结,资源 / 产品后续修改不影响已下单订单。

关联