From 1f77becb704e2f43597bf739f7b734baa9ce9f05 Mon Sep 17 00:00:00 2001 From: API Changelog Bot Date: Fri, 10 Jul 2026 18:27:10 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E9=80=9A=E7=9F=A5=E5=89=8D=E7=AB=AF?= =?UTF-8?q?=E6=8E=A5=E5=85=A5=E9=85=92=E5=BA=97=E6=94=AF=E4=BB=98=E6=96=B9?= =?UTF-8?q?=E5=BC=8F=E4=B8=8E=E8=AF=A2=E6=88=BF=E8=AF=9D=E6=9C=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...˜æ–¹å¼å¿«ç…§ä¸Žè®¢æˆ¿ç¡®è®¤è¯æœ¯-å‰ç«¯å¾…处ç†-管ç†åŽå°.md | 248 ++++++++++++++++++ 1 file changed, 248 insertions(+) create mode 100644 changelogs-v2/2026-07/55_4893_酒店支付方å¼å¿«ç…§ä¸Žè®¢æˆ¿ç¡®è®¤è¯æœ¯-å‰ç«¯å¾…处ç†-管ç†åŽå°.md diff --git a/changelogs-v2/2026-07/55_4893_酒店支付方å¼å¿«ç…§ä¸Žè®¢æˆ¿ç¡®è®¤è¯æœ¯-å‰ç«¯å¾…处ç†-管ç†åŽå°.md b/changelogs-v2/2026-07/55_4893_酒店支付方å¼å¿«ç…§ä¸Žè®¢æˆ¿ç¡®è®¤è¯æœ¯-å‰ç«¯å¾…处ç†-管ç†åŽå°.md new file mode 100644 index 0000000..d4a496e --- /dev/null +++ b/changelogs-v2/2026-07/55_4893_酒店支付方å¼å¿«ç…§ä¸Žè®¢æˆ¿ç¡®è®¤è¯æœ¯-å‰ç«¯å¾…处ç†-管ç†åŽå°.md @@ -0,0 +1,248 @@ +# 酒店支付方å¼å¿«ç…§ä¸Žè®¢æˆ¿ç¡®è®¤è¯æœ¯ + +- 状æ€ï¼šfrontend-todo +- åŽç«¯å·¥å•:[wx/HL#4893](https://git.1814.love:8443/wx/HL/issues/4893) +- æœåŠ¡ï¼š`hl-resource-service`ã€`hl-order-service-v3` +- 日期:2026-07-10 +- å½±å“端:管ç†åŽå° `hl-ui-v2.1` 酒店资æºã€æˆ¿åŠ¡é€‰é…’åº—ã€é…房修改ã€å¤åˆ¶è¯¢æˆ¿è¯æœ¯ +- å‰ç«¯ä»£ç çжæ€ï¼šåŽç«¯æœ¬æ¬¡æœªä¿®æ”¹ `hl-ui`,以下项目需由å‰ç«¯æ­£å¼æŽ¥å…¥ + +## 一ã€å…³é”®ç»“论 + +| 项目 | 最新å£å¾„ | +| --- | --- | +| å‰ç«¯æ˜¾ç¤ºå | æ”¯ä»˜æ–¹å¼ | +| åŽç«¯å­—段 | 统一å¤ç”¨ `settleType` | +| å­—å…¸ | `resource_settle_type` | +| 字典值 | `cash` / `sign` / `company` | +| 删除字段 | é…’åº—åŠæˆ¿åŠ¡é“¾è·¯ä¸å†ä½¿ç”¨ `paymentMode` | +| é…æˆ¿ä¿å­˜ | `settleType` 与å议价ã€ç»“算价一样ä¿å­˜åˆ°é…房快照 | +| å†™å›žèµ„æº | åªæœ‰æ˜¾å¼ä¼  `syncSettleType=true` æ‰å†™å›žé…’店资æºï¼Œé»˜è®¤ä¸å†™å›ž | +| å¤åˆ¶åŠ¨ä½œ | 仿˜¯åŽŸâ€œå¤åˆ¶è¯¢æˆ¿è¯æœ¯â€ï¼Œä¸è¦æ–°å¢žç¬¬äºŒä¸ªâ€œè®¢æˆ¿ç¡®è®¤ä¹¦â€æŒ‰é’® | +| æ–‡æ¡ˆæ¥æº | 直接å¤åˆ¶åŽç«¯ `messageBody`,å‰ç«¯ä¸å†äºŒæ¬¡æ‹¼æŽ¥æˆ–补酒店å | + +æ”¯ä»˜æ–¹å¼æ–‡æ¡ˆæ˜ å°„: + +| `settleType` | è¯æœ¯ç¬¬ 1 行 | +| --- | --- | +| `cash` | `领队å‰å°çŽ°ä»˜ï¼Œä»·æ ¼ä¿å¯†ã€‚` | +| `sign` | `ç­¾å•,价格ä¿å¯†ã€‚` | +| `company` | `å…¬å¸ä»˜æ¬¾ï¼Œä»·æ ¼ä¿å¯†ã€‚` | + +## 二ã€é…’店资æºé…ç½® + +### æ¶‰åŠæŽ¥å£ + +| æŽ¥å£ | 方法 | å˜åŒ– | +| --- | --- | --- | +| `/admin/hotel/item` | POST | 创建请求新增 3 个é…置字段 | +| `/admin/hotel/item/{hotelId}` | GET | 详情å“应新增 3 个é…置字段 | +| `/admin/hotel/item/{hotelId}` | PUT | 更新请求新增 3 个é…置字段 | + +### 新增字段 + +| 字段 | 类型 | å¿…å¡« | 说明 | +| --- | --- | --- | --- | +| `breakfastIncluded` | Boolean | å¦ | 是å¦å«æ—©é¤ï¼›æ–°å»ºæœªä¼ æ—¶å…¼å®¹ä»Žè®¾æ–½â€œæ—©é¤â€æŽ¨æ–­ | +| `canIssueInvoice` | Boolean | å¦ | 是å¦å¯å¼€å‘票;默认 `false` | +| `bookingReplyContacts` | String | å¦ | 订房回å¤è”系人,å¯å¡«å†™å¤šäººå±•示文本,最长 255 | + +示例: + +```json +{ + "settleType": "cash", + "breakfastIncluded": true, + "canIssueInvoice": true, + "bookingReplyContacts": "哈撒尔,原景销售æŽè‹—" +} +``` + +å‰ç«¯è¦æ±‚: + +- 酒店资æºè¡¨å•继续用 `settleType`,资æºç®¡ç†é¡µé¢æ˜¾ç¤ºåå¯ä¿æŒâ€œç»“ç®—æ–¹å¼â€ã€‚ +- å¢žåŠ â€œå«æ—©é¤â€â€œå¯å¼€å‘票â€â€œè®¢æˆ¿å›žå¤è”系人â€ä¸‰ä¸ªé…置控件。 +- ä¸å†è¯»å–ã€æäº¤æˆ–å±•ç¤ºé…’åº— `paymentMode`。 +- å­˜é‡æ—©é¤å·²ç”±åŽç«¯æŒ‰è®¾æ–½åŒ…å«â€œæ—©é¤â€æˆ–é…’åº—æ ‡ç­¾â€œå«æ—©é¤â€å…¼å®¹ï¼›å‘票默认å¦ï¼›å›žå¤è”ç³»äººä¸ºç©ºæ—¶è¯æœ¯å›žé€€ `contactPerson`。 + +## ä¸‰ã€æˆ¿åŠ¡é€‰é…’åº—ä¸Žé…æˆ¿å¿«ç…§ + +### å€™é€‰ä¸Žè¯¦æƒ…è¯»å– + +| æŽ¥å£ | å“应字段 | å‰ç«¯å¤„ç† | +| --- | --- | --- | +| `GET /v3/admin/hotel-candidates` | `items[].settleType` | 选酒店弹窗“支付方å¼â€é»˜è®¤å€¼ | +| `GET /v3/admin/house/hotels` | `records[].settleType` | 房务酒店列表展示/筛选 | +| `GET /admin/house/orders/{orderId}` | `itinerary[].assignments[].settleType` | å·²ä¿å­˜é…房的支付方å¼å¿«ç…§ | + +候选ã€åˆ—表åŠè¯¦æƒ…中的 `paymentMode` 已删除,å‰ç«¯ç±»åž‹å’Œå…¼å®¹ä»£ç åŒæ­¥åˆ é™¤ã€‚ + +### æäº¤æˆ–替æ¢é…房 + +接å£ï¼š + +```http +POST /v3/admin/order/hotel-requirements/{requirementId}/assignments +``` + +`items[]` 新增: + +```json +{ + "hotelId": "200001", + "roomTypeId": "300001", + "settleType": "cash", + "syncSettleType": false +} +``` + +| 字段 | 类型 | å¿…å¡« | çº¦æŸ | 说明 | +| --- | --- | --- | --- | --- | +| `settleType` | String | å¦ | `cash/sign/company` | ä¸ä¼ æ—¶å–酒店资æºå½“å‰é…置并冻结到快照 | +| `syncSettleType` | Boolean | å¦ | 默认 `false` | `true` æ‰æŠŠæœ¬æ¬¡æ”¯ä»˜æ–¹å¼å†™å›žé…’åº—èµ„æº | + +### ä¿®æ”¹å•æ¡é…房 + +接å£ï¼š + +```http +PUT /v3/admin/order/assignments/{assignmentId} +``` + +è¯·æ±‚ä½“åŒæ ·æ”¯æŒï¼š + +```json +{ + "settleType": "sign", + "syncSettleType": true +} +``` + +äº¤äº’è¦æ±‚: + +- `PickHotelModal.vue` 增加“支付方å¼â€ï¼Œé»˜è®¤å¸¦å‡ºå€™é€‰é…’店的 `settleType`,å…许修改。 +- 选中项必须ä¿ç•™ `settleType`,æäº¤é…房时é€ä¼ ï¼Œä¸èƒ½åªä¿ç•™ä»·æ ¼å­—段。 +- 与å议价ã€ç»“算价一致,支付方å¼å†™å›žèµ„æºå¿…须由用户显å¼ç¡®è®¤ï¼›æœªç¡®è®¤ä¼  `false`。 +- ç¼–è¾‘å·²é…æˆ¿è®°å½•时,默认使用 `assignments[].settleType`;旧快照为空时å¯å›žé€€å½“å‰å€™é€‰é…’店的 `settleType`。 +- 支付方å¼ä¸åšé‡‘é¢è½¬æ¢ï¼Œä¹Ÿä¸è¦ä½¿ç”¨ `Number()`。 + +## å››ã€å¤åˆ¶è¯¢æˆ¿è¯æœ¯ + +接å£ï¼š + +```http +POST /v3/admin/order/inquiry/preview +``` + +### 已酿ˆ¿åœºæ™¯è¯·æ±‚ + +å¤åˆ¶æŒ‰é’®å½“å‰åªåœ¨â€œå·²é…房/询房中â€åŽå¯ç”¨ï¼Œå› æ­¤å¿…须把订å•å’Œé…æˆ¿ ID ä¼ ç»™åŽç«¯ï¼š + +```json +{ + "hotelId": "200001", + "orderId": "30456", + "assignmentId": "99999" +} +``` + +åŽç«¯æŒ‰ä»¥ä¸‹ä¼˜å…ˆçº§ç”Ÿæˆï¼š + +| 内容 | 优先级 | +| --- | --- | +| å›¢å· | `order.teamNo` → `order.orderNo` → `待补充` | +| æ—¥æœŸã€æˆ¿åž‹ã€é—´æ•° | é…æˆ¿å¿«ç…§ → 请求兜底字段 | +| æ”¯ä»˜æ–¹å¼ | é…æˆ¿ `settleType` å¿«ç…§ → é…’åº—èµ„æº `settleType` → `cash` | +| æ ¸æˆ¿ç”µè¯ | `roomSharePhone` → `contactPhone` → `待补充` | +| 回å¤è”系人 | `bookingReplyContacts` → `contactPerson` → `待补充` | +| 备注 | 酒店标签用 `ã€` 连接;无标签为 `æ— ` | + +### 未ä¿å­˜é…房的兼容请求 + +åªæœ‰ç¡®å®žæ‹¿ä¸åˆ° `assignmentId` 时,æ‰ä½¿ç”¨ä»¥ä¸‹å…¼å®¹å‚数: + +```json +{ + "hotelId": "200001", + "orderId": "30456", + "stayDate": "2026-08-11", + "roomCount": 2, + "roomCategory": "DOUBLE_BED" +} +``` + +æ—§å‚æ•° `nights`ã€`messageBody` ä¸å†å‚与新模æ¿ç”Ÿæˆï¼Œå‰ç«¯åº”移除。 + +### å“应与精确文案 + +```json +{ + "code": 200, + "success": true, + "data": { + "messageBody": "å‘¼ç±æ—…行 - 订房确认书:\n团å·ï¼šZK-835-260808-3563\n日期:8.11\n房型:全景大床2é—´\nå¤‡æ³¨ï¼šå«æ—©é¤ã€è‰åŽŸæ™¯è§‚\n1.领队å‰å°çŽ°ä»˜ï¼Œä»·æ ¼ä¿å¯†ã€‚\n2.嫿—©å«å‘票\n3.核房电è¯ï¼š0470-8290955\n辛苦确认åŽå›žå¤ @哈撒尔,原景销售æŽè‹—", + "contactName": "王ç»ç†", + "contactWechat": "hotel-wx" + } +} +``` + +å¤åˆ¶ç»“æžœå¿…é¡»ä¿æŒä¸ºï¼š + +```text +å‘¼ç±æ—…行 - 订房确认书: +团å·ï¼šZK-835-260808-3563 +日期:8.11 +房型:全景大床2é—´ +å¤‡æ³¨ï¼šå«æ—©é¤ã€è‰åŽŸæ™¯è§‚ +1.领队å‰å°çŽ°ä»˜ï¼Œä»·æ ¼ä¿å¯†ã€‚ +2.嫿—©å«å‘票 +3.核房电è¯ï¼š0470-8290955 +辛苦确认åŽå›žå¤ @哈撒尔,原景销售æŽè‹— +``` + +### 当å‰å‰ç«¯å¿…须修改的兼容逻辑 + +å½“å‰ `useHousekeeperInquiryCopy.js` 会在åŽç«¯æ–‡æ¡ˆä¸å«é…’åº—åæ—¶è°ƒç”¨ `buildInquiryPhrase()` 釿‹¼æ—§è¯æœ¯ã€‚新固定文案按需求本æ¥å°±ä¸åŒ…å«é…’店å,因此必须改为: + +- æˆåŠŸå“应åŽç›´æŽ¥å¤åˆ¶ `res.messageBody`。 +- ä¸å†æ£€æŸ¥æ–‡æ¡ˆæ˜¯å¦åŒ…å«é…’店å。 +- ä¸å†ç”¨ `buildInquiryPhrase()` 二次拼接。 +- ä¿ç•™çŽ°æœ‰å‰ªè´´æ¿å¤±è´¥åŽçš„“手动å¤åˆ¶è¯¢æˆ¿è¯æœ¯â€å¼¹çª—。 +- 按钮ä»å«â€œå¤åˆ¶è¯¢æˆ¿è¯æœ¯â€ï¼Œä¸è¦å¢žåŠ ç¬¬äºŒä¸ªå¤åˆ¶åŠ¨ä½œã€‚ + +## 五ã€åˆ é™¤ `paymentMode` 的影å“é¢ + +以下酒店/房务契约ä¸å†è¿”回或接收 `paymentMode`: + +| 范围 | å¤„ç† | +| --- | --- | +| 房务酒店列表请求和å“应 | 删除 `paymentMode` 筛选åŠå±•示 | +| 酒店候选å“应 | 删除 `paymentMode` | +| 酒店基础信æ¯/æ‰©å±•ä¿¡æ¯ | 删除 `paymentMode` | +| ç­¾å•与打å°è¡Œç¨‹å•é…’åº—å— | 删除 `paymentMode`,ä¿ç•™ `settleType` 中文翻译 | + +注æ„:订å•主å•çš„ `order_main.paymentMode`(`DEPOSIT/FULL`ï¼‰æ˜¯è®¢å•æ”¶æ¬¾æ¨¡å¼ï¼Œä¸Žæœ¬æ¬¡é…’店字段无关,ä¸å¾—删除或改å。 + +## å…­ã€å‰ç«¯éªŒæ”¶æ¸…å• + +| # | 验收项 | 预期 | +| --- | --- | --- | +| 1 | 酒店资æºç¼–辑 | å¯ä¿å­˜å«æ—©é¤ã€å¯å¼€å‘票ã€è®¢æˆ¿å›žå¤è”系人 | +| 2 | 选酒店弹窗 | 支付方å¼é»˜è®¤ç­‰äºŽå€™é€‰é…’店 `settleType`ï¼Œå¯æ”¹ | +| 3 | 默认ä¿å­˜ | é…æˆ¿è¯¦æƒ…回显修改åŽçš„ `settleType`,资æºé…’店ä¸å˜ | +| 4 | 显å¼åŒæ­¥ | `syncSettleType=true` åŽèµ„æºé…’店 `settleType` åŒæ­¥å˜åŒ– | +| 5 | 现付文案 | 第 1 行为“领队å‰å°çŽ°ä»˜ï¼Œä»·æ ¼ä¿å¯†ã€‚†| +| 6 | ç­¾å•æ–‡æ¡ˆ | 第 1 行为“签å•,价格ä¿å¯†ã€‚†| +| 7 | å…¬å¸ä»˜æ¬¾æ–‡æ¡ˆ | 第 1 行为“公å¸ä»˜æ¬¾ï¼Œä»·æ ¼ä¿å¯†ã€‚†| +| 8 | 电è¯å›žé€€ | 核房电è¯ä¸ºç©ºæ—¶æ˜¾ç¤ºè”ç³»äººç”µè¯ | +| 9 | è”系人回退 | 订房回å¤è”系人为空时显示酒店è”系人 | +| 10 | å¤åˆ¶å®žçް | å¤åˆ¶å†…容与åŽç«¯ `messageBody` é€å­—一致,ä¸é‡æ‹¼æ—§è¯æœ¯ | +| 11 | 删除旧字段 | 酒店/房务页é¢ä¸å†å¼•用 `paymentMode` | +| 12 | è®¢å•æ”¶æ¬¾æ¨¡å¼ | 订å•ä¸»å• `paymentMode=DEPOSIT/FULL` 仿­£å¸¸ | + +## 七ã€ä¸å½±å“范围 + +- 现有报价ã€è®¢å•创建和价格固化ä»ç»§ç»­ä½¿ç”¨å议价 `protocolPrice/protoPrice`。 +- 结算价 `settlementPrice` 的既有逻辑ä¸å˜ã€‚ +- 本次ä¸ä¿®æ”¹ `hl-ui` 代ç ï¼›ä»¥ä¸Šå‡ä¸ºæ­£å¼å‰ç«¯äº¤æŽ¥å†…容。