2.6 KiB
2.6 KiB
配房「选择酒店」候选列表:后端返回全集 + 已排序,前端需全量渲染(接口说明·后端无改动)
变更类型:📖 接口使用说明(后端无改动;澄清前端渲染缺陷) 端类型:管理后台(配房·「选择酒店」弹窗) 日期:2026-06-24 | 服务:hl-order-service-v3 | 接口:
GET /v3/admin/hotel-candidates
⚠️ 关键说明(定位为前端渲染 bug)
- 现象:配房「选择酒店」弹窗显示「共 N 条」,列表却只渲染 1 行(只剩池内/带标签那家),城市内其余酒店没显示。
- 定位:后端无问题。
GET /v3/admin/hotel-candidates实测返回城市内全部酒店(测试服订单 2069593503129636865 第 1 晚返 10 条),且已按「定制师点名 > 产品池内 > 普通」排好序(池内的海拉尔海棠排第 1)。 - 根因:该接口 RespVO 没有 total / 分页字段,只有
candidates完整数组。前端「共 N 条」=candidates.length,即前端已收到全部 N 条,却只渲染了 1 行(疑似误按isPoolMatch / isConsultantRecommended = true过滤,把普通酒店漏掉)。 - 前端动作:全量顺序渲染
candidates数组,不要按标签过滤。后端已排好序,带标签的天然在最前,普通酒店在后。
1. 接口出参(关键字段,本次无变更)
GET /v3/admin/hotel-candidates → data.candidates[](完整数组,无分页,默认上限 limit=10,可传 limit 上调,≤50):
| 字段 | 类型 | 说明 |
|---|---|---|
hotelName |
String | 酒店名 |
protoPrice |
String(BigDecimal) | 协议价 |
matchedRoomTypeLabel / matchedRoomTypeAvailable |
String / Integer | 匹配房型 / 可用房 |
isPoolMatch |
Boolean | 是否产品池内(前端标签「产品池内」) |
isConsultantRecommended |
Boolean | 是否定制师点名(前端标签「定制师推荐」) |
tags |
List<String> | 运营标签(草原景观 / 含早餐 / 性价比高 等) |
recommendSource / score |
String / Double | 推荐来源 / 排序分(后端已据此排序,前端勿重排,按返回顺序渲染即可) |
2. 测试服实测(order 2069593503129636865 第 1 晚)
返回 10 条:海拉尔海棠(isPoolMatch=true,第 1)+ 呼伦贝尔香格里拉 / 海拉尔嘉世豪 / 恩和瓦西里民宿 / 额尔古纳白桦 / 满洲里凯旋 / 额尔古纳豪星 / 海拉尔首旅京伦 / 额尔古纳玖成万豪 / 黑山头弘吉剌部 等 9 家城市内酒店。前端应渲染全部 10 行,当前只显示 1 行即缺陷所在。