changelog: 订单详情住宿已回配展示条件修正说明
这个提交包含在:
父节点
fe28a296e9
当前提交
39988e5380
@ -0,0 +1,155 @@
|
|||||||
|
# 订单详情住宿卡片「已回配」展示条件错误
|
||||||
|
|
||||||
|
> 模块:管理后台 · 订单详情 `/order-v2/detail/{orderId}` · 行程安排 · 住宿安排
|
||||||
|
> 类型:**前端修复(展示条件修正,无需新增后端接口)**
|
||||||
|
> 日期:2026-07-02
|
||||||
|
> 背景:订单详情住宿安排卡片在配房流程尚未完成时,底部酒店卡片错误显示「已回配」。实际房务工作台仍处于「配房中」,只有配房流程整体完成/最终确认后,定制师侧才应展示「已回配」。
|
||||||
|
|
||||||
|
## 问题现象
|
||||||
|
|
||||||
|
测试订单:
|
||||||
|
|
||||||
|
- 订单号:`HL20260702100458640`
|
||||||
|
- 页面:`/order-v2/detail/2072501756742242305`
|
||||||
|
|
||||||
|
当前现象:
|
||||||
|
|
||||||
|
- 订单详情住宿安排卡片底部酒店行显示「已回配」
|
||||||
|
- 但房务详情弹窗仍显示:
|
||||||
|
- `配房中`
|
||||||
|
- `配房进度 1/3` 或仍未最终确认
|
||||||
|
- 配房流程未完成
|
||||||
|
|
||||||
|
这会让定制师误以为房务已经完整回传配房方案。
|
||||||
|
|
||||||
|
## 后端当前真实状态
|
||||||
|
|
||||||
|
经测试服接口核对,后端没有返回“整单已回配”语义。
|
||||||
|
|
||||||
|
### 1. 定制师订单详情行程接口
|
||||||
|
|
||||||
|
`GET /v3/admin/order/2072501756742242305/itinerary`
|
||||||
|
|
||||||
|
关键状态:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"hotelGroup": {
|
||||||
|
"requirement": {
|
||||||
|
"status": "PROCESSING",
|
||||||
|
"claimerId": "1001",
|
||||||
|
"claimerName": "admin"
|
||||||
|
},
|
||||||
|
"assignments": [
|
||||||
|
{
|
||||||
|
"assignmentId": "2072515686428479490",
|
||||||
|
"dayNumber": 1,
|
||||||
|
"hotelName": "海拉尔嘉世豪酒店",
|
||||||
|
"roomCount": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
含义:
|
||||||
|
|
||||||
|
- `requirement.status = PROCESSING`:整单用房需求仍在处理中,不是完成态。
|
||||||
|
- `hotelGroup.assignments` 只代表已有部分已确认配房行,不能代表整单已回配。
|
||||||
|
|
||||||
|
### 2. 房务详情接口
|
||||||
|
|
||||||
|
`GET /admin/house/orders/2072501756742242305`
|
||||||
|
|
||||||
|
关键状态:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"progress": {
|
||||||
|
"houseStatus": "CLAIMING",
|
||||||
|
"houseStatusLabel": "配房中",
|
||||||
|
"currentStep": 2
|
||||||
|
},
|
||||||
|
"actions": {
|
||||||
|
"canFinalize": {
|
||||||
|
"enabled": false,
|
||||||
|
"disabledReason": "存在未闭环询问/未进入待最终确认"
|
||||||
|
},
|
||||||
|
"canReopen": {
|
||||||
|
"enabled": false,
|
||||||
|
"disabledReason": "仅已最终确认的订单可回配"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
含义:
|
||||||
|
|
||||||
|
- 房务侧权威状态仍是 `CLAIMING`。
|
||||||
|
- 还不能最终确认。
|
||||||
|
- 还不能回配/回配后修改。
|
||||||
|
|
||||||
|
## 【前端 · 管理后台】需改动
|
||||||
|
|
||||||
|
### 1. 不要用 `assignments.length > 0` 判断「已回配」
|
||||||
|
|
||||||
|
错误逻辑示例:
|
||||||
|
|
||||||
|
```ts
|
||||||
|
const isReturned = hotelGroup.assignments?.length > 0
|
||||||
|
```
|
||||||
|
|
||||||
|
这个只能说明“已有部分配房行”,不能说明“整单配房流程已完成”。
|
||||||
|
|
||||||
|
### 2. 「已回配」只能在整单完成态显示
|
||||||
|
|
||||||
|
建议判断口径:
|
||||||
|
|
||||||
|
```ts
|
||||||
|
const isHotelReturned =
|
||||||
|
hotelGroup?.requirement?.status === 'DONE'
|
||||||
|
```
|
||||||
|
|
||||||
|
如果当前页面可拿到订单主流程/房控状态,也可以等价使用完成态字段:
|
||||||
|
|
||||||
|
```ts
|
||||||
|
const isHotelReturned =
|
||||||
|
order?.roomControlStatus === 'DONE' ||
|
||||||
|
hotelGroup?.requirement?.status === 'DONE'
|
||||||
|
```
|
||||||
|
|
||||||
|
但不要用单条酒店分配记录存在与否来判断。
|
||||||
|
|
||||||
|
### 3. 未完成时的展示建议
|
||||||
|
|
||||||
|
| 状态 | 展示 |
|
||||||
|
|------|------|
|
||||||
|
| `requirement.status = PENDING` | 待配房 / 待房务抢单 |
|
||||||
|
| `requirement.status = PROCESSING` | 配房处理中 |
|
||||||
|
| 存在部分 `assignments` 但 `status=PROCESSING` | 可展示已配房行,但标签应为「配房中」或「部分已配」,不能显示「已回配」 |
|
||||||
|
| `requirement.status = DONE` | 才显示「已回配」 |
|
||||||
|
|
||||||
|
### 4. 「查看已配房」按钮不等于「已回配」
|
||||||
|
|
||||||
|
如果存在 `hotelGroup.assignments`,可以展示「查看已配房」按钮或部分已配酒店卡片。
|
||||||
|
|
||||||
|
但酒店卡片右侧状态标签必须跟整单/需求状态区分:
|
||||||
|
|
||||||
|
- 有已配房行:可以显示「已配房」或「已确认」
|
||||||
|
- 整单流程完成:才显示「已回配」
|
||||||
|
|
||||||
|
## 验收标准
|
||||||
|
|
||||||
|
| 场景 | 期望 |
|
||||||
|
|------|------|
|
||||||
|
| `requirement.status=PROCESSING` 且只有部分配房行 | 不显示「已回配」,显示「配房处理中」/「部分已配」 |
|
||||||
|
| 房务弹窗仍在 `CLAIMING/配房中` | 定制师订单详情不得显示「已回配」 |
|
||||||
|
| `requirement.status=DONE` / `roomControlStatus=DONE` | 才允许显示「已回配」 |
|
||||||
|
| 点击「查看已配房」 | 可以看到已有配房行,但不改变整单回配状态判断 |
|
||||||
|
|
||||||
|
## 影响范围
|
||||||
|
|
||||||
|
| 页面 | 修复点 |
|
||||||
|
|------|--------|
|
||||||
|
| `/order-v2/detail/{orderId}` 行程安排 Tab | 住宿安排卡片底部酒店行状态标签 |
|
||||||
|
| 房务详情弹窗 | 无需改动,当前后端状态已正确返回 `CLAIMING/配房中` |
|
||||||
正在加载...
x
在新工单中引用
屏蔽一个用户