# 配房填结算价加「同步到资源协议价」开关(写回价格日历;后端已部署,前端加开关 UI) > 变更类型:✅ 新增接口字段(additive,已部署测试服 boot + 单测充分 verify 写回逻辑) > 端类型:管理后台(房务管家·配房填写「结算价」处) > 日期:2026-06-25 | 工单/PR:#4377 / #4378 | 服务:hl-order-service-v3(写回经 Feign → hl-resource-service) > 关联:复用 #4072「房务改协议价写回 resource」现成设施;承接配房填结算价(#4367 选房型房间数)。 --- ## ⚠️ 关键说明 - 房务配房填「结算价」(sellPrice)时,可勾选开关「同步到资源协议价(改价格日历)」。 - 勾选 → 后端在提交成功后(afterCommit)**用该项结算价写回 resource 价格日历的协议价**(`room_price_calendar.protocol_price`,resource 是协议价单源)。 - 不勾(默认)→ 行为不变,只落配房、不动 resource 协议价。 ## 1. 提交配房 — 单项加字段 `POST /v3/admin/order/hotel-requirements/{requirementId}/assignments` → `items[]`(`AssignmentItemReqVO`)**新增**: | 字段 | 类型 | 必填 | 说明 | |---|---|---|---| | `syncProtocolPrice` | Boolean | 否(默认 false) | true=把本项 `sellPrice` 同步写回 resource 该(roomTypeId, stayDate)协议价;false/不传=不同步 | (`dayNumber`/`hotelId`/`roomTypeId`/`roomCategory`/`roomCount`/`sellPrice`/`remark` 字段不变。) ## 2. 修改单条配房 — 同步加字段 `PUT /v3/admin/order/assignments/{id}`(`AssignmentUpdateReqVO`)**新增** `syncProtocolPrice`(Boolean,同上语义)。 - 勾选 `syncProtocolPrice=true` 且传了 `sellPrice` → 用 **sellPrice** 写回协议价(**优先**于 #4072 的「改 protoPrice 字段触发写回」)。 - 不勾 → 保留 #4072 原逻辑:改了 `protoPrice` 字段才写回 protoPrice 值。 ## 3. 前端动作 - 配房填「结算价」处加一个开关/勾选框「同步到资源协议价(改价格日历)」,默认**不勾**。 - 提交时把开关值放进对应 item 的 `syncProtocolPrice`(提交配房)或 body 的 `syncProtocolPrice`(修改配房)。 - 写回是后端行为(afterCommit 经 Feign 写 resource),前端无需关心写回细节;写回失败不阻断配房(后端只记日志)。 ## 4. 验证状态(诚实标注) - 后端已部署测试服:order-v3 双实例 boot 成功(`Started OrderServiceV3Application` 12.3s)、网关 health code=200,接口已接受 `syncProtocolPrice` 字段。 - 写回逻辑由单测充分覆盖:`HouseAssignmentServiceTest` 56 绿(2 新用例 verify 写回 Feign 被调 + 写回值=该项 sellPrice、且 update 场景 sellPrice 优先于 protoPrice)+ 门禁全绿。 - **端到端实测通过**(部署后补做):order 2069593503129636865 DAY3 配额尔古纳白桦主题标间、`syncProtocolPrice=true`、`sellPrice=288.88` → resource 该房型 2026-06-28 协议价 **220.00 → 288.88**(精确等于 sellPrice,写回真生效);验证后已删配房 + 协议价改回 220 恢复测试数据原状。