feat(device): 支持按多个景区ID查询设备列表

- 在 DeviceV2Client 中新增 scenicIds 查询参数
- 修改 DeviceIntegrationService.listDevices 方法以支持 scenicIds 参数
- 优化参数优先级逻辑:scenicId 优先于 scenicIds
- 更新所有调用点以传递新的 scenicIds 参数
- 保持向后兼容性,确保原有接口行为不变
- 增加日志记录以便调试和监控参数使用情况
This commit is contained in:
2025-12-02 09:39:04 +08:00
parent 9becd6bfa7
commit 36f85dbb63
10 changed files with 43 additions and 23 deletions

View File

@@ -60,7 +60,8 @@ public interface DeviceV2Client {
@RequestParam(value = "no", required = false) String no,
@RequestParam(value = "type", required = false) String type,
@RequestParam(value = "isActive", required = false) Integer isActive,
@RequestParam(value = "scenicId", required = false) Long scenicId);
@RequestParam(value = "scenicId", required = false) Long scenicId,
@RequestParam(value = "scenicIds", required = false) String scenicIds);
/**
* 根据配置条件筛选设备

View File

@@ -67,11 +67,28 @@ public class DeviceIntegrationService {
}
public PageResponse<DeviceV2DTO> listDevices(Integer page, Integer pageSize, String name, String no,
String type, Integer isActive, Long scenicId) {
log.debug("分页查询设备列表, page: {}, pageSize: {}, name: {}, no: {}, type: {}, isActive: {}, scenicId: {}",
page, pageSize, name, no, type, isActive, scenicId);
String type, Integer isActive, Long scenicId, String scenicIds) {
log.debug("分页查询设备列表, page: {}, pageSize: {}, name: {}, no: {}, type: {}, isActive: {}, scenicId: {}, scenicIds: {}",
page, pageSize, name, no, type, isActive, scenicId, scenicIds);
// 参数优先级处理:scenicId 优先于 scenicIds
Long finalScenicId = null;
String finalScenicIds = null;
if (scenicId != null) {
// 优先使用单个 scenicId(向后兼容)
finalScenicId = scenicId;
finalScenicIds = null;
log.debug("使用单个 scenicId 参数: {}", finalScenicId);
} else if (scenicIds != null && !scenicIds.trim().isEmpty()) {
// 使用 scenicIds
finalScenicId = null;
finalScenicIds = scenicIds;
log.debug("使用 scenicIds 参数: {}", finalScenicIds);
}
CommonResponse<PageResponse<DeviceV2DTO>> response = deviceV2Client.listDevices(
page, pageSize, name, no, type, isActive, scenicId);
page, pageSize, name, no, type, isActive, finalScenicId, finalScenicIds);
return handleResponse(response, "分页查询设备列表失败");
}
@@ -163,14 +180,14 @@ public class DeviceIntegrationService {
* 获取景区的IPC设备列表
*/
public PageResponse<DeviceV2DTO> getScenicIpcDevices(Long scenicId, Integer page, Integer pageSize) {
return listDevices(page, pageSize, null, null, "IPC", 1, scenicId);
return listDevices(page, pageSize, null, null, "IPC", 1, scenicId, null);
}
/**
* 获取景区的所有激活设备
*/
public PageResponse<DeviceV2DTO> getScenicActiveDevices(Long scenicId, Integer page, Integer pageSize) {
return listDevices(page, pageSize, null, null, null, 1, scenicId);
return listDevices(page, pageSize, null, null, null, 1, scenicId, null);
}
/**

View File

@@ -39,7 +39,8 @@ public interface ScenicV2Client {
CommonResponse<PageResponse<ScenicV2DTO>> listScenics(@RequestParam(defaultValue = "1") Integer page,
@RequestParam(defaultValue = "10") Integer pageSize,
@RequestParam(required = false) Integer status,
@RequestParam(required = false) String name);
@RequestParam(required = false) String name,
@RequestParam(required = false) String scenicIds);
// ==================== Scenic Config V2 Operations ====================

View File

@@ -63,9 +63,10 @@ public class ScenicIntegrationService {
return handleResponse(response, "筛选景区失败");
}
public PageResponse<ScenicV2DTO> listScenics(Integer page, Integer pageSize, Integer status, String name) {
log.debug("分页查询景区列表, page: {}, pageSize: {}, status: {}, name: {}", page, pageSize, status, name);
CommonResponse<PageResponse<ScenicV2DTO>> response = scenicV2Client.listScenics(page, pageSize, status, name);
public PageResponse<ScenicV2DTO> listScenics(Integer page, Integer pageSize, Integer status, String name, String scenicIds) {
log.debug("分页查询景区列表, page: {}, pageSize: {}, status: {}, name: {}, scenicIds: {}",
page, pageSize, status, name, scenicIds);
CommonResponse<PageResponse<ScenicV2DTO>> response = scenicV2Client.listScenics(page, pageSize, status, name, scenicIds);
return handleResponse(response, "分页查询景区列表失败");
}