From 0fbd9f321bdd67f1c634c88a9918076ed576a36e Mon Sep 17 00:00:00 2001 From: API Changelog Bot Date: Sun, 9 Aug 2026 18:35:19 +0800 Subject: [PATCH] =?UTF-8?q?changelog(order-v3):=20#5751=20=E8=BD=A6?= =?UTF-8?q?=E5=8A=A1=E7=AE=A1=E7=90=86=E5=91=98=E6=9F=A5=E7=9C=8B=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E8=AF=A6=E6=83=85=E4=B8=8E=E6=89=93=E5=8D=B0=E8=A1=8C?= =?UTF-8?q?=E7=A8=8B=E5=8D=95=E8=AF=AF=E6=8B=A6=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...订单详情与打印行程单误拦修复-修改接口-管理后台.md | 64 +++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 changelogs-v2/2026-08/09_5751_车务管理员查看订单详情与打印行程单误拦修复-修改接口-管理后台.md diff --git a/changelogs-v2/2026-08/09_5751_车务管理员查看订单详情与打印行程单误拦修复-修改接口-管理后台.md b/changelogs-v2/2026-08/09_5751_车务管理员查看订单详情与打印行程单误拦修复-修改接口-管理后台.md new file mode 100644 index 0000000..5ea2767 --- /dev/null +++ b/changelogs-v2/2026-08/09_5751_车务管理员查看订单详情与打印行程单误拦修复-修改接口-管理后台.md @@ -0,0 +1,64 @@ +--- +schema: "hl-changelog/v2" +ticket: "5751" +title: "车务管理员查看订单详情/打印行程单误拦修复(OrderViewGuard 读接口放行 VEHICLE_MANAGER)" +consumer: "admin" +change_type: "修改接口" +author: "wx(GIT)" +backend_status: "deployed" +gateway_status: "verified" +frontend_status: "not_required" +frontend_owner: "" +frontend_ref: "" +target_release: "" +verified_at: "" +status_note: "后端完成:PR #5765 已合并 dev-v3 并部署 TEST(18:31 滚动 DONE)。网关角色切换链路探针 ALL PASS:admin 切车务管理员后详情/行程/打印行程单/发票/支付流水/预支候选/状态日志全部 200(修复前 581008);房务仍 581045、定制师非本单仍 581008。前端无需配合。" +updated_at: "2026-08-09" +base: "dev-v3" +generated: "2026-08-09T18:50:00+08:00" +--- + +# 车务管理员查看订单详情/打印行程单误拦修复 + +> **服务**: hl-order-service-v3 +> **PR**: [#5765](https://git.1814.love:8443/wx/HL/pulls/5765) +> **Issue**: [#5751](https://git.1814.love:8443/wx/HL/issues/5751) +> **日期**: 2026-08-09 +> **影响**: 🟢 **缺陷修复**,无契约结构变更(角色守卫口径修正,接口/字段/错误码均不变)。前端无需改代码。 + +## 背景 + +#5751(P1)实证: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 tests:2 Failures(#5599 H2 schema 漂移,基线既有)+ 24 Errors(Testcontainers 3306 端口争用/loadbalancer 环境,基线实证同失败),与本改动无关。 +- 部署 TEST 18:31 滚动 DONE。 +- 网关探针 ALL PASS(订单 2086341233369616386):车务管理员 7 个读端点全部 200;ROOM_MANAGER 仍 581045;CUSTOMIZER 非本单仍 581008(越权收口不回退)。 + +## 前端配合 + +无需配合。前端调用链不变,角色权限由后端守卫恢复;车务管理员账号(当前角色 VEHICLE_MANAGER)的订单详情/行程单功能自然恢复。