# 配房酒店列表 + 订单绑定优化 - 前端对接指南

> **日期**: 2026-03-19
> **后端状态**: ✅ 已完成，测试环境已部署
> **涉及模块**: 订单服务（hl-order-service）、资源服务（hl-resource-service）

---

## 一、新增接口：配房可选酒店列表

### 功能说明

管理员在配房页面选择酒店时，调用此接口获取所有启用酒店列表。**该订单产品快照中包含的酒店会标记 `inSnapshot=true` 并排在最前面**，方便管理员优先选择行程已安排的酒店。

---

### 接口定义

```
GET /admin/order/{orderId}/available-hotels
```

### 请求参数

| 参数 | 位置 | 类型 | 必填 | 说明 |
|------|------|------|------|------|
| orderId | path | Long | 是 | 订单ID |

### 响应示例

```json
{
  "code": 200,
  "message": "成功",
  "data": [
    {
      "hotelId": "2029926129876320258",
      "hotelName": "海拉尔嘉世豪酒店",
      "inSnapshot": true
    },
    {
      "hotelId": "2029926131830865921",
      "hotelName": "阿尔善国际维景度假温泉酒店",
      "inSnapshot": true
    },
    {
      "hotelId": "2029926133256929282",
      "hotelName": "阿尔山成悦大酒店",
      "inSnapshot": true
    },
    {
      "hotelId": "2023714929877450753",
      "hotelName": "呼伦贝尔香格里拉大酒店",
      "inSnapshot": false
    }
  ]
}
```

### 响应字段说明

| 字段 | 类型 | 说明 |
|------|------|------|
| hotelId | String | 酒店ID |
| hotelName | String | 酒店名称 |
| inSnapshot | Boolean | 是否在产品快照中（true=行程已安排的酒店，应优先选择） |

### 排序规则

1. `inSnapshot=true` 的酒店排在最前面
2. 同组内保持原始排序（按酒店名称）

### 使用场景

配房页面（订单详情 → 分配酒店）：
1. 调用此接口获取酒店列表
2. 展示为下拉选择或列表，`inSnapshot=true` 的酒店**特殊标注**（如加标签"行程推荐"、置顶分组等）
3. 用户选择酒店后，再调用 `GET /internal/resource/prices/room-types-by-hotel/{hotelId}` 获取该酒店的房型列表
4. 最终调用 `PUT /admin/order/{orderId}/hotel-assignment` 提交分配

---

## 二、行为变更：小程序订单列表查询优化

### 变更说明

**之前**：小程序用户只能看到 `contactPhone + contactName` 双匹配的未绑定订单（管理员创建的订单联系人姓名必须和用户 realName 完全一致才能显示）。

**现在**：改为仅 `contactPhone` 匹配。只要订单联系人手机号和用户登录手机号一致，即可在小程序看到该订单。

### 影响范围

- `GET /mp/order/list`（C端订单列表）
- 订单自动绑定逻辑（用户完善资料后自动绑定未归属订单）

### 前端无需改动

此变更为后端查询逻辑调整，前端接口调用方式不变。

---

## 三、BUG修复：订单过期任务

### 变更说明

未支付订单不再受出发日期保护，超时未支付一律自动取消。之前出发日期已过的待支付订单会被跳过，导致永远停留在"待支付"状态。

### 前端无需改动

后端定时任务逻辑调整，前端无需任何改动。
