5.0 KiB
5.0 KiB
schema, ticket, title, consumer, change_type, backend_status, gateway_status, frontend_status, frontend_owner, frontend_ref, target_release, verified_at, status_note, updated_at, base, generated
| schema | ticket | title | consumer | change_type | backend_status | gateway_status | frontend_status | frontend_owner | frontend_ref | target_release | verified_at | status_note | updated_at | base | generated |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| hl-changelog/v2 | 5254 | 订单侧已配置车辆补充车型车队服务日期与日单价 | admin | 修改接口 | deployed | verified | pending | 后端已合入 dev-v3 并部署测试环境;网关已验证新增字段、多车守恒和手机号脱敏。 | 2026-07-26 | dev-v3 | 2026-07-26T09:57:21+08:00 |
订单侧已配置车辆补充车型车队服务日期与日单价
订单详情的已配置车辆补齐车型标题、车队、连续服务日期、服务天数和协议日单价。
本记录只表示后端契约交接,frontend_status 在真实前端领取前保持 pending。
关联
- Issue: #5254
- PR: wx/HL#5260
变更接口
| 方法 | 路径 | 来源 |
|---|---|---|
| GET | /v3/admin/order/:id/itinerary(:id 为订单 ID) |
data.vehicleGroup.assignments[] |
data.vehicleGroup.assignments[]
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
brand |
string | 否 | 兼容字段;Fleet 实时数据下回填车辆车型名称,前端标题可按 brand || vehicleType || '—' 展示 |
fleetTeamId |
string | 否 | 车辆所属车队 ID;雪花 ID 按字符串返回 |
fleetTeamName |
string | 否 | 车辆所属车队名称;归档车辆或历史快照无法补齐时为空 |
startDate |
string(yyyy-MM-dd) |
否 | 车辆/司机连续服务段开始日 |
endDate |
string(yyyy-MM-dd) |
否 | 车辆/司机连续服务段结束日 |
serviceDays |
integer | 否 | 连续服务天数,首尾日期均计入 |
plannedDailyFee |
string(decimal) | 否 | 协议日单价;连续段内每日协议价不一致或无价格时为空,不得按 0 元展示 |
既有 vehicleType、licensePlate、seats、driverName 和
driverPhoneMasked 继续返回;手机号保持脱敏。
内部 Feign/shared Java
OrderDriverVehicleCandidateDTO 新增可空字段:
fleetTeamId: Long(JSON 字符串)fleetTeamName: StringprotocolPrice: BigDecimal(JSON 字符串)
既有 startDate、endDate 本次开始映射到订单侧公开响应。新旧 Fleet/Order
可滚动部署:旧消费者忽略新增字段,新消费者读取旧生产者时新增字段为空。
契约影响文件
hl-common/hl-common-core/src/main/java/com/hulalv/common/dto/fleet/OrderDriverVehicleCandidateDTO.javahl-order-service-v3/src/main/java/com/hulalv/order/core/controller/admin/vo/detail/ItineraryVO.javahl-order-service-v3/src/test/java/com/hulalv/order/core/controller/admin/OrderControllerTest.javahl-order-service-v3/src/test/java/com/hulalv/order/fleet/feign/FleetDriverVehicleFeignContractTest.java
前端/调用方动作
src/views/order-v2/detail/_shared/v3Adapter.js映射新增字段:fleetTeamName、startDate、endDate、serviceDays、plannedDailyFee。- 车型标题使用
brand || vehicleType || '—';brand === vehicleType时不要重复展示同一车型。 - “用车安排”摘要展示车型、车牌、座位、司机、脱敏手机号和服务日期。
- “已配置车辆”弹窗展示车型、车牌、座位、所属车队、司机、脱敏手机号、 服务起止日期、服务天数和协议日单价。
plannedDailyFee == null时显示—,不得显示 0 元;无车辆时保持“暂无已配车”。- 多车/改派连续段按接口数组逐条渲染,不按车牌或司机姓名自行去重。
验证证据
- Fleet 定向测试:
mvn -pl hl-fleet-service -am -Dtest=OrderDriverVehicleQueryServiceTest,AssignmentConverterTest -Dsurefire.failIfNoSpecifiedTests=false test(31 项通过)。 - Order 消费者与内部契约:
mvn -pl hl-order-service-v3 -am -Dtest=OrderDetailServiceTest,FleetDriverVehicleFeignContractTest -Dsurefire.failIfNoSpecifiedTests=false test(79 项通过)。 - 前端 API 序列化:
mvn -pl hl-order-service-v3 -am -Dtest=OrderControllerTest#getItinerary_validId_returns200 -Dsurefire.failIfNoSpecifiedTests=false test(1 项通过)。 - Fleet Spotless:
mvn -pl hl-fleet-service spotless:check(通过)。 - 联合验证:
mvn -pl hl-fleet-service,hl-order-service-v3 -am verify(BUILD SUCCESS;Fleet 2387 项通过,Spotless 通过;order-v3 定向 81 项通过)。 - 测试环境:
hl-fleet-service、hl-order-service-v3已从dev-v3滚动部署,两实例均健康。 - 网关验证:连续 6 次调用
GET /v3/admin/order/:id/itinerary均返回 3 个唯一车辆连续段; 新增车型、车队、服务日期、服务天数和计划日单价字段存在,手机号保持脱敏且未返回原始手机号。 - 降级路径:Fleet 调用失败或空响应由
OrderDetailServiceTest覆盖,本次未人为中断测试环境 Fleet。 - 兼容性结论:仅新增可空响应字段并补齐既有空字段;内部 Feign JSON 双向兼容, 不修改方法、路径、参数、必填项、枚举或错误码。