hl-api-changelog/changelogs/2026-04/2026-04-20_order-v2_pre-trip-checklist.md

4.6 KiB

TripDetailVO 扩出发准备清单字段 — 2026-04-20

服务 hl-order-service-v2端口 8094· 类型 feat · 关联 Issue #1024 / PR #1025 前端调用路径: 网关(8080) → hl-mp-service(8085) → hl-order-service-v2(8094) 前端实际请求前缀: GET /mp/trip/{orderId}无新接口,扩字段)


一、能力概述

补齐原型 ew2Kk 出发准备页的 prepSec 清单区块。其余数据(倒计时 / 带队团队 / 行程概览 / 合同保险状态)已经在 TripDetailVO 中。

⚠️ 无新接口:扩现有 GET /mp/trip/{orderId} 的返回体,在 TripDetailVO 加一个字段 preTripChecklist

触发条件 行为
tripPhase == "BEFORE_START" preTripChecklist 填充 6 项清单
tripPhase == "IN_PROGRESS" preTripChecklistnull
tripPhase == "ENDED" preTripChecklistnull

二、接口清单

无新接口。使用现有:

方法 路径 变化
GET /mp/trip/{orderId} 返回体新增 preTripChecklist 字段

三、新增字段结构(PreTripChecklistVO

{
  "preTripChecklist": {
    "completedCount": 3,     // 已完成项数
    "totalCount": 6,         // 总项数
    "items": [
      {
        "key": "CONTRACT_SIGN",        // 项 key
        "title": "签署旅行合同",        // 标题
        "subtitle": "合同已准备,请尽快签署",  // 副标题
        "status": "WARNING",            // DONE / PENDING / WARNING
        "statusLabel": "紧急",
        "actionType": "NAVIGATE",       // NAVIGATE / CONFIRM / CONTACT_CS / null
        "actionPayload": {              // 前端按 actionType 解析
          "pageKey": "contract_sign",
          "orderId": "1000",
          "contractId": "9001"
        }
      },
      {
        "key": "DEPOSIT_PAID",
        "title": "订金已支付",
        "subtitle": "¥2000 已支付",
        "status": "DONE",
        "statusLabel": "已完成",
        "actionType": null,
        "actionPayload": null
      }
      // ...共 6 项
    ]
  }
}

四、清单 6 项 + 状态规则

Key 标题 DONE 条件 WARNING 条件 其他→PENDING
DEPOSIT_PAID 订金/全款支付 paidAmount >= 应付FULL→totalPrice / DEPOSIT→depositAmount 金额不足
TRAVELER_INFO 出行人完整度 validateTravelers.isComplete=true 有出行人信息缺失 人数不够
ARRIVAL_INFO 接送机信息 arrivals 和 departures 都有 缺任一方向
CONTRACT_SIGN 合同签署 contract.status=SIGNED PREPARING / UNSIGNED 无合同
INSURANCE 保险承保 insurance.status=INSURED FAILED PENDING / 无保险
CHECKLIST_CONFIRMED 出行清单确认 OrderInfo.checklistConfirmed=true 未确认

actionType 语义

前端应做
NAVIGATE 跳转小程序页面(按 actionPayload.pageKey 映射)
CONFIRM 弹确认对话框(如"确认出行清单"
CONTACT_CS 打开客服会话
null 不可操作DONE 状态)

pageKey 映射建议(前端维护)

pageKey 小程序路径
order_pay 支付页
traveler_list 出行人列表
arrival_form 到达信息表单
contract_sign 合同签署
checklist_confirm 清单确认

排序规则

后端已按 WARNING > PENDING > DONE 排序(紧急项靠前),前端直接渲染即可。


五、示例

BEFORE_START 阶段完整响应(节选)

{
  "code": 200,
  "data": {
    "orderId": "1000",
    "tripPhase": "BEFORE_START",
    "countdownDays": 12,
    "departureDate": "2026-07-01",
    "productName": "草原环线体验",
    "guideName": "巴图",              // 带队团队
    "guidePhone": "138****5678",
    "itinerarySummary": [...],         // 行程概览
    "contracts": [...],
    "insurances": [...],
    "preTripChecklist": {              // ← 新增字段
      "completedCount": 3,
      "totalCount": 6,
      "items": [...]
    }
  }
}

IN_PROGRESS 阶段响应

{
  "code": 200,
  "data": {
    "orderId": "1000",
    "tripPhase": "IN_PROGRESS",
    "todayDayNumber": 3,
    "todayTitle": "莫日格勒河 → 额尔古纳",
    "preTripChecklist": null          // ← 非 BEFORE_START 阶段为 null
  }
}

六、关联