From f4f4fc53260eb67483dce406a963628273786a61 Mon Sep 17 00:00:00 2001
From: liusuyi <1951119284@qq.com>
Date: Sat, 30 May 2026 17:22:17 +0800
Subject: [PATCH] 优化

---
 ard-modules/ard-modules-gb28181/src/main/java/com/ard/gb28181/service/impl/DeviceServiceImpl.java |   39 +++++++++++++++++++++++++++++++++++++++
 1 files changed, 39 insertions(+), 0 deletions(-)

diff --git a/ard-modules/ard-modules-gb28181/src/main/java/com/ard/gb28181/service/impl/DeviceServiceImpl.java b/ard-modules/ard-modules-gb28181/src/main/java/com/ard/gb28181/service/impl/DeviceServiceImpl.java
index f60ea6e..6d6390d 100644
--- a/ard-modules/ard-modules-gb28181/src/main/java/com/ard/gb28181/service/impl/DeviceServiceImpl.java
+++ b/ard-modules/ard-modules-gb28181/src/main/java/com/ard/gb28181/service/impl/DeviceServiceImpl.java
@@ -13,7 +13,11 @@
 import com.ard.gb28181.api.utils.DateUtil;
 import com.ard.gb28181.common.ErrorCode;
 import com.ard.gb28181.config.UserSetting;
+import com.ard.gb28181.domain.GbChannel;
+import com.ard.gb28181.domain.GbDevice;
 import com.ard.gb28181.service.IDeviceService;
+import com.ard.gb28181.service.IGbChannelService;
+import com.ard.gb28181.service.IGbDeviceService;
 import com.ard.gb28181.service.IRedisCatchStorage;
 import com.ard.gb28181.service.ISIPCommander;
 import com.ard.gb28181.session.SipInviteSessionManager;
@@ -71,6 +75,12 @@
 
     @Autowired
     private RemoteQsDeviceService remoteQsDeviceService;
+
+    @Autowired
+    private IGbDeviceService gbDeviceService;
+
+    @Autowired
+    private IGbChannelService gbChannelService;
 
     /**
      * 查询设备信息
@@ -176,6 +186,35 @@
         } catch (Exception e) {
             log.error("[同步设备状态] 设备上线,同步到 QS 模块失败:{}", device.getDeviceId(), e);
         }
+
+        // 设备注册成功时,自动在 ard_gb_device 表中创建设备记录(若不存在)
+        try {
+            GbDevice existingDevice = gbDeviceService.selectGbDeviceByGbDeviceId(device.getDeviceId());
+            if (existingDevice == null) {
+                GbDevice gbDevice = new GbDevice();
+                gbDevice.setGbDeviceId(device.getDeviceId());
+                gbDevice.setDeviceName(device.getName() != null ? device.getName() : device.getDeviceId());
+                gbDevice.setDeviceCode(device.getDeviceId());
+                gbDevice.setStreamMode(device.getStreamMode() != null ? device.getStreamMode() : "TCP-PASSIVE");
+                gbDevice.setEnableMp4("0");
+                gbDeviceService.insertGbDevice(gbDevice);
+                log.info("[GbDevice自动创建] deviceId: {}, id: {}", device.getDeviceId(), gbDevice.getId());
+
+                // 同时创建默认通道(设备自身)
+                GbChannel gbChannel = new GbChannel();
+                gbChannel.setGbDeviceId(device.getDeviceId());
+                gbChannel.setGbChannelId(device.getDeviceId());
+                gbChannel.setChannelName(device.getName() != null ? device.getName() : device.getDeviceId());
+                gbChannel.setDeviceCode(device.getDeviceId());
+                gbChannel.setStreamMode(device.getStreamMode() != null ? device.getStreamMode() : "TCP-PASSIVE");
+                gbChannel.setEnableMp4("0");
+                gbChannelService.insertGbChannel(gbChannel);
+                log.info("[GbChannel默认创建] deviceId: {}, channelId: {}, id: {}",
+                        device.getDeviceId(), device.getDeviceId(), gbChannel.getId());
+            }
+        } catch (Exception e) {
+            log.error("[GbDevice自动创建] 设备上线,自动创建失败:{}", device.getDeviceId(), e);
+        }
     }
 
     @Override

--
Gitblit v1.9.3