From ac92237e0859390e23d2b14e52d2d9536d7a084d Mon Sep 17 00:00:00 2001
From: lin <648540858@qq.com>
Date: Thu, 16 Oct 2025 15:20:15 +0800
Subject: [PATCH] =?UTF-8?q?=E4=B8=B4=E6=97=B6=E6=8F=90=E4=BA=A4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../iot/vmp/gb28181/dao/GroupMapper.java | 14 +++++++++++
.../service/impl/GbChannelServiceImpl.java | 4 ----
.../web/custom/CameraChannelController.java | 3 +--
.../iot/vmp/web/custom/bean/CameraCont.java | 11 ---------
.../iot/vmp/web/custom/bean/CameraCount.java | 13 ++++++++++
.../custom/service/CameraChannelService.java | 24 ++++++++++++++++---
6 files changed, 49 insertions(+), 20 deletions(-)
delete mode 100644 src/main/java/com/genersoft/iot/vmp/web/custom/bean/CameraCont.java
create mode 100644 src/main/java/com/genersoft/iot/vmp/web/custom/bean/CameraCount.java
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/dao/GroupMapper.java b/src/main/java/com/genersoft/iot/vmp/gb28181/dao/GroupMapper.java
index 275c4e1bb..2b15cffe4 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/dao/GroupMapper.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/dao/GroupMapper.java
@@ -4,6 +4,7 @@ import com.genersoft.iot.vmp.gb28181.bean.CommonGBChannel;
import com.genersoft.iot.vmp.gb28181.bean.Group;
import com.genersoft.iot.vmp.gb28181.bean.GroupTree;
import com.genersoft.iot.vmp.gb28181.bean.Platform;
+import com.genersoft.iot.vmp.web.custom.bean.CameraCount;
import com.genersoft.iot.vmp.web.custom.bean.CameraGroup;
import org.apache.ibatis.annotations.*;
@@ -304,4 +305,17 @@ public interface GroupMapper {
@Select("SELECT * from wvp_common_group WHERE alias = #{alias} and business_group = #{businessGroup}")
Group queryGroupByAliasAndBusinessGroup(@Param("alias") String alias, @Param("deviceId") String businessGroup);
+
+
+ @Select(" ")
+ List queryCountWithChild(List groupList);
}
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/GbChannelServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/GbChannelServiceImpl.java
index e0ae556c1..8435350eb 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/GbChannelServiceImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/GbChannelServiceImpl.java
@@ -10,7 +10,6 @@ import com.genersoft.iot.vmp.gb28181.dao.PlatformChannelMapper;
import com.genersoft.iot.vmp.gb28181.dao.RegionMapper;
import com.genersoft.iot.vmp.gb28181.event.EventPublisher;
import com.genersoft.iot.vmp.gb28181.event.subscribe.catalog.CatalogEvent;
-import com.genersoft.iot.vmp.gb28181.service.IDeviceChannelService;
import com.genersoft.iot.vmp.gb28181.service.IGbChannelService;
import com.genersoft.iot.vmp.gb28181.service.IPlatformChannelService;
import com.genersoft.iot.vmp.service.bean.GPSMsgInfo;
@@ -52,9 +51,6 @@ public class GbChannelServiceImpl implements IGbChannelService {
@Autowired
private GroupMapper groupMapper;
- @Autowired
- private IDeviceChannelService deviceChannelService;
-
@Override
public CommonGBChannel queryByDeviceId(String gbDeviceId) {
return commonGBChannelMapper.queryByDeviceId(gbDeviceId);
diff --git a/src/main/java/com/genersoft/iot/vmp/web/custom/CameraChannelController.java b/src/main/java/com/genersoft/iot/vmp/web/custom/CameraChannelController.java
index ccf9dc772..cba453a67 100644
--- a/src/main/java/com/genersoft/iot/vmp/web/custom/CameraChannelController.java
+++ b/src/main/java/com/genersoft/iot/vmp/web/custom/CameraChannelController.java
@@ -108,8 +108,7 @@ public class CameraChannelController {
@ResponseBody
@Operation(summary = "查询摄像机列表的总数和在线数", security = @SecurityRequirement(name = JwtUtils.HEADER))
@Parameter(name = "groupAlias", description = "分组别名")
- public CameraCont queryCountWithChild(String groupAlias){
-
+ public List queryCountWithChild(String groupAlias){
return channelService.queryCountWithChild(groupAlias);
}
diff --git a/src/main/java/com/genersoft/iot/vmp/web/custom/bean/CameraCont.java b/src/main/java/com/genersoft/iot/vmp/web/custom/bean/CameraCont.java
deleted file mode 100644
index e0d6dd374..000000000
--- a/src/main/java/com/genersoft/iot/vmp/web/custom/bean/CameraCont.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.genersoft.iot.vmp.web.custom.bean;
-
-import lombok.Data;
-
-@Data
-public class CameraCont {
-
- private Long total;
- private Long online;
-
-}
diff --git a/src/main/java/com/genersoft/iot/vmp/web/custom/bean/CameraCount.java b/src/main/java/com/genersoft/iot/vmp/web/custom/bean/CameraCount.java
new file mode 100644
index 000000000..10187f7fe
--- /dev/null
+++ b/src/main/java/com/genersoft/iot/vmp/web/custom/bean/CameraCount.java
@@ -0,0 +1,13 @@
+package com.genersoft.iot.vmp.web.custom.bean;
+
+import lombok.Data;
+
+@Data
+public class CameraCount {
+
+ private String groupAlias;
+ private String deviceId;
+ private Long allCount;
+ private Long onlineCount;
+
+}
diff --git a/src/main/java/com/genersoft/iot/vmp/web/custom/service/CameraChannelService.java b/src/main/java/com/genersoft/iot/vmp/web/custom/service/CameraChannelService.java
index 4f0c70cfd..ad184852a 100644
--- a/src/main/java/com/genersoft/iot/vmp/web/custom/service/CameraChannelService.java
+++ b/src/main/java/com/genersoft/iot/vmp/web/custom/service/CameraChannelService.java
@@ -158,16 +158,34 @@ public class CameraChannelService implements CommandLineRunner {
}
}
- public CameraCont queryCountWithChild(String groupAlias) {
+ public List queryCountWithChild(String groupAlias) {
// 构建组织结构信息
CameraGroup group = groupMapper.queryGroupByAlias(groupAlias);
Assert.notNull(group, "组织结构不存在");
- String groupDeviceId = group.getDeviceId();
// 获取所有子节点
List groupList = queryAllGroupChildren(group.getId(), group.getBusinessGroup());
groupList.add(group);
- return null;
+ // TODO 此处整理可优化,尽量让sql直接返回对应的结构 无需二次整理
+ List cameraCounts = groupMapper.queryCountWithChild(groupList);
+ if (cameraCounts.isEmpty()) {
+ return Collections.emptyList();
+ }else {
+ Map cameraGroupMap = new HashMap<>();
+ for (CameraGroup cameraGroup : groupList) {
+ cameraGroupMap.put(cameraGroup.getDeviceId(), cameraGroup.getAlias());
+ }
+ List result = new ArrayList<>();
+ for (CameraCount cameraCount : cameraCounts) {
+ String alias = cameraGroupMap.get(cameraCount.getDeviceId());
+ if (alias == null) {
+ continue;
+ }
+ cameraCount.setGroupAlias(alias);
+ result.add(cameraCount);
+ }
+ return result;
+ }
}
/**