docs: 同步订单用车座位校验收口

这个提交包含在:
API Changelog Bot 2026-07-08 21:36:06 +08:00
父节点 f2c9864c02
当前提交 aea6b4091d

查看文件

@ -0,0 +1,86 @@
# 【前端对接·管理后台】订单用车座位校验事务边界收口
> Issue: [wx/HL#4858](https://git.1814.love:8443/wx/HL/issues/4858)
> PR: [wx/HL#4859](https://git.1814.love:8443/wx/HL/pulls/4859)
> 服务: `hl-order-service-v3`
> 日期: 2026-07-08
> 影响范围: 订单详情 / 调整订单弹窗 / 车辆安排
## 1. 结论
- 本次不新增前端字段,不改变请求结构。
- 前端仍按 #4856 文档处理:先选车型大类,再从 `GET /admin/fleet/vehicle-types/list``seatOptions` 渲染座位数下拉。
- `PUT /v3/admin/order/{id}/vehicle-requirement` 提交前,后端会在事务外只读调用车务车型库校验 `vehicleType + seats`
- 非法座位数组合继续返回 `582024`,车务车型库不可用继续返回 `582091`
## 2. 提交请求保持不变
```http
PUT /v3/admin/order/2074746808742928386/vehicle-requirement
Authorization: Bearer <admin-token>
Content-Type: application/json
```
```json
{
"fleet": [
{
"vehicleType": "suv2",
"seats": 5,
"count": 1
}
],
"specialTags": ["儿童安全座椅"],
"remark": "需要接机,后备箱放 2 个 28 寸行李箱"
}
```
字段口径:
| 字段 | 类型 | 说明 |
|------|------|------|
| `fleet[].vehicleType` | string | 车型大类 key。前端可传真实 `typeKey`,后端保存前归一为 `suv/mpv/bus/sedan`。 |
| `fleet[].seats` | number | 从该大类 `seatOptions` 中选择的座位数。 |
| `fleet[].count` | number | 车辆数量,必须大于 0。 |
## 3. 非法座位数组合
请求示例:
```json
{
"fleet": [
{
"vehicleType": "suv",
"seats": 99,
"count": 1
}
],
"specialTags": [],
"remark": "negative-seat-check"
}
```
响应示例:
```json
{
"loginStatus": 200,
"requestStatus": 200,
"code": 582024,
"msg": "座位数不在该车型大类可选座位数中,请检查车型库",
"data": null
}
```
前端处理:
- 直接展示后端 `msg`
- 不允许把座位数改成手输。
- 切换车型大类后,如果当前座位数不在新大类 `seatOptions` 内,需要清空座位数并要求重新选择。
## 4. 验证结果
- 测试环境 `hl-order-service-v3` 已部署成功。
- `8086/8186` 双实例 `/actuator/health` 返回 200。
- 管理端 API 负向实测:非法 `seats=99` 返回 `582024`,证明校验发生在订单查找和写库之前。