changelog(order-v3): #5751 车务管理员查看订单详情与打印行程单误拦修复
所有检测均成功
changelog-filename-gate / validate (push) Successful in 2s
所有检测均成功
changelog-filename-gate / validate (push) Successful in 2s
这个提交包含在:
父节点
f438c9bd63
当前提交
0fbd9f321b
@ -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)的订单详情/行程单功能自然恢复。
|
||||
正在加载...
x
在新工单中引用
屏蔽一个用户