changelog #5706:车辆异步下拉options出参加dayPrice车型当日牌价(核单选型参考价)
一些检查失败了
changelog-filename-gate / validate (push) Failing after 2s

这个提交包含在:
API Changelog Bot 2026-08-08 16:43:42 +08:00
父节点 16c743d37e
当前提交 ed376947fc

查看文件

@ -0,0 +1,60 @@
---
schema: "hl-changelog/v2"
ticket: "5706"
title: "车辆异步下拉 options 出参加 dayPrice 车型当日牌价(核单选型参考价)"
consumer: "admin"
author: "wx"
change_type: "修改接口"
backend_status: "deployed"
gateway_status: "verified"
frontend_status: "pending"
frontend_owner: ""
frontend_ref: ""
target_release: ""
verified_at: ""
status_note: "后端完成PR #5714 合并 dev-v3cba9a1ed16432f33c823a211472c10169766790c并部署 TEST,网关验证 options 返回 dayPrice。order 侧配套FleetVehicleOptionFeignVO + SettlementVehicleOptionRespVO 加 dayPrice 透传)由腰苏图负责;核单前端接 order step3/vehicles 的 dayPrice。"
updated_at: "2026-08-08"
base: "dev-v3"
generated: "2026-08-08T16:05:00+08:00"
---
# 车辆异步下拉 options 出参加 dayPrice 车型当日牌价(#5706
## 需求
order-v3 核单 Step3 车辆费用「选车」下拉走 `GET /internal/fleet/vehicles/options`,原只回车辆身份字段不带价格。本单给选型下拉带「车型当日牌价」作参考,让定制师选车时心里有数。
**核算单价维持现状不动**:核单侧核算价仍来自派单后冻结快照 `dailyPrice`(按车型+用车日从价格日历冻结)。
## 修改接口:`GET /internal/fleet/vehicles/options`
### 入参(新增可选)
| 字段 | 类型 | 说明 |
|---|---|---|
| `serviceDate` | LocalDateYYYY-MM-DD,可选 | 取牌价服务日;**缺省回退今天**。order 核单侧调用时**固定传订单出发日 departureDate**——下拉里看到的价 = 该车在本订单出发那天的牌价,与后续派单快照口径对齐 |
### 出参 `VehicleOptionVO`(新增字段)
| 字段 | 类型 | 说明 |
|---|---|---|
| `dayPrice` | BigDecimal,可空 | **车型当日牌价(元/车天),仅供核单选型参考,非最终核算价**。按车型型号层 `vehicle_model_id` × `serviceDate` 从价格日历取价;未设价日回退车型 `basePrice`;双无(日历无设价且无 basePrice返回 `null`(不报错,参考价缺失不阻断下拉)。最终核算价仍走派单后冻结快照 `step3/vehicles``dailyPrice` |
### 取价口径(三坑已避)
1. **按车型型号层取价**`fleet_vehicle.vehicle_model_id` 关联价格日历),非 type 大类——价格日历 `fleet_pricing_calendar``vehicle_model_id + calendar_date` 定价
2. **未设价日回退车型 basePrice**`fleet_vehicle_model.basePrice`),双无则 `dayPrice=null` 不抛错;已软删deleted_at设价行不取
3. **批量取价禁 N+1**`PricingCalendarService.getDayPrices(车型集合, serviceDate)` 一次批量查价格日历 + 未设价车型 `VehicleModelService.listByIds` 一次批量取 basePrice,内存 join20 车仅 2 次批量查询)
### 内部说明
- `vehicleModelId`(价格日历取价键)仅服务端取价中间键,`@JsonIgnore` 不下发出参——前端只看到新增 `dayPrice`
## order 侧配套(腰苏图负责,不在本单)
`FleetVehicleOptionFeignVO` + `SettlementVehicleOptionRespVO` 各加 `dayPrice` 透传;fleet 端点上测试服后接入 + 推前端 changelog。**核单前端**Step3 选车下拉展示 `dayPrice` 作参考价(标注「参考价,非最终价」),最终核算价仍以 step3/vehicles 的 `dailyPrice` 为准。
## 验证
- VehicleServiceTest **115/115**(新增 2 dayPrice 用例:日历命中/basePrice回退/双无null/无N+1 + 默认日期回退今天/全日历命中不查basePrice;VehicleInternalControllerTest 3/3serviceDate 透传+dayPrice 返回+vehicleModelId 不下发;dev-v3 全量 verify 3299/0F/0E。
- 网关实证TEST fleet 实例直连):①日历价优先 GL8 2026-10-09 设价500(basePrice900)→dayPrice=500;②未设价日回退 basePrice2027-01-15→GL8=900/汉兰达=800/普拉多=1000;③软删设价行不取汉兰达2099-02-12已软删→回退800;④dayPrice 下发+vehicleModelId 不下发。探针 `tools/probe_5706_vehicle_options_dayprice.py` 5/5 PASS。