feat: 添加 IP 字段到房间状态和注册行,更新数据库管理器以支持新字段

This commit is contained in:
2026-03-18 15:12:29 +08:00
parent 677dda80b9
commit 59a49df66d
4 changed files with 20 additions and 4 deletions

View File

@@ -120,6 +120,7 @@ const registerColumns = [
const roomStatusColumns = [ const roomStatusColumns = [
"hotel_id", "hotel_id",
"room_id", "room_id",
"ip",
"app_version", "app_version",
"launcher_version", "launcher_version",
"config_version", "config_version",
@@ -208,13 +209,15 @@ class DatabaseManager {
$3::text[], $3::text[],
$4::text[], $4::text[],
$5::text[], $5::text[],
$6::int8[], $6::text[],
$7::int8[] $7::int8[],
$8::int8[]
) AS u(${roomStatusColumns.join(", ")}) ) AS u(${roomStatusColumns.join(", ")})
), dedup AS ( ), dedup AS (
SELECT DISTINCT ON (hotel_id, room_id) SELECT DISTINCT ON (hotel_id, room_id)
hotel_id, hotel_id,
room_id, room_id,
ip,
app_version, app_version,
launcher_version, launcher_version,
config_version, config_version,
@@ -233,6 +236,7 @@ class DatabaseManager {
hotel_id, hotel_id,
room_id, room_id,
device_id, device_id,
ip,
app_version, app_version,
launcher_version, launcher_version,
config_version, config_version,
@@ -243,6 +247,7 @@ class DatabaseManager {
hotel_id, hotel_id,
room_id, room_id,
device_id, device_id,
ip,
app_version, app_version,
launcher_version, launcher_version,
config_version, config_version,
@@ -251,6 +256,7 @@ class DatabaseManager {
FROM existing FROM existing
ON CONFLICT (hotel_id, room_id) DO UPDATE ON CONFLICT (hotel_id, room_id) DO UPDATE
SET SET
ip = EXCLUDED.ip,
app_version = EXCLUDED.app_version, app_version = EXCLUDED.app_version,
launcher_version = EXCLUDED.launcher_version, launcher_version = EXCLUDED.launcher_version,
config_version = EXCLUDED.config_version, config_version = EXCLUDED.config_version,
@@ -728,6 +734,7 @@ const buildRowsFromPayload = (rawPayload) => {
const roomStatusUpdateRow = { const roomStatusUpdateRow = {
hotel_id: hotelId, hotel_id: hotelId,
room_id: roomId, room_id: roomId,
ip: registerRow.ip,
app_version: registerRow.app_version, app_version: registerRow.app_version,
launcher_version: registerRow.launcher_version, launcher_version: registerRow.launcher_version,
config_version: registerRow.config_version, config_version: registerRow.config_version,

View File

@@ -43,6 +43,7 @@ const registerColumns = [
const roomStatusColumns = [ const roomStatusColumns = [
'hotel_id', 'hotel_id',
'room_id', 'room_id',
'ip',
'app_version', 'app_version',
'launcher_version', 'launcher_version',
'config_version', 'config_version',
@@ -137,13 +138,15 @@ export class DatabaseManager {
$3::text[], $3::text[],
$4::text[], $4::text[],
$5::text[], $5::text[],
$6::int8[], $6::text[],
$7::int8[] $7::int8[],
$8::int8[]
) AS u(${roomStatusColumns.join(', ')}) ) AS u(${roomStatusColumns.join(', ')})
), dedup AS ( ), dedup AS (
SELECT DISTINCT ON (hotel_id, room_id) SELECT DISTINCT ON (hotel_id, room_id)
hotel_id, hotel_id,
room_id, room_id,
ip,
app_version, app_version,
launcher_version, launcher_version,
config_version, config_version,
@@ -162,6 +165,7 @@ export class DatabaseManager {
hotel_id, hotel_id,
room_id, room_id,
device_id, device_id,
ip,
app_version, app_version,
launcher_version, launcher_version,
config_version, config_version,
@@ -172,6 +176,7 @@ export class DatabaseManager {
hotel_id, hotel_id,
room_id, room_id,
device_id, device_id,
ip,
app_version, app_version,
launcher_version, launcher_version,
config_version, config_version,
@@ -180,6 +185,7 @@ export class DatabaseManager {
FROM existing FROM existing
ON CONFLICT (hotel_id, room_id) DO UPDATE ON CONFLICT (hotel_id, room_id) DO UPDATE
SET SET
ip = EXCLUDED.ip,
app_version = EXCLUDED.app_version, app_version = EXCLUDED.app_version,
launcher_version = EXCLUDED.launcher_version, launcher_version = EXCLUDED.launcher_version,
config_version = EXCLUDED.config_version, config_version = EXCLUDED.config_version,

View File

@@ -213,6 +213,7 @@ export const buildRowsFromPayload = (rawPayload) => {
const roomStatusUpdateRow = { const roomStatusUpdateRow = {
hotel_id: hotelId, hotel_id: hotelId,
room_id: roomId, room_id: roomId,
ip: registerRow.ip,
app_version: registerRow.app_version, app_version: registerRow.app_version,
launcher_version: registerRow.launcher_version, launcher_version: registerRow.launcher_version,
config_version: registerRow.config_version, config_version: registerRow.config_version,

View File

@@ -8,6 +8,7 @@ describe('Register Processor', () => {
hotel_id: 1085, hotel_id: 1085,
room_id: '8888', room_id: '8888',
device_id: '091123987456', device_id: '091123987456',
ip: '10.1.2.3:5678',
is_send: 0, is_send: 0,
app_version: '2.1.0', app_version: '2.1.0',
launcher_version: '1.0.0', launcher_version: '1.0.0',
@@ -24,6 +25,7 @@ describe('Register Processor', () => {
expect(rows.registerRows[0].room_id).toBe('8888'); expect(rows.registerRows[0].room_id).toBe('8888');
expect(rows.registerRows[0].device_id).toBe('091123987456'); expect(rows.registerRows[0].device_id).toBe('091123987456');
expect(rows.roomStatusRows[0].ip).toBe('10.1.2.3:5678');
expect(rows.roomStatusRows[0].register_ts_ms).toBe(1770000235000); expect(rows.roomStatusRows[0].register_ts_ms).toBe(1770000235000);
expect(rows.roomStatusRows[0].upgrade_ts_ms).toBe(1770001235000); expect(rows.roomStatusRows[0].upgrade_ts_ms).toBe(1770001235000);
}); });