feat: 初始化 bls-onoffline-backend 项目基础结构

添加 Kafka 消费者、数据库写入、Redis 集成等核心模块,实现设备上下线事件处理
- 创建项目基础目录结构与配置文件
- 实现 Kafka 消费逻辑与手动提交偏移量
- 添加 PostgreSQL 数据库连接与分区表管理
- 集成 Redis 用于错误队列和项目心跳
- 包含数据处理逻辑,区分重启与非重启数据
- 提供数据库初始化脚本与分区创建工具
- 添加单元测试与代码校验脚本
This commit is contained in:
2026-02-04 17:51:50 +08:00
commit a8c7cf74e6
41 changed files with 6760 additions and 0 deletions

View File

@@ -0,0 +1,41 @@
bls-onoffline-backend 规格说明
1. Kafka 数据结构
{
"HotelCode": "1085",
"MAC": "00:1A:2B:3C:4D:5E",
"HostNumber": "091123987456",
"RoomNumber": "8888房",
"EndPoint": "50.2.60.1:6543",
"CurrentStatus": "on",
"CurrentTime": "2026-02-02T10:30:00Z",
"UnixTime": 1770000235000,
"LauncherVersion": "1.0.0",
"RebootReason": "1"
}
2. Kafka 主题
Topicblwlog4Nodejs-rcu-onoffline-topic
3. 数据库结构
数据库log_platform
onoffline_record
字段:
guid varchar(32)
ts_ms int8
write_ts_ms int8
hotel_id int2
mac varchar(21)
device_id varchar(64)
room_id varchar(64)
ip varchar(21)
current_status varchar(10)
launcher_version varchar(10)
reboot_reason varchar(10)
主键ts_ms, mac, device_id, room_id
按 ts_ms 每日分区
4. 数据处理规则
非重启数据reboot_reason 为空或不存在current_status 取 CurrentStatus
重启数据reboot_reason 不为空current_status 固定为 on
其余字段直接按 Kafka 原值落库,空值不补 0