diff --git a/WeiCloud.Fusion/AlarmService/Alarm.DomainService/DahAlarm/DahuaGeneralCtlService.cs b/WeiCloud.Fusion/AlarmService/Alarm.DomainService/DahAlarm/DahuaGeneralCtlService.cs
index ac3bb43..1b4b099 100644
--- a/WeiCloud.Fusion/AlarmService/Alarm.DomainService/DahAlarm/DahuaGeneralCtlService.cs
+++ b/WeiCloud.Fusion/AlarmService/Alarm.DomainService/DahAlarm/DahuaGeneralCtlService.cs
@@ -280,18 +280,17 @@ namespace Alarm.DomainService.DahAlarm
///
///
///
- public async Task> GetEventList(string name = "alarm")
+ public async Task> GetEventList(string name = "alarm")
{
var clientId = _configuration["DahuaAuth:ClientId"];
var token = await _tokenProviderService.GetTokenAsync(clientId!);
if (!_tokenProviderService.IsTokenValid(token))
{
_logger.LogWarning("获取事件列表:token无效");
- return new DaHApiResult { Success = false, Code = "1009", Msg = "token无效" };
+ return new DaHApiResult { Success = false, Code = "1009", Msg = "token无效" };
}
- // var url = $"https://{_configuration["DahuaAuth:Host"]}/evo-apigw/evo-brm/1.0.0/device/1000021";
+ // var url = $"http://demo.weienergy.cn:15230/open-api/token/v1/oauth/token?client_id=69591850&client_secret=WHcpAryKFc28suzL&grant_type=client_credentials";
var url = $"https://{_configuration["DahuaAuth:Host"]}/evo-apigw/evo-event/1.0.0/subscribe/subscribe-list?monitorType=url&category={name}";
-
try
{
var request = new HttpRequestMessage(HttpMethod.Get, url);
@@ -304,14 +303,14 @@ namespace Alarm.DomainService.DahAlarm
if (!resp.IsSuccessStatusCode)
{
_logger.LogWarning("实时流请求 HTTP 失败: {Status}, Body: {Body}", (int)resp.StatusCode, body);
- return new DaHApiResult { Success = false, Code = "1010", Msg = $"HTTP错误 {(int)resp.StatusCode}" };
+ return new DaHApiResult { Success = false, Code = "1010", Msg = $"HTTP错误 {(int)resp.StatusCode}" };
}
- var result = JsonSerializer.Deserialize>(body);
+ var result = JsonSerializer.Deserialize>(body);
if (result == null || !result.Success)
{
_logger.LogWarning("实时流请求业务失败: {Body}", body);
- return new DaHApiResult { Success = false, Code = "1010", Msg = "实时流请求失败" };
+ return new DaHApiResult { Success = false, Code = "1010", Msg = "实时流请求失败" };
}
return result;
@@ -319,7 +318,7 @@ namespace Alarm.DomainService.DahAlarm
catch (Exception ex)
{
_logger.LogError(ex, "大华实时流请求出错");
- return new DaHApiResult { Success = false, Code = "1010", Msg = "实时流请求失败" };
+ return new DaHApiResult { Success = false, Code = "1010", Msg = "实时流请求失败" };
}
}
diff --git a/WeiCloud.Fusion/AlarmService/Alarm.DomainService/DahAlarm/IDahuaGeneralCtlService.cs b/WeiCloud.Fusion/AlarmService/Alarm.DomainService/DahAlarm/IDahuaGeneralCtlService.cs
index 7a06401..e419693 100644
--- a/WeiCloud.Fusion/AlarmService/Alarm.DomainService/DahAlarm/IDahuaGeneralCtlService.cs
+++ b/WeiCloud.Fusion/AlarmService/Alarm.DomainService/DahAlarm/IDahuaGeneralCtlService.cs
@@ -16,7 +16,7 @@ namespace Alarm.DomainService.DahAlarm
Task DeleteEvent(string name);
- Task> GetEventList(string name = "alarm");
+ Task> GetEventList(string name = "alarm");
///
/// AddSubscribeEvent回调函数处理
diff --git a/WeiCloud.Fusion/AlarmService/AlarmService.API/Controllers/AlarmController.cs b/WeiCloud.Fusion/AlarmService/AlarmService.API/Controllers/AlarmController.cs
index 2f3665d..09e7dc8 100644
--- a/WeiCloud.Fusion/AlarmService/AlarmService.API/Controllers/AlarmController.cs
+++ b/WeiCloud.Fusion/AlarmService/AlarmService.API/Controllers/AlarmController.cs
@@ -48,7 +48,7 @@ namespace AlarmService.API.Controllers
///
///
[HttpGet]
- public async Task> GetEventList(string name = "alarm")
+ public async Task> GetEventList(string name = "alarm")
{
return await _generalCtlService.GetEventList(name);
diff --git a/WeiCloud.Fusion/AlarmService/AlarmService.API/appsettings.json b/WeiCloud.Fusion/AlarmService/AlarmService.API/appsettings.json
index ea44d24..3325ece 100644
--- a/WeiCloud.Fusion/AlarmService/AlarmService.API/appsettings.json
+++ b/WeiCloud.Fusion/AlarmService/AlarmService.API/appsettings.json
@@ -27,7 +27,7 @@
"ClientSecret": "6d6c78f8-3d4c-4e76-ab6b-827942a7b725",
"Username": "system",
"Password": "Admin123",
- "Callback": "http://demo.weienergy.cn/axalarm/api/Alarm/DahuaAuthCallback",
+ "Callback": "http://192.168.21.42:18080/axalarm/api/Alarm/DahuaAuthCallback",
"SubsystemName": "59.110.150.214_alarm",
"SubsystemMagic": "59.110.150.214_12013"
}
diff --git a/WeiCloud.Fusion/Common.SharedService/Common.Shared.Application/DaHua/ResponeDto/EventEnvelopeDto.cs b/WeiCloud.Fusion/Common.SharedService/Common.Shared.Application/DaHua/ResponeDto/EventEnvelopeDto.cs
index 299ec22..3ddd1a5 100644
--- a/WeiCloud.Fusion/Common.SharedService/Common.Shared.Application/DaHua/ResponeDto/EventEnvelopeDto.cs
+++ b/WeiCloud.Fusion/Common.SharedService/Common.Shared.Application/DaHua/ResponeDto/EventEnvelopeDto.cs
@@ -120,101 +120,53 @@ namespace Common.Shared.Application.DaHua
public JsonElement? Extend { get; set; }
}
- ///
- /// 订阅映射配置
- /// 用于定义不同服务节点的订阅参数配置
- ///
- public class SubscriptionMapDto
+ public sealed class SubscribeDataDto
{
- ///
- /// 订阅配置字典
- /// 键:服务节点标识(格式:IP地址_端口号)
- /// 值:该节点的订阅参数列表
- ///
- public Dictionary>? Items { get; set; } = new Dictionary>();
+ [JsonPropertyName("subscribeMap")]
+ public SubscribeMap? SubscribeMap { get; set; }
}
///
- /// 订阅配置项
- /// 定义单个订阅的具体参数
+ /// 语义化的字典类型:键为如 "59.110.150.214_alarm" 的分组名,值为该分组下的一组订阅项。
+ /// 继承 Dictionary 便于序列化/反序列化,保持类型语义。
///
- public class SubscriptionConfig
+ public class SubscribeMap : Dictionary>
+ {
+ public SubscribeMap() : base()
+ {
+ }
+ }
+
+ public sealed class SubscribeItem
{
///
- /// 订阅类型列表
- /// 可为空,表示订阅所有类型
+ /// 事件类型编码;上游可能给字符串形式的数字,保持字符串列表以兼容。
///
[JsonPropertyName("types")]
public List? Types { get; set; }
- ///
- /// 节点编码列表
- /// 可为空,表示订阅所有节点
- ///
[JsonPropertyName("nodeCodes")]
public List? NodeCodes { get; set; }
- ///
- /// 组织机构列表
- /// 可为空,表示订阅所有组织
- ///
[JsonPropertyName("orgs")]
public List? Orgs { get; set; }
- ///
- /// 等级列表
- /// 可为空,表示订阅所有等级
- ///
[JsonPropertyName("grades")]
public List? Grades { get; set; }
- ///
- /// 域订阅级别
- /// 枚举值:
- /// 0 = 不订阅
- /// 1 = 订阅本域
- /// 2 = 订阅本域及下级域
- ///
[JsonPropertyName("domainSubscribe")]
- public int DomainSubscribe { get; set; }
+ public int? DomainSubscribe { get; set; }
- ///
- /// 传输方案
- /// 枚举值:
- /// 0 = HTTP
- /// 1 = HTTPS
- /// 2 = WebSocket
- /// 3 = MQTT
- ///
[JsonPropertyName("scheme")]
- public int Scheme { get; set; }
+ public int? Scheme { get; set; }
- ///
- /// 事件类型
- /// 枚举值:
- /// 0 = 所有事件
- /// 1 = 告警事件
- /// 2 = 状态事件
- /// 3 = 操作事件
- ///
[JsonPropertyName("eventType")]
- public int EventType { get; set; }
+ public int? EventType { get; set; }
- ///
- /// 监控回调地址
- /// 接收事件推送的目标URL
- ///
[JsonPropertyName("monitor")]
- public string Monitor { get; set; } = string.Empty;
+ public string? Monitor { get; set; }
- ///
- /// 监控类型
- /// 枚举值:
- /// "url" = HTTP/HTTPS 回调
- /// "websocket" = WebSocket 连接
- /// "queue" = 消息队列
- ///
[JsonPropertyName("monitorType")]
- public string MonitorType { get; set; } = string.Empty;
+ public string? MonitorType { get; set; }
}
}
\ No newline at end of file