From ffb4f5dce1f4d7275b0945e435068b2a86316fb0 Mon Sep 17 00:00:00 2001
From: zhaowenyu <35589726@qq.com>
Date: Mon, 01 Dec 2025 14:33:44 +0800
Subject: [PATCH] 2025-12-01 zwy 机场设备列表增加对nickname的筛选
---
ard-sample/src/main/java/com/ard/sample/manage/model/param/DeviceQueryParam.java | 2 +
ard-admin/src/main/java/com/ard/web/controller/sample/DeviceController.java | 16 +++++++-
ard-sample/src/main/java/com/ard/sample/manage/service/IDeviceService.java | 9 +++-
ard-sample/src/main/java/com/ard/sample/manage/service/impl/DeviceServiceImpl.java | 88 +++++++++++++++++++++++++++++++++++++++++++
4 files changed, 110 insertions(+), 5 deletions(-)
diff --git a/ard-admin/src/main/java/com/ard/web/controller/sample/DeviceController.java b/ard-admin/src/main/java/com/ard/web/controller/sample/DeviceController.java
index 0a8a995..c3c7a30 100644
--- a/ard-admin/src/main/java/com/ard/web/controller/sample/DeviceController.java
+++ b/ard-admin/src/main/java/com/ard/web/controller/sample/DeviceController.java
@@ -97,12 +97,24 @@
@ApiOperation("设备列表")
@PreAuthorize("@ss.hasPermi('device:dock:list')")
@GetMapping("/list")
- public ResponseResult<List<DeviceDTO>> getDevices() {
+ public ResponseResult<List<DeviceDTO>> getDevices(String nickname) {
// List<DeviceDTO> devicesList = deviceService.getDevicesTopoForWeb();
- List<DeviceDTO> devicesList = deviceService.getDockList();
+ List<DeviceDTO> devicesList = deviceService.getDockList(nickname);
return ResponseResult.success(devicesList);
}
+// /**
+// * 获取按nickname筛选在线设备列表
+// *
+// * @return
+// */
+// @ApiOperation("设备列表-按nickname筛选")
+// @GetMapping("/cameralist")
+// public ResponseResult<List<DeviceDTO>> getCameraDevices(@RequestParam(required = false) String nickname) {
+// List<DeviceDTO> devicesList = deviceService.getDockCameraList(nickname);
+// return ResponseResult.success(devicesList);
+// }
+
/**
* 绑定设备
*
diff --git a/ard-sample/src/main/java/com/ard/sample/manage/model/param/DeviceQueryParam.java b/ard-sample/src/main/java/com/ard/sample/manage/model/param/DeviceQueryParam.java
index 9462080..a574192 100644
--- a/ard-sample/src/main/java/com/ard/sample/manage/model/param/DeviceQueryParam.java
+++ b/ard-sample/src/main/java/com/ard/sample/manage/model/param/DeviceQueryParam.java
@@ -28,6 +28,8 @@
private Boolean boundStatus;
+ private String nickname;
+
private boolean orderBy;
private boolean isAsc;
diff --git a/ard-sample/src/main/java/com/ard/sample/manage/service/IDeviceService.java b/ard-sample/src/main/java/com/ard/sample/manage/service/IDeviceService.java
index bd73b9d..1f3d583 100644
--- a/ard-sample/src/main/java/com/ard/sample/manage/service/IDeviceService.java
+++ b/ard-sample/src/main/java/com/ard/sample/manage/service/IDeviceService.java
@@ -106,13 +106,18 @@
/**
* 根据部门权限获取机场列表
* */
- List<DeviceDTO> getDockList();
+ List<DeviceDTO> getDockList(String nickname);
void spliceDeviceTopoPer(DeviceDTO gateway);
-// @DataScope(deptAlias = "d")
List<DeviceDTO> getDockListByParams(DeviceQueryParam param);
+// List<DeviceDTO> getDockCameraList(String nickname);
+
+// void spliceDeviceTopoCamera(DeviceDTO gateway);
+
+// List<DeviceDTO> getDockCameraListByParams(DeviceQueryParam param);
+
/**
* Query the information of the device according to the sn of the device.
* @param sn device sn
diff --git a/ard-sample/src/main/java/com/ard/sample/manage/service/impl/DeviceServiceImpl.java b/ard-sample/src/main/java/com/ard/sample/manage/service/impl/DeviceServiceImpl.java
index d0f48f7..e6d3777 100644
--- a/ard-sample/src/main/java/com/ard/sample/manage/service/impl/DeviceServiceImpl.java
+++ b/ard-sample/src/main/java/com/ard/sample/manage/service/impl/DeviceServiceImpl.java
@@ -360,10 +360,11 @@
//region 单独写一个方法做权限验证,由于有好多定时任务也在实时获取设备列表,原方法不适用再添加权限注解
@Override
- public List<DeviceDTO> getDockList() {
+ public List<DeviceDTO> getDockList(String nickname) {
List<DeviceDTO> devicesList = this.getDockListByParams(
DeviceQueryParam.builder()
.domains(List.of(DeviceDomainEnum.GATEWAY.getVal(), DeviceDomainEnum.DOCK.getVal()))
+ .nickname(nickname)
.build());
// 在獲取设备列表时,顺便获取直播地址
for(DeviceDTO devices : devicesList){
@@ -424,6 +425,7 @@
})
.eq(param.getBoundStatus() != null, DeviceEntity::getBoundStatus,
param.getBoundStatus())
+ .like(param.getNickname()!=null, DeviceEntity::getNickname, "%" + param.getNickname() + "%")
.orderBy(param.isOrderBy(),
param.isAsc(), DeviceEntity::getId))
.stream()
@@ -432,6 +434,90 @@
}
//endregion
+ // region 多路直播列表,按nickname筛选
+// /**
+// * 多路直播列表,按nickname筛选
+// * */
+// @Override
+// public List<DeviceDTO> getDockCameraList(String nickname) {
+//
+// List<DeviceDTO> devicesList = this.getDockListByParams(
+// DeviceQueryParam.builder()
+// .domains(List.of(DeviceDomainEnum.GATEWAY.getVal(), DeviceDomainEnum.DOCK.getVal()))
+// .nickname(nickname)
+// .build());
+//
+// // 在獲取设备列表时,顺便获取直播地址
+// for(DeviceDTO devices : devicesList){
+// _liveStreamHandler.StartLiveStreaming(devices.getDeviceSn());
+// _liveStreamHandler.StartLiveStreaming(devices.getChildDeviceSn());
+// ArdCamera ardCamera = new ArdCamera();
+// ardCamera.setDockId(devices.getId());
+// List<ArdCamera> ardCameraList = _cameraService.selectArdCameraList(ardCamera);
+// for(ArdCamera ardCamera1 : ardCameraList){
+// for(ArdChannel ardChannel : ardCamera1.getChannelList()) {
+// if(ardChannel.getChanNo() == 1) {
+// // 修改列表中外接相机地址
+// updateCameraWebrtcUrl(devices.getDeviceSn(), ardChannel.getArdVtdu().getWebrtcUrl());
+// }
+// }
+// }
+// }
+//
+// devicesList.stream()
+// .filter(gateway -> DeviceDomainEnum.DOCK.getVal() == gateway.getDomain() ||
+// RedisOpsUtils.checkExist(RedisConst.DEVICE_ONLINE_PREFIX + gateway.getDeviceSn()))
+// .forEach(this::spliceDeviceTopoPer);
+//
+// return devicesList;
+// }
+
+// @Override
+// public void spliceDeviceTopoCamera(DeviceDTO gateway) {
+// gateway.setStatus(RedisOpsUtils.checkExist(RedisConst.DEVICE_ONLINE_PREFIX + gateway.getDeviceSn()));
+// // sub device
+// if (!StringUtils.hasText(gateway.getChildDeviceSn())) {
+// return;
+// }
+// DeviceDTO subDevice =
+// getDevicesByParams(DeviceQueryParam.builder().deviceSn(gateway.getChildDeviceSn()).build()).get(0);
+// subDevice.setStatus(RedisOpsUtils.checkExist(RedisConst.DEVICE_ONLINE_PREFIX + subDevice.getDeviceSn()));
+// gateway.setChildren(subDevice);
+// }
+
+// /**
+// * 按nickname筛选列表
+// * */
+// @Override
+// public List<DeviceDTO> getDockCameraListByParams(DeviceQueryParam param) {
+// return mapper.selectListPer(
+// new LambdaQueryWrapper<DeviceEntity>()
+// .eq(StringUtils.hasText(param.getDeviceSn()),
+// DeviceEntity::getDeviceSn, param.getDeviceSn())
+// .eq(param.getDeviceType() != null,
+// DeviceEntity::getDeviceType, param.getDeviceType())
+// .eq(param.getSubType() != null,
+// DeviceEntity::getSubType, param.getSubType())
+// .eq(StringUtils.hasText(param.getChildSn()),
+// DeviceEntity::getChildSn, param.getChildSn())
+// .and(!CollectionUtils.isEmpty(param.getDomains()), wrapper -> {
+// for (Integer domain : param.getDomains()) {
+// wrapper.eq(DeviceEntity::getDomain, domain).or();
+// }
+// })
+// .eq(param.getBoundStatus() != null, DeviceEntity::getBoundStatus,
+// param.getBoundStatus())
+// .like(param.getNickname()!=null, DeviceEntity::getNickname, "%" + param.getNickname() + "%")
+// .orderBy(param.isOrderBy(),
+// param.isAsc(), DeviceEntity::getId))
+// .stream()
+// .map(this::deviceEntityConvertToDTO)
+// .collect(Collectors.toList());
+// }
+
+
+ // endregion
+
@Override
public Optional<TopologyDeviceDTO> getDeviceTopoForPilot(String sn) {
if (sn.isBlank()) {
--
Gitblit v1.9.3