文件
hl-api-changelog/changelogs-v2/2026-08/07_5664_派单多司机微信预览按司机分tab-新增接口-管理后台.md
T
Mimingguang 87ed9d0a3f
changelog-filename-gate / validate (push) Failing after 2s
chore(changelog): 全量清理 implemented 存量——81 条复核翻 verified + 1 条改判 not_required + #5827 补登 frontend_ref
处置明细(mmg 2026-09-18):
- 68 条机械核验通过批量翻 verified:frontend_ref 均可达且为 v2.1 祖先、
  交付文件 HEAD 均在、关联 spec 批量 58 文件 891 例全绿。
- 11 条带演进史的例外逐条核后翻 verified:3 条交付自删文件(06_5610/
  07_5655/11_5810,删除即交付内容且终态保持);8 条被后续 changelog 预期
  演进(10_5784→#5810、07_5664/08_5592→#5827、07_5665→去槽位化 U1、
  01_5380/05_5356/06_5567/06_5581→settlement 族A扁平化与 mock 清理),
  status_note 均如实记录演进链。
- 05_5552 改判 not_required:frontend_ref 自述前端无需改动,grep 实证
  vehicleFeeAmount.js 直接读后端 calendarPrice/calendarPriceMissing。
- 11_5827 frontend_ref 原空,经核交付即 753503c8(向导 4 步改 3 步提交
  即派定),补登全哈希 753503c87cc635e5646b4368a8ed506746c79cf1。
另:保险域 2 条相邻条目(05_5530/06_5593)同标准复核翻 verified。
2026-07 历史月 45 条按规则不回扫,保持原状。
2026-09-18 15:56:52 +08:00

4.0 KiB
原始文件 Blame 文件历史

schema, ticket, title, consumer, author, change_type, backend_status, gateway_status, frontend_status, frontend_owner, frontend_ref, target_release, verified_at, status_note, updated_at, base, generated
schema ticket title consumer author change_type backend_status gateway_status frontend_status frontend_owner frontend_ref target_release verified_at status_note updated_at base generated
hl-changelog/v2 5664 派单多司机时微信预览按司机分 tab(新增批量渲染端点) admin wx 新增接口 deployed verified verified mmg 91530f73 2026-09-18 后端完成:PR #5668 合并 dev-v3(d4ebd435be62cbe377ba712e8f0aed2b41e75a56)并部署 TEST,网关验证双槽位分司机渲染+单项容错+单渲染回归全通过。待前端预览区接入 render-batch 按司机分 tab。[mmg 2026-09-18 复核翻 verified] ref 91530f73 可达且为 v2.1 祖先;分 tab 预览依附的司机确认环节后经 #5827(753503c8)取消(向导 4 步改 3 步提交即派定),预览 UI 随之演进移除,render-batch 端点封装 renderMessageTemplateBatch 保留;关联 spec 批量 891 例全绿。 2026-09-18 dev-v3 2026-08-07T18:45:00+08:00

派单多司机时微信预览按司机分 tab(#5664)

需求

派单选了多个司机(多槽位)时,微信消息预览按司机分 tab 切换——每个司机一个预览(车辆/行程/链接),分别查看+发送。实证:26-6318 派 2 司机(孙晓三、斯琴)预览只有 1 个。

根因

预览端点 POST /admin/fleet/message-templates/{templateId}/render 请求 VO 只接受单个 driverId/vehicleId,多槽位只返回 1 个预览。

新增接口

POST /admin/fleet/message-templates/{templateId}/render-batch

批量渲染同一模板,多槽位按司机返回预览列表。

请求:

{
  "items": [
    {"orderId": 123, "vehicleId": 456, "driverId": 789, "assignmentGroupId": null,
     "serviceDates": null, "chargeableServiceDates": null, "vehicleFeeWaiverReason": null},
    {"orderId": 123, "vehicleId": 457, "driverId": 790}
  ]
}
  • items:1~20 项,每项 = 单槽位预览入参(字段同单渲染 render 端点)。
  • 1 项时等价单渲染(单司机场景不变,前端可继续用 render 或 render-batch 单项)。

响应:

{
  "items": [
    {"index": 0, "driverId": 789, "vehicleId": 456, "assignmentGroupId": null,
     "success": true,
     "renderedBody": "师傅您好,HL20260807... 车辆 蒙A-G8888 别克GL8 ...",
     "variablesUsed": ["driver.name", "vehicle.plate", "..."],
     "errorCode": null, "errorMessage": null},
    {"index": 1, "driverId": 790, "vehicleId": 457, "success": true, "renderedBody": "...车辆 蒙A-H7777 丰田汉兰达..."}
  ]
}
  • items 与请求同序;每项独立 success。
  • 单项渲染抛业务异常 → 该项 success=false + errorCode/errorMessage,不阻断其他槽位;单项司机/车辆取数异常沿用单渲染容错兜空口径(字段空串、仍 success=true)。
  • 模板不存在 → 整批 600801(与单渲染一致);白名单外占位符 600800。

前端交接

  1. 多槽位/多司机预览:预览区对每槽位构造一个 item(该槽位 driverId/vehicleId/assignmentGroupId/serviceDates 等),调 render-batch 一次取回全部预览,按司机/槽位分 tab 展示各项 renderedBody。
  2. 发送:按选中 tab(司机)取对应 renderedBody 发送;单项 success=false 的 tab 展示 errorMessage 并禁用发送。
  3. 单司机:1 项即可(无 tab 或单 tab),行为与现状不变;现有 render 端点保留兼容(本单未改)。
  4. tab 标签建议用司机姓名/车牌(renderedBody 内含,或前端用槽位上下文)。

验证

  • MessageTemplateRenderServiceTest 20/20(新增 4:多司机各自渲染/模板不存在 600801/单项取数异常兜空不阻断/单项业务异常 success=false 不阻断);dev-v3 全量 verify 3265/0F/0E。
  • 网关实证(TEST,change_notify 模板):双槽位 render-batch → 2 预览各自车辆正确渲染(蒙A-G8888 别克GL8 / 蒙A-H7777 丰田汉兰达);单项不存在车辆槽位兜空不阻断;单渲染 render 回归正常。