hl-api-changelog/changelogs-v2/2026-08/09_5751_车务管理员查看订单详情与打印行程单误拦修复-修改接口-管理后台.md
2026-08-10 10:18:48 +08:00

4.5 KiB

schema, ticket, title, consumer, change_type, author, backend_status, gateway_status, frontend_status, frontend_owner, frontend_ref, target_release, verified_at, status_note, updated_at, base, generated
schema ticket title consumer change_type author backend_status gateway_status frontend_status frontend_owner frontend_ref target_release verified_at status_note updated_at base generated
hl-changelog/v2 5751 车务管理员查看订单详情/打印行程单误拦修复OrderViewGuard 读接口放行 VEHICLE_MANAGER admin 修改接口 wx(GIT) deployed verified not_required 后端完成PR #5765 已合并 dev-v3 并部署 TEST18:31 滚动 DONE。网关角色切换链路探针 ALL PASSadmin 切车务管理员后详情/行程/打印行程单/发票/支付流水/预支候选/状态日志全部 200修复前 581008;房务仍 581045、定制师非本单仍 581008。前端无需配合。 2026-08-09 dev-v3 2026-08-09T18:50:00+08:00

车务管理员查看订单详情/打印行程单误拦修复

服务: hl-order-service-v3 PR: #5765 Issue: #5751 日期: 2026-08-09 影响: 🟢 缺陷修复,无契约结构变更(角色守卫口径修正,接口/字段/错误码均不变)。前端无需改代码。

背景

#5751P1实证admin 账号切「车务管理员」VEHICLE_MANAGER角色在派单看板点「打印行程单」报 581008 无权查看此订单。#5504 读接口越权收口(#5512/#5513把订单详情/行程/打印/签单/发票/预支/支付/调整单/推送记录等读端点从「放行非房务角色」收紧为「必须本单定制师」,漏放行 VEHICLE_MANAGER——车务管理员是派车作业角色(跨订单),本就不是定制师,被误拦。

修复内容(守卫口径修正,无接口变化)

OrderViewGuard 新增 assertOrderReadable(order):放行 ADMIN/SUPER_ADMIN/VEHICLE_MANAGER,其余后台角色仍须本单定制师(否则 581008;房务ROOM_MANAGER/house_keeper_lead仍 581045。

#5504 收口的读接口全部切换至 assertOrderReadable

  • 订单详情 / 行程 / 状态日志 / 发票OrderDetailService
  • 取消预览OrderService.getCancelPreview
  • 打印行程单PrintItineraryService/ 签单预览SignVoucherService
  • 预支查询与候选OrderAdvanceService
  • 发票管理InvoiceAdminService/ 调整单AdjustmentAdminController/ 推送记录OrderPushRecordService
  • 支付流水 / 线下收款列表与选项AdminOrderPaymentController / ManualReceiptService

财务写域保持收紧(仍 assertOrderAccessible,车务管理员不得执行终止退款prepareTermination、核单settlement 全部)、收款登记写操作。

变更接口

方法 路径 变更
GET /v3/admin/order/:id详情/itinerary/print-itinerary/invoices/status-log VEHICLE_MANAGER 可访问(修复前 581008
GET /v3/admin/order/:id/advance/payee-candidates、/adjustment-record、/payment/list、推送记录等 #5504 收口读端点 VEHICLE_MANAGER 可访问
终止退款/核单/收款登记等财务写接口 不变(车务管理员仍无权)

验证证据

  • 受影响面定向测试全绿OrderViewGuardTest 16、OrderDetailServiceTest 84、OrderServiceTest 178、两控制器测试 5+6、Advance 5、Invoice 3、PushRecord 5。
  • order-v3 全量 verify 7561 tests2 Failures#5599 H2 schema 漂移,基线既有)+ 24 ErrorsTestcontainers 3306 端口争用/loadbalancer 环境,基线实证同失败),与本改动无关。
  • 部署 TEST 18:31 滚动 DONE。
  • 网关探针 ALL PASS订单 2086341233369616386车务管理员 7 个读端点全部 200;ROOM_MANAGER 仍 581045;CUSTOMIZER 非本单仍 581008越权收口不回退

前端配合

无需配合。前端调用链不变,角色权限由后端守卫恢复;车务管理员账号(当前角色 VEHICLE_MANAGER的订单详情/行程单功能自然恢复。


后续补充 (#5777 审查扫尾,2026-08-10)

审查发现同族读端点漏切一个:优惠/附加费清单 GET /v3/admin/order/{orderId}/discount-surcharge/listDiscountService.listDiscountSurcharge)此前仍走 assertOrderAccessible,车务管理员打开订单详情「优惠」Tab 会复现 581008。本次守卫切到读侧 assertOrderReadable,与支付流水/发票等读端点同口径VEHICLE_MANAGER 可读,房务/组长 581045、非本单定制师 581008 不变。定向用例 DiscountServiceAccessGuardTest 16 绿,已部署 TEST。前端无需配合。