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;
+ }
}
/**