# 【小程序】下单页满团提示:C端实时报价新增班期容量余量字段 > **类型**: 后端补字段(供前端做满团提示) > **服务**: hl-product-service-v2 > **日期**: 2026-06-01 > **影响范围**: `POST /mp/product/{id}/quote`(C端报价,出行信息弹窗 / 订单确认页) > **归属**: 后端已改(PR #3289 → dev,已同步 dev-v3) > **状态**: 已部署测试服并验证通过 > **关联工单**: #3288 > **需前端配合**: ⚠️ 是 --- ## 一、问题 下单流程(填写出行信息弹窗 / 订单确认页)能选择**超过班期剩余名额/库存**的人数并进到支付页,无任何提示。例:班期最大人数 26、线下报名人数 24 → 余名额仅 2,却可选成人 3 + 儿童 1 = 4 人到支付页(点支付才被后端 503 拦)。 ## 二、后端改动 `POST /mp/product/{id}/quote` 的响应 `MpQuoteResultVO` 新增 4 字段(**仅 GROUP/小蒙马且请求带 `batchId` 时有值,CORE/CUSTOM 为 null**): | 字段 | 含义 | |------|------| | `maxParticipants` | 最大参与人数(0/空=不限) | | `remainParticipants` | 剩余可报名名额(= 最大人数 − 已报名人数含线下;`null`=不限) | | `remainStock` | 剩余房间库存(= 最大房间 − 有效订单含线下占位;`null`=不限) | | `capacityEnough` | 本次报价人数是否在剩余容量内(`true`=够位可下单,`false`=超员/售罄) | `capacityEnough` 计算:请求总人数(成人+儿童+小童+幼童) ≤ `remainParticipants`(不限恒真) **且** `remainStock` 非 0(房间未售罄)。 > 价格字段不变;硬拦截仍在下单(超员 503109 / 房间不足 503106)。本次只是把**余量数据**给到前端做软提示。 ## 三、前端需要做(mmg) 出行信息弹窗 + 订单确认页,基于报价返回的上述字段: 1. **人数步进器封顶**:成人/儿童等总人数不允许超过 `remainParticipants`(为 null 时不限),`+` 到上限置灰。 2. **超员/售罄提示**:`capacityEnough=false` 时提示「仅剩 N 个名额」/「该班期已满」,并**禁用「支付订金/支付」按钮**。 3. 建议在展示「剩余 N 个名额」时用 `remainParticipants`;`remainStock` 可用于房间数选择封顶。 ## 四、测试服实测 问题班期(最大人数 26 / 线下报名 24 → 余名额 2;最大房间 10 / 线下占位 9 → 余房 1): - 成人 3 + 儿童 1 = 4 人 → `capacityEnough=false`,`remainParticipants=2`,`remainStock=1`,`maxParticipants=26` ✓ - 成人 4 → false ✓;成人 2(=余 2)→ true ✓;成人 1 → true ✓ - 价格 `grandTotal` 正常返回(报价不受影响)