From eddc646c0885bb5dbd9c68a4c8afbaf667d7a848 Mon Sep 17 00:00:00 2001 From: wx Date: Thu, 28 May 2026 13:44:35 +0800 Subject: [PATCH] =?UTF-8?q?docs(changelog-v2):=20=E6=88=BF=E5=8A=A1?= =?UTF-8?q?=E7=AE=A1=E5=AE=B6=E9=85=8D=E6=88=BF/=E9=85=92=E5=BA=97/?= =?UTF-8?q?=E5=91=98=E5=B7=A5/=E5=9F=8E=E5=B8=82=E6=8E=A5=E9=80=9A?= =?UTF-8?q?=E7=9C=9F=E5=AE=9E=E6=95=B0=E6=8D=AE+=E6=88=BF=E9=97=B4?= =?UTF-8?q?=E5=88=86=E9=85=8D=E5=86=99=E7=AB=AF=E7=82=B9=20(#3152/#3153/#3?= =?UTF-8?q?154/#3176/#3178)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...˜å·¥åŸŽå¸‚真实化+房间分é…写端点_PR3152-3154-3176-3178.md | 87 +++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 changelogs-v2/2026-05/28_HOUSE批é‡_æˆ¿åŠ¡ç®¡å®¶é…æˆ¿é…’店员工城市真实化+房间分é…写端点_PR3152-3154-3176-3178.md diff --git a/changelogs-v2/2026-05/28_HOUSE批é‡_æˆ¿åŠ¡ç®¡å®¶é…æˆ¿é…’店员工城市真实化+房间分é…写端点_PR3152-3154-3176-3178.md b/changelogs-v2/2026-05/28_HOUSE批é‡_æˆ¿åŠ¡ç®¡å®¶é…æˆ¿é…’店员工城市真实化+房间分é…写端点_PR3152-3154-3176-3178.md new file mode 100644 index 0000000..343f09e --- /dev/null +++ b/changelogs-v2/2026-05/28_HOUSE批é‡_æˆ¿åŠ¡ç®¡å®¶é…æˆ¿é…’店员工城市真实化+房间分é…写端点_PR3152-3154-3176-3178.md @@ -0,0 +1,87 @@ +# 二期 v3 æˆ¿åŠ¡ç®¡å®¶ï¼šé…æˆ¿/酒店/员工/åŸŽå¸‚ç­‰æŽ¥å£æŽ¥é€šçœŸå®žæ•°æ® + 新增房间分é…写端点 + +> **æœåŠ¡**: hl-order-service-v3(+ resource / user-service 内部接å£ï¼‰ +> **PR**: #3152ã€#3153ã€#3154ã€#3176ã€#3178 +> **Issue**: #3148ã€#3149ã€#3150ã€#3156ã€#3172ã€#3177 +> **日期**: 2026-05-28 +> **å½±å“**: 🟡 房务管家(HOUSE)一批此å‰è¿”空/null/桩的接å£å·²æŽ¥é€šçœŸå®žæ•°æ®ï¼›æ–°å¢ž"房间分é…写"端点;å‡å·²æµ‹è¯•æœåŒå®žä¾‹éƒ¨ç½² + çœŸæœºéªŒè¯ + +--- + +## âš ï¸ æ€»è§ˆï¼ˆå‰ç«¯ mmg 必读) + +æˆ¿åŠ¡ç®¡å®¶ç›¸å…³æŽ¥å£æ­¤å‰å¤šå¤„å› ä¾èµ–未è½åœ°è€Œè¿”「空列表 / null 字段 / å ä½ã€ã€‚现已跨 order-v3 / resource / user-service 三æœåŠ¡æŽ¥é€šçœŸå®žé€»è¾‘å¹¶çœŸæœºéªŒè¯ã€‚**接å£è·¯å¾„ã€å­—段结构å‡ä¸å˜**ï¼Œåªæ˜¯**字段从空/å ä½å˜ä¸ºçœŸå®žå€¼**,å‰ç«¯å¯æ®æ­¤æŠŠå¯¹åº” UI ç”±"空状æ€"切到真实渲染。é€é¡¹å¦‚下。 + +--- + +## 1. 新增:房间分é…写端点(§2.5)— PR #3152 + +æ­¤å‰åªæœ‰ `GET .../rooms`(按家庭分组查),**没有写入端点**ï¼Œå¯¼è‡´é€æ—¥ `assignments` æ’空。现补: + +``` +POST /v3/admin/order/assignments/{assignmentId}/rooms +``` +- 幂等 + 分布å¼é”ä¿æŠ¤ï¼ˆé‡å¤æäº¤å®‰å…¨ï¼‰ +- 请求体: +```jsonc +{ + "rooms": [ + { + "roomGroupNo": "F1", // 家庭/æˆ¿é—´ç»„å· + "travelerCount": 2, // 该房入ä½äººæ•° + "travelerNames": "张三,æŽå››", // å…¥ä½äººå§“å(逗å·åˆ†éš”) + "bedType": "double", // 床型 + "remark": "å¯é€‰å¤‡æ³¨" + } + ] +} +``` +- 返回 `{ successCount, items:[{id, roomGroupNo, bedType, travelerCount}] }` +- å†™å…¥åŽ `GET /v3/admin/order/orders/{orderId}/rooms` çš„é€æ—¥ `assignments` å³éžç©ºï¼ˆå«åºŠåž‹/人数明细) + +--- + +## 2. 酒店列表 / 详情接通真实数æ®ï¼ˆÂ§6.1 / §6.2)— PR #3153 + +`GET /v3/admin/house/hotels`(列表)与 `GET /v3/admin/house/hotels/{hotelId}`(详情 4 Tab)此å‰èµ° Fallback 返空,现接 resource 真实主数æ®ï¼š + +- **§6.1 列表**:返真实酒店(测试库 39 家),字段 `city/cityName/level/settleType/paymentMode/protoPrice/roomTypes/status` ç­‰é½å…¨ + - `settleType` å­—å…¸ `hotel_settle_type`:`cash` 现付 / `sign` ç­¾å• / `company` å…¬å¸ä»˜æ¬¾ + - `paymentMode` å­—å…¸ `hotel_payment_mode`:`prepay` 预付款 / `cash` 现结 / `monthly` 月结 +- **§6.2 详情**:`basic`(基础信æ¯ï¼‰/ `roomTypes`ï¼ˆæˆ¿åž‹ï¼Œå« `protoPrice` + `facilities` 设施数组)/ `priceCalendar30d`ï¼ˆæœªæ¥ 30 天价格日历)/ `recentCheckLog`(核房记录)四 Tab å‡è¿”çœŸå®žæ•°æ® + +> 注:测试库酒店主数æ®å·²å›žå¡«ï¼ˆç»“ç®—/付款/å议价/房型价格),便于è”调;正å¼çŽ¯å¢ƒä»¥ resource 实际维护的数æ®ä¸ºå‡†ã€‚ + +--- + +## 3. 转å•候选员工接通(§6.6)— PR #3154 + #3178 + +`GET /v3/admin/house/staff` æ­¤å‰ user-service 无对应接å£è¿”空,现接通: + +- user-service 新增房务员工接å£ï¼ŒæŒ‰**房务角色**筛选:`house_keeper`(房务) / `house_lead`(房务组长) +- 返回 `{ list:[{ userId, name, avatar, online, superAdmin, activeCount }], total }` +- **`activeCount`ï¼ˆåœ¨è·Ÿè®¢å•æ•°ï¼‰å£å¾„**(#3178 修正):为该员工**当å‰ä»æŒæœ‰çš„æ´»è·ƒé…房需求数**(精确å£å¾„),ä¸å†æ˜¯åŽ†å² CLAIM 次数近似 —— 转å•选人时的负载/上é™åˆ¤æ–­æ›´å‡†ç¡® + +--- + +## 4. 行程城市接通(§1.5 / §2.0)— PR #3176 + +æ­¤å‰ `cities` / `days[].city` æ’为 null。现按å„å¤©é…’åº—åæŸ¥åŸŽå¸‚接通: + +- **§1.5 我的接å•** `GET /v3/admin/order/grab-pool/my-claims/hotel`:列表项 `cities` 返该å•**行程去é‡åŸŽå¸‚数组**(如 `["呼伦è´å°”市","兴安盟"]`) +- **§2.0 订å•详情** `GET /admin/house/orders/{orderId}`:`requirement.current.days[].city` åŠè¡Œç¨‹æ—¥åކ `itinerary[].cityCode/cityName` è¿”**中文城市å** +- æ•°æ®ç¼ºå¤±ï¼ˆé…’店未维护城市 / 查询é™çº§ï¼‰æ—¶è¯¥å­—段如实 nullï¼Œä¸æŠ¥é”™ + +--- + +## 5. è½¬å•æŽ¥æ”¶äººå§“å真实化(§1.3)— PR #3178 + +转å•åŽå½’属人姓å(`claimer_name`ï¼Œä½“çŽ°åœ¨æˆ‘çš„æŽ¥å• / 详情归属人)此å‰ä¸ºå ä½ `user-{id}`,现解æžä¸º**真实员工姓å**ï¼ˆç»æˆ¿åŠ¡å‘˜å·¥æŽ¥å£å查;查ä¸åˆ°æ—¶é€€å›ž `user-{id}` 兜底,ä¸å½±å“è½¬å•æˆåŠŸï¼‰ã€‚ + +--- + +## éªŒè¯ + +以上全部已åˆå¹¶ dev-v3 + 测试æœåŒå®žä¾‹æ»šåŠ¨éƒ¨ç½²ï¼Œå¹¶ç»çœŸæœºï¼ˆçœŸ admin token,过网关 9443/本地 8080)验è¯ï¼šæˆ¿é—´åˆ†é…写→查 assignments éžç©ºã€é…’店列表/详情字段é½å…¨ã€å‘˜å·¥åˆ—表真实ã€cities/city 中文城市ã€è½¬å•åŽ claimer_name 为真å。无接å£è·¯å¾„/å­—æ®µç»“æž„å˜æ›´ï¼Œå‰ç«¯æŒ‰ä¸Šè¿°æŠŠå¯¹åº” UI 从空æ€åˆ‡çœŸå®žæ¸²æŸ“å³å¯ã€‚ + +如需任一接å£çš„完整å“应样例,或字段有疑问,回我å³å¯ã€‚