# 抢单池紧急度 + 配房选酒店默认不锁城市 + 站内信消息类型筛选

> 变更类型：✨ 新增能力 ×2 + 🔧 修复 ×1（后端，**前端需配合：抢单池标签/加急按钮、候选标签、站内信类型Tab**）
> 端类型：管理后台（房务管家·抢单池/配房选酒店 / 站内信收件箱 / 订单详情定制师侧）
> 日期：2026-06-24 ｜ 工单：#4341 #4345 #4347 ｜ PR：#4342 #4346 #4348 ｜ 服务：hl-order-service-v3 / hl-resource-service / hl-user-service（均已部署 health UP，测试服实测通过）

---

## 一、抢单池紧急度（#4342，前端需配合渲染）

### 1. 自动紧急度（按出发日临近，后端派生）
抢单池列表项 `GET /v3/admin/order/hotel-requirements`(抢单池) 每条新增：
- `urgencyLevel`：`CRITICAL`(特急) / `URGENT`(紧急) / `NORMAL`(正常)。规则：出发日距今 **≤3天=特急(红)、≤7天=紧急(橙)、其余正常**；已过出发日也算特急。
- `urgencyLabel`：中文（特急/紧急/正常）。
- `daysToDepart`：距出发剩余天数（负=已过）。
- **前端**：按 `urgencyLevel` 渲染颜色/标签（特急红/紧急橙）。默认排序已「紧急优先」。

### 2. 定制师手动加急（新增端点）
订单详情定制师侧加「加急」按钮：
- 加急：`POST /v3/admin/order/hotel-requirement/{requirementId}/urgent`
- 取消加急：`POST /v3/admin/order/hotel-requirement/{requirementId}/urgent/cancel`
- 权限：该订单定制师本人 或 超管（非本单定制师返 582084）。
- 抢单池列表项新增 `manualUrgent`(bool)：手动加急的单**置顶**（优先级高于自动紧急度），前端显示「加急」标签。
- **前端**：订单详情加「加急/取消加急」按钮（已加急显示取消）；抢单池 `manualUrgent=true` 显示加急标签+置顶。

---

## 二、配房选酒店默认不锁城市（#4346，修复，前端一般无需改）
配房页「选择酒店」候选 `GET /v3/admin/hotel-candidates`：那晚行程取不到城市（如第2/3晚行程无城市）时原**返空**、看不到酒店。现修复：
- city 取不到时**不返空**，改按「池内酒店 ∪ 定制师点名酒店」展示（不依赖城市）。
- city 非空时：城市酒店 + 补全外城的池内/定制师点名酒店（定制师点的外城酒店也可见）。
- **排序**：定制师点名 > 池内 > 普通（带 `isConsultantRecommended` / `isPoolMatch` 标签，前端已有字段）。
- **前端**：候选列表渲染 `isPoolMatch`(池内)/`isConsultantRecommended`(定制师需求)/`tags` 标签即可（字段早已返回）。
- 实测：第2/3晚由 0 条 → 返非空候选，top 为池内酒店。

---

## 三、站内信消息类型筛选（#4348，前端需配合 Tab）
站内信收件箱 `GET /admin/message/list` 新增入参 `messageType`：
- `ORDER`=只看订单消息 / `NORMAL`=只看普通消息 / 留空=全部。
- 后端按派生口径下推 SQL 过滤，分页 total 准确、ORDER+NORMAL 两类互补=全集。
- **前端**：站内信列表加「订单消息 / 普通消息」类型 Tab，切换传 `messageType`。
- 说明：当前内部员工站内信多为系统/自定义推送（派生普通消息），**订单类型消息的数据源（订单事件给内部员工发站内信）后续单独接入**——本次先提供筛选能力。

---

## 验证说明（如实·实测）
- ✅ 抢单池 item 返 urgencyLevel/urgencyLabel/daysToDepart/manualUrgent；加急/取消接口 + 非本单定制师 582084。
- ✅ 配房候选第2/3晚（city=None）由 0 条 → 返非空（池内酒店置顶）；第1晚 10 条不回归。
- ✅ 站内信 messageType=ORDER/NORMAL/空 三态筛选正确（total 准确、互补）。
