feat: 为 G5 room_status 写入添加强制 online_status 为 1 的功能,并确保冲突时始终更新,即使业务字段未变化
This commit is contained in:
@@ -60,4 +60,15 @@
|
||||
#### Scenario: G5 room_status 使用 hotel_id 与 room_id 冲突键
|
||||
- **WHEN** 系统写入 `room_status.room_status_moment_g5`
|
||||
- **THEN** 应使用 `(hotel_id, room_id)` 作为 `ON CONFLICT` 的冲突键
|
||||
- **AND** 应将 `device_id` 作为普通可更新列写入
|
||||
- **AND** 应将 `device_id` 作为普通可更新列写入
|
||||
|
||||
#### Scenario: G5 room_status 写入时强制 online_status 为 1
|
||||
- **WHEN** 系统向 `room_status.room_status_moment_g5` 插入新行或因冲突执行更新
|
||||
- **THEN** 应将 `online_status` 写为 `1`
|
||||
- **AND** 该规则仅作用于 G5 room_status 路径
|
||||
|
||||
#### Scenario: G5 room_status 每包数据都触发更新时间刷新
|
||||
- **WHEN** 系统收到任意一包属于同一 `(hotel_id, room_id)` 的 G5 room_status 数据
|
||||
- **THEN** 即使业务字段与现存记录完全一致,也应执行一次 `ON CONFLICT DO UPDATE`
|
||||
- **AND** 不应在 G5 room_status 的冲突更新路径上使用“字段无变化则跳过 UPDATE”的 WHERE 条件
|
||||
- **AND** 应依赖数据库触发器自动刷新 `ts_ms`
|
||||
Reference in New Issue
Block a user