实现酒店上下文单酒店收口

This commit is contained in:
andy
2026-07-10 15:31:51 +08:00
parent 7492c21350
commit d69f3975ef
52 changed files with 1183 additions and 188 deletions

View File

@@ -31,7 +31,7 @@ Debug EML 页面第一版只做一件事:
| 区域 | 展示 / 操作 | 说明 |
| --- | --- | --- |
| 上传配置区 | `hotel_id`、Debug 上传口令、`run_label``.eml` 文件选择、提交按钮 | Debug 上传口令只能由调试人员临时输入不能写进前端源码、环境变量、localStorage 或 URL。 |
| 上传配置区 | 可选酒店覆盖、Debug 上传口令、`run_label``.eml` 文件选择、提交按钮 | Debug 上传口令只能由调试人员临时输入不能写进前端源码、环境变量、localStorage 或 URL;单酒店阶段默认不需要手填酒店。 |
| 执行状态区 | loading、成功、失败、耗时、本次 `debug_run_id` | 提交后禁用按钮,避免重复点击;失败时展示安全错误摘要。 |
| SourceMessage 追溯区 | `source_message_id``source_provider``external_message_id``external_conversation_id` | 用于确认已写入 SourceMessage Inbox。 |
| 邮件内容预览区 | `html_body_sanitized`、纯文本、附件列表、内联图片列表 | HTML 展示必须优先使用 `html_body_sanitized`。 |
@@ -59,7 +59,7 @@ Header: X-TH-Hotel-Debug-Upload-Key: <调试上传口令>
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `file` | File | 是 | `.eml` 邮件文件。前端文件选择器建议 `accept=".eml,message/rfc822"`。 |
| `hotel_id` | string | | 酒店上下文 ID本地 / test 可使用当前前端配置的 `VITE_RESERVATION_HOTEL_ID`。 |
| `hotel_id` | string | | 可选酒店上下文覆盖;缺省由后端按当前登录用户上下文或平台酒店表唯一 `ACTIVE` 酒店解析。 |
| `run_label` | string | 否 | 调试标签,例如 `frontend-debug-smoke`,方便后端日志和数据库排查。 |
前端调用示例:
@@ -67,14 +67,16 @@ Header: X-TH-Hotel-Debug-Upload-Key: <调试上传口令>
```ts
export async function uploadDebugEml(input: {
baseUrl: string
hotelId: string
hotelId?: string | null
debugUploadKey: string
file: File
runLabel?: string
}) {
const form = new FormData()
form.append('file', input.file)
form.append('hotel_id', input.hotelId)
if (input.hotelId?.trim()) {
form.append('hotel_id', input.hotelId.trim())
}
if (input.runLabel?.trim()) {
form.append('run_label', input.runLabel.trim())
}
@@ -171,7 +173,7 @@ S000/S999 解析示例:
| HTTP 状态 | `error_code` | 前端建议 |
| --- | --- | --- |
| `400` | `REQUEST_FIELD_REQUIRED` | 提示缺少必填字段,检查文件`hotel_id` 或请求参数。 |
| `400` | `REQUEST_FIELD_REQUIRED` | 提示缺少必填字段,检查文件或请求参数。 |
| `400` | `EML_FILE_REQUIRED` | 提示请选择 `.eml` 文件。 |
| `400` | `EML_FILE_TOO_LARGE` | 提示文件超过后端限制;当前默认上限通常为 10MB以环境配置为准。 |
| `400` | `INVALID_FILE_TYPE` | 提示只支持 `.eml`。 |
@@ -204,7 +206,7 @@ idle
实现建议:
- 文件未选择`hotel_id` 为空、Debug 上传口令为空时禁用提交按钮。
- 文件未选择Debug 上传口令为空时禁用提交按钮`hotel_id` 为空是允许的,表示使用后端系统酒店
- 提交后禁用文件选择和提交按钮,避免重复上传。
- SuperAgent 调用可能耗时较长,页面 loading 文案不要只写“上传中”,建议写“正在解析邮件并等待 SuperAgent 返回”。
- 成功后保留本次响应在页面内存中;当前没有 Debug run 查询接口,刷新页面后需要重新上传。
@@ -233,7 +235,7 @@ idle
前端需要具备:
- 可配置后端 `BASE_URL`
- 可配置或输入 `hotel_id`
- 可配置或输入可选 `hotel_id`;单酒店联调默认可留空
- 调试人员临时输入 Debug 上传口令。
- 准备一封 `.eml` 样例邮件。