From ed376947fc3a85b404ce46285db607fda00e820e Mon Sep 17 00:00:00 2001 From: API Changelog Bot Date: Sat, 8 Aug 2026 16:43:42 +0800 Subject: [PATCH] =?UTF-8?q?changelog=20#5706=EF=BC=9A=E8=BD=A6=E8=BE=86?= =?UTF-8?q?=E5=BC=82=E6=AD=A5=E4=B8=8B=E6=8B=89options=E5=87=BA=E5=8F=82?= =?UTF-8?q?=E5=8A=A0dayPrice=E8=BD=A6=E5=9E=8B=E5=BD=93=E6=97=A5=E7=89=8C?= =?UTF-8?q?=E4=BB=B7=EF=BC=88=E6=A0=B8=E5=8D=95=E9=80=89=E5=9E=8B=E5=8F=82?= =?UTF-8?q?=E8=80=83=E4=BB=B7=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...s出参加dayPrice车型当日牌价-修改接口-管理后台.md | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 changelogs-v2/2026-08/08_5706_车辆异步下拉options出参加dayPrice车型当日牌价-修改接口-管理后台.md diff --git a/changelogs-v2/2026-08/08_5706_车辆异步下拉options出参加dayPrice车型当日牌价-修改接口-管理后台.md b/changelogs-v2/2026-08/08_5706_车辆异步下拉options出参加dayPrice车型当日牌价-修改接口-管理后台.md new file mode 100644 index 0000000..b1574cf --- /dev/null +++ b/changelogs-v2/2026-08/08_5706_车辆异步下拉options出参加dayPrice车型当日牌价-修改接口-管理后台.md @@ -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-v3(cba9a1ed16432f33c823a211472c10169766790c)并部署 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` | LocalDate(YYYY-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,内存 join(20 车仅 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/3(serviceDate 透传+dayPrice 返回+vehicleModelId 不下发);dev-v3 全量 verify 3299/0F/0E。 +- 网关实证(TEST fleet 实例直连):①日历价优先 GL8 2026-10-09 设价500(basePrice900)→dayPrice=500;②未设价日回退 basePrice(2027-01-15→GL8=900/汉兰达=800/普拉多=1000);③软删设价行不取(汉兰达2099-02-12已软删→回退800);④dayPrice 下发+vehicleModelId 不下发。探针 `tools/probe_5706_vehicle_options_dayprice.py` 5/5 PASS。