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

View File

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

View File

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

View File

@@ -8,6 +8,7 @@ describe('Register Processor', () => {
hotel_id: 1085,
room_id: '8888',
device_id: '091123987456',
ip: '10.1.2.3:5678',
is_send: 0,
app_version: '2.1.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].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].upgrade_ts_ms).toBe(1770001235000);
});