dev_lx #39

Merged
LiuXin merged 7 commits from dev_lx into main 4 weeks ago
  1. 6
      WeiCloud.Fusion/AlarmService/Alarm.DomainService/DahAlarm/DahuaGeneralCtlService.cs
  2. 2
      WeiCloud.Fusion/Common.SharedService/Common.Shared.Application/Common.Shared.Application.csproj
  3. 29
      WeiCloud.Fusion/Common.SharedService/Common.Shared.Application/SafetyFirePro/RequestDto/SunPlaceBoardWorkOrderReqDto.cs
  4. 3
      WeiCloud.Fusion/Common.SharedService/Common.Shared.Application/SafetyFirePro/ResponseDto/SunPalaceBoardResDto.cs
  5. 2
      WeiCloud.Fusion/ReadME.md
  6. 32
      WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.Application/ShenZhouShengAn/RequestDto/ThirdPartyProviderQueryDto.cs
  7. 24
      WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.DomainService/PuCe/SunPlaceBoardWorkOrderService.cs
  8. 4
      WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.DomainService/PuTianSuYuan/SunPalaceBoardFacilityService.cs
  9. 82
      WeiCloud.Fusion/ThirdPartyServices/ThirdPartyServices.DomainService/ShenZhouShengAn/SunPalaceBoardSafetyService.cs
  10. 108
      WeiCloud.Fusion/VideoService/Video.DomainService/Dahvision/DahuaGeneralCtlService.cs
  11. 5
      WeiCloud.Fusion/WeiCloud.Fusion.sln

@ -128,7 +128,7 @@ namespace Alarm.DomainService.DahAlarm
if (!_tokenProviderService.IsTokenValid(token))
{
_logger.LogWarning("新增报警事件订阅:token无效");
return new DaHApiResult<object> { Success = false, Code = "1009", Msg = "token无效" };
return new DaHApiResult<object> { Success = false, Code = "1009", Msg = "新增报警事件订阅异常" };
}
// —— 发起请求 ——
using var request = new HttpRequestMessage(HttpMethod.Post, url)
@ -153,7 +153,7 @@ namespace Alarm.DomainService.DahAlarm
{
Success = false,
Code = "2002",
Msg = $"HTTP {resp.StatusCode} 或响应为空"
Msg = $"新增报警事件订阅异常"
};
}
@ -163,7 +163,7 @@ namespace Alarm.DomainService.DahAlarm
{
Success = false,
Code = body.Code ?? "2003",
Msg = body.Msg ?? "订阅失败"
Msg = "新增报警事件订阅异常"
};
}

@ -7,7 +7,7 @@
</PropertyGroup>
<PropertyGroup>
<PackageId>Common.Shared.Application</PackageId>
<Version>3.8.0</Version>
<Version>4.2</Version>
<Authors>zrh-lx</Authors>
<Company>zrh-lx</Company> <!-- 可选 -->
<Description>包含所有公共使用的 DTO、契约、接口模型等,供微服务之间共享使用</Description>

@ -173,4 +173,33 @@ namespace Common.Shared.Application.SafetyFirePro.RequestDto
/// </summary>
public required string Name { get; set; }
}
public class DangerInfoQueryDto
{
public int? Ubpid { get; set; }
/// <summary>
/// /隐患状态:0待核查,1待整改,2待验收,3治理完毕,4不是隐患
/// </summary>
public string? Status { get; set; }
/// <summary>
/// 第三方定义的隐患等级2一般隐患,3重大隐患
/// </summary>
public string? Result { get; set; }
public int? Page { get; set; }
public int? Branch_id { get; set; }
public string? Start_time { get; set; }
public string? End_time { get; set; }
public long? P_region_id { get; set; }
public long? Region_id { get; set; }
public int? Page_size { get; set; }
}
}

@ -427,6 +427,9 @@ namespace Common.Shared.Application.SafetyFirePro.ResponseDto
[JsonPropertyName("monitor")]
public List<MonitorDto> Monitor { get; set; }
[JsonPropertyName("unigueCode")]
public string? UnigueCode { get; set; }
[JsonPropertyName("ristType")]
public RistTypeWrapper RistType { get; set; }

@ -0,0 +1,2 @@
# 融合通信模块
1. 目前嵌入到是青鸾公司融合通信模块

@ -40,38 +40,6 @@ namespace ThirdPartyServices.Application.ShenZhouShengAn.RequestDto
public int Uid { get; set; } = 0;
}
/// <summary>
/// 条件组合查询隐患数据
/// </summary>
public class DangerInfoQueryDto
{
public int? Ubpid { get; set; }
/// <summary>
/// /隐患状态:0待核查,1待整改,2待验收,3治理完毕,4不是隐患
/// </summary>
public string Status { get; set; }
/// <summary>
/// 第三方定义的隐患等级2一般隐患,3重大隐患
/// </summary>
public string? Result { get; set; }
public int? Page { get; set; }
public int? Branch_id { get; set; }
public string? Start_time { get; set; }
public string? End_time { get; set; }
public long? P_region_id { get; set; }
public long? Region_id { get; set; }
public int? Page_size { get; set; }
}
/// <summary>
/// 获得四色图区域列表请求参数
/// </summary>

@ -49,8 +49,8 @@ namespace ThirdPartyServices.DomainService.PuCe
if (!resp.IsSuccessStatusCode)
{
_logger.LogWarning($"工单列表查询接口请求失败,{body}");
return ApiResult<List<WorkOrderInfoDto>>.IsFail($"工单列表查询接口请求失败,{body}");
_logger.LogWarning($"工单列表查询接口请求异常,{body}");
return ApiResult<List<WorkOrderInfoDto>>.IsFail($"工单列表查询请求异常");
}
var httppReult = JsonSerializer.Deserialize<HttpClientResult<List<WorkOrderInfoDto>>>(body);
@ -60,14 +60,14 @@ namespace ThirdPartyServices.DomainService.PuCe
}
else
{
_logger.LogWarning($"工单列表查询接口请求失败,{body}");
return ApiResult<List<WorkOrderInfoDto>>.IsFail($"工单列表查询接口请求失败,{body}");
_logger.LogWarning($"工单列表查询接口请求异常,{body}");
return ApiResult<List<WorkOrderInfoDto>>.IsFail($"工单列表查询请求异常");
}
}
catch (Exception ex)
{
_logger.LogError(ex, "工单列表查询接口请求失败");
return ApiResult<List<WorkOrderInfoDto>>.IsFail($"工单列表查询接口请求失败{ex.Message}");
_logger.LogError(ex, "工单列表查询接口请求异常");
return ApiResult<List<WorkOrderInfoDto>>.IsFail($"工单列表查询请求异常");
}
return result;
}
@ -91,8 +91,8 @@ namespace ThirdPartyServices.DomainService.PuCe
if (!resp.IsSuccessStatusCode)
{
_logger.LogWarning($"工单时间轴接口请求失败,{body}");
return ApiResult<List<WorkOrderTimelineDto>>.IsFail($"工单时间轴接口请求失败,{body}");
_logger.LogWarning($"工单时间轴接口请求异常,{body}");
return ApiResult<List<WorkOrderTimelineDto>>.IsFail($"工单时间请求异常");
}
var httppReult = JsonSerializer.Deserialize<HttpClientResult<List<WorkOrderTimelineDto>>>(body);
@ -102,14 +102,14 @@ namespace ThirdPartyServices.DomainService.PuCe
}
else
{
_logger.LogWarning($"工单时间轴接口请求失败,{body}");
return ApiResult<List<WorkOrderTimelineDto>>.IsFail($"工单时间轴接口请求失败,{body}");
_logger.LogWarning($"工单时间轴接口请求异常,{body}");
return ApiResult<List<WorkOrderTimelineDto>>.IsFail($"工单时间请求异常");
}
}
catch (Exception ex)
{
_logger.LogError(ex, "工单时间轴接口请求失败");
return ApiResult<List<WorkOrderTimelineDto>>.IsFail($"工单时间轴接口请求失败{ex.Message}");
_logger.LogError(ex, "工单时间轴接口请求异常");
return ApiResult<List<WorkOrderTimelineDto>>.IsFail($"工单时间请求异常");
}
return result;
}

@ -139,7 +139,7 @@ namespace ThirdPartyServices.DomainService.PuTianSuYuan
catch (Exception ex)
{
_logger.LogWarning(ex, "GetAssetDashboardEchart接口出错");
return ApiResult<List<AssetOverviewResDto>>.IsFail($"GetAssetDashboardEchart接口出错{ex.Message}");
return ApiResult<List<AssetOverviewResDto>>.IsFail($"资产仪表盘数据请求异常");
}
return result;
}
@ -201,7 +201,7 @@ namespace ThirdPartyServices.DomainService.PuTianSuYuan
catch (Exception ex)
{
_logger.LogWarning(ex, "GetAssetTypeEchart接口出错");
return ApiResult<List<AssetTypeResDto>>.IsFail($"GetAssetTypeEchart接口出错{ex.Message}");
return ApiResult<List<AssetTypeResDto>>.IsFail($"资产类型请求异常");
}
return result;
}

@ -40,15 +40,15 @@ namespace ThirdPartyServices.DomainService.ShenZhouShengAn
if (string.IsNullOrWhiteSpace(token))
{
_logger.LogWarning("GetListFloor接口获取token失败");
return ApiResult<FloorResDto>.IsFail("GetListFloor接口获取token失败");
return ApiResult<FloorResDto>.IsFail("四色图图层列表请求异常");
}
//获取用户配置
HttpClientResult<LoginUsersConfiguration> loginUsers = await _tokenProviderService.GetUserConfiguration(token);
if (loginUsers.Code == "Error")
if (loginUsers.Code == "Error" || loginUsers.Data == null)
{
_logger.LogWarning("GetListFloor接口获取用户配置失败");
return ApiResult<FloorResDto>.IsFail("GetListFloor接口获取用户配置失败");
return ApiResult<FloorResDto>.IsFail("四色图图层列表请求异常");
}
//生产风险识别
@ -65,7 +65,7 @@ namespace ThirdPartyServices.DomainService.ShenZhouShengAn
catch (Exception ex)
{
_logger.LogWarning(ex, "GetListFloor接口出错");
return ApiResult<FloorResDto>.IsFail($"GetListFloor接口出错{ex.Message}");
return ApiResult<FloorResDto>.IsFail($"四色图图层列表请求异常");
}
return result;
@ -86,23 +86,23 @@ namespace ThirdPartyServices.DomainService.ShenZhouShengAn
if (string.IsNullOrWhiteSpace(token))
{
_logger.LogWarning("GetProductionRiskEchart接口获取token失败");
return ApiResult<DangerRiskAreaResDto>.IsFail("GetProductionRiskEchart接口获取token失败");
return ApiResult<DangerRiskAreaResDto>.IsFail("生产风险识别请求异常");
}
//获取用户配置
HttpClientResult<LoginUsersConfiguration> loginUsers = await _tokenProviderService.GetUserConfiguration(token);
if (loginUsers.Code == "Error")
if (loginUsers.Code == "Error" || loginUsers.Data == null)
{
_logger.LogWarning("GetProductionRiskEchart接口获取用户配置失败");
return ApiResult<DangerRiskAreaResDto>.IsFail("GetProductionRiskEchart接口获取用户配置失败");
return ApiResult<DangerRiskAreaResDto>.IsFail("生产风险识别请求异常");
}
//获取单位信息
HttpClientResult<BranchResDto> branchs = await _tokenProviderService.GetBranchPermissions(token, loginUsers.Data.Uid);
if (branchs.Code == "Error")
if (branchs.Code == "Error" || branchs.Data == null || branchs.Data.BranchPermissionIds == null || branchs.Data.BranchPermissionIds.Length == 0)
{
_logger.LogWarning("GetProductionRiskEchart接口获取单位信息失败");
return ApiResult<DangerRiskAreaResDto>.IsFail("GetProductionRiskEchart接口获取单位信息失败");
return ApiResult<DangerRiskAreaResDto>.IsFail("生产风险识别请求异常");
}
//生产风险识别
@ -180,7 +180,7 @@ namespace ThirdPartyServices.DomainService.ShenZhouShengAn
catch (Exception ex)
{
_logger.LogWarning(ex, "GetProductionRiskEchart接口出错");
return ApiResult<DangerRiskAreaResDto>.IsFail($"GetProductionRiskEchart接口出错{ex.Message}");
return ApiResult<DangerRiskAreaResDto>.IsFail($"生产风险识别请求异常");
}
return result;
}
@ -201,15 +201,15 @@ namespace ThirdPartyServices.DomainService.ShenZhouShengAn
if (string.IsNullOrWhiteSpace(token))
{
_logger.LogWarning("GetDangerInfos接口获取token失败");
return ApiResult<DangerInfoRootResDto>.IsFail("GetDangerInfos接口获取token失败");
return ApiResult<DangerInfoRootResDto>.IsFail("指定区域隐患数据请求异常");
}
//获取用户配置
HttpClientResult<LoginUsersConfiguration> loginUsers = await _tokenProviderService.GetUserConfiguration(token);
if (loginUsers.Code == "Error")
if (loginUsers.Code == "Error" || loginUsers.Data == null)
{
_logger.LogWarning("GetDangerInfos接口获取用户配置失败");
return ApiResult<DangerInfoRootResDto>.IsFail("GetDangerInfos接口获取用户配置失败");
return ApiResult<DangerInfoRootResDto>.IsFail("指定区域隐患数据请求异常");
}
dto.Ubpid = loginUsers.Data.Ubpid;
@ -226,7 +226,7 @@ namespace ThirdPartyServices.DomainService.ShenZhouShengAn
catch (Exception ex)
{
_logger.LogWarning(ex, "GetDangerInfos接口出错");
return ApiResult<DangerInfoRootResDto>.IsFail($"GetDangerInfos接口出错{ex.Message}");
return ApiResult<DangerInfoRootResDto>.IsFail($"指定区域隐患数据请求异常");
}
return result;
}
@ -247,15 +247,15 @@ namespace ThirdPartyServices.DomainService.ShenZhouShengAn
if (string.IsNullOrWhiteSpace(token))
{
_logger.LogWarning("GetRiskMapInfo接口获取token失败");
return ApiResult<RootReqDto>.IsFail("GetRiskMapInfo接口获取token失败");
return ApiResult<RootReqDto>.IsFail("四色图区域列表请求异常");
}
//获取用户配置
HttpClientResult<LoginUsersConfiguration> loginUsers = await _tokenProviderService.GetUserConfiguration(token);
if (loginUsers.Code == "Error")
if (loginUsers.Code == "Error" || loginUsers.Data == null)
{
_logger.LogWarning("GetRiskMapInfo接口获取用户配置失败");
return ApiResult<RootReqDto>.IsFail("GetRiskMapInfo接口获取用户配置失败");
return ApiResult<RootReqDto>.IsFail("四色图区域列表请求异常");
}
//生产风险识别
@ -280,7 +280,7 @@ namespace ThirdPartyServices.DomainService.ShenZhouShengAn
catch (Exception ex)
{
_logger.LogWarning(ex, $"GetRiskMapInfo接口出错");
return ApiResult<RootReqDto>.IsFail($"GetRiskMapInfo接口出错{ex.Message}");
return ApiResult<RootReqDto>.IsFail($"四色图区域列表请求异常");
}
return result;
@ -303,23 +303,23 @@ namespace ThirdPartyServices.DomainService.ShenZhouShengAn
if (string.IsNullOrWhiteSpace(token))
{
_logger.LogWarning("GetProductionRiskEchart接口获取token失败");
return ApiResult<LedgerDto>.IsFail("GetProductionRiskEchart接口获取token失败");
return ApiResult<LedgerDto>.IsFail("危险作业施工请求异常");
}
//获取用户配置
HttpClientResult<LoginUsersConfiguration> loginUsers = await _tokenProviderService.GetUserConfiguration(token);
if (loginUsers.Code == "Error")
if (loginUsers.Code == "Error" || loginUsers.Data == null)
{
_logger.LogWarning("GetProductionRiskEchart接口获取用户配置失败");
return ApiResult<LedgerDto>.IsFail("GetProductionRiskEchart接口获取用户配置失败");
return ApiResult<LedgerDto>.IsFail("危险作业施工请求异常");
}
//获取单位信息
HttpClientResult<BranchResDto> branchs = await _tokenProviderService.GetBranchPermissions(token, loginUsers.Data.Uid);
if (branchs.Code == "Error")
if (branchs.Code == "Error" || branchs.Data == null || branchs.Data.BranchPermissionIds == null || branchs.Data.BranchPermissionIds.Length == 0)
{
_logger.LogWarning("GetProductionRiskEchart接口获取单位信息失败");
return ApiResult<LedgerDto>.IsFail("GetProductionRiskEchart接口获取单位信息失败");
return ApiResult<LedgerDto>.IsFail("危险作业施工请求异常");
}
dto.Ubpid = loginUsers.Data.Ubpid.ToString();
@ -341,7 +341,7 @@ namespace ThirdPartyServices.DomainService.ShenZhouShengAn
catch (Exception ex)
{
_logger.LogWarning(ex, "GetRiskMapInfo接口出错");
return ApiResult<LedgerDto>.IsFail($"GetRiskMapInfo接口出错{ex.Message}");
return ApiResult<LedgerDto>.IsFail($"危险作业施工请求异常");
}
return result;
@ -364,7 +364,7 @@ namespace ThirdPartyServices.DomainService.ShenZhouShengAn
if (string.IsNullOrWhiteSpace(token))
{
_logger.LogWarning("GetDangerDetail接口获取token失败");
return ApiResult<HazardDataDto>.IsFail("GetDangerDetail接口获取token失败");
return ApiResult<HazardDataDto>.IsFail("隐患详情请求异常");
}
HttpClientResult<object> riskResult = await _tokenProviderService
@ -384,7 +384,7 @@ namespace ThirdPartyServices.DomainService.ShenZhouShengAn
catch (Exception ex)
{
_logger.LogWarning(ex, "GetDangerDetail接口出错");
return ApiResult<HazardDataDto>.IsFail($"GetDangerDetail接口出错{ex.Message}");
return ApiResult<HazardDataDto>.IsFail($"隐患详情请求异常");
}
return result;
@ -406,7 +406,7 @@ namespace ThirdPartyServices.DomainService.ShenZhouShengAn
if (string.IsNullOrWhiteSpace(token))
{
_logger.LogWarning("GetInjureInfo接口获取token失败");
return ApiResult<List<InjureResDto>>.IsFail("GetInjureInfo接口获取token失败");
return ApiResult<List<InjureResDto>>.IsFail("危害辨识项目数据请求异常");
}
//获取用户配置
@ -414,7 +414,7 @@ namespace ThirdPartyServices.DomainService.ShenZhouShengAn
if (loginUsers.Code == "Error")
{
_logger.LogWarning("GetInjureInfo接口获取用户配置失败");
return ApiResult<List<InjureResDto>>.IsFail("GetInjureInfo接口获取用户配置失败");
return ApiResult<List<InjureResDto>>.IsFail("危害辨识项目数据请求异常");
}
InjureReqDto dto = new()
{
@ -439,7 +439,7 @@ namespace ThirdPartyServices.DomainService.ShenZhouShengAn
catch (Exception ex)
{
_logger.LogWarning(ex, "GetInjureInfo接口出错");
return ApiResult<List<InjureResDto>>.IsFail($"GetInjureInfo接口出错{ex.Message}");
return ApiResult<List<InjureResDto>>.IsFail($"危害辨识项目数据请求异常");
}
return result;
@ -461,15 +461,15 @@ namespace ThirdPartyServices.DomainService.ShenZhouShengAn
if (string.IsNullOrWhiteSpace(token))
{
_logger.LogWarning("GetRegionRootInfo接口获取token失败");
return ApiResult<RegionStructureRootDto>.IsFail("GetRegionRootInfo接口获取token失败");
return ApiResult<RegionStructureRootDto>.IsFail("区域空间列表请求异常");
}
//获取用户配置
HttpClientResult<LoginUsersConfiguration> loginUsers = await _tokenProviderService.GetUserConfiguration(token);
if (loginUsers.Code == "Error")
if (loginUsers.Code == "Error" || loginUsers.Data == null)
{
_logger.LogWarning("GetRegionRootInfo接口获取用户配置失败");
return ApiResult<RegionStructureRootDto>.IsFail("GetRegionRootInfo接口获取用户配置失败");
return ApiResult<RegionStructureRootDto>.IsFail("区域空间列表请求异常");
}
dto.Ubpid = loginUsers.Data.Ubpid;
@ -490,7 +490,7 @@ namespace ThirdPartyServices.DomainService.ShenZhouShengAn
catch (Exception ex)
{
_logger.LogWarning(ex, "GetRegionRootInfo接口出错");
return ApiResult<RegionStructureRootDto>.IsFail($"GetRegionRootInfo接口出错{ex.Message}");
return ApiResult<RegionStructureRootDto>.IsFail($"区域空间列表请求异常");
}
return result;
@ -504,7 +504,7 @@ namespace ThirdPartyServices.DomainService.ShenZhouShengAn
/// <exception cref="NotImplementedException"></exception>
public async Task<ApiResult<List<StatisticsInfoDto>>> GetStatistics(WorkTaskQueryParamsDto dto)
{
ApiResult<List<StatisticsInfoDto>> result = new ApiResult<List<StatisticsInfoDto>>() { Code = 200, Msg = "接口调用成功", Data = new() };
ApiResult<List<StatisticsInfoDto>> result = new ApiResult<List<StatisticsInfoDto>>() { Code = 200, Msg = "接口调用成功", Data = [] };
try
{
@ -513,23 +513,23 @@ namespace ThirdPartyServices.DomainService.ShenZhouShengAn
if (string.IsNullOrWhiteSpace(token))
{
_logger.LogWarning("GetStatistics接口获取token失败");
return ApiResult<List<StatisticsInfoDto>>.IsFail("GetStatistics接口获取token失败");
return ApiResult<List<StatisticsInfoDto>>.IsFail("危险作业请求异常");
}
//获取用户配置
HttpClientResult<LoginUsersConfiguration> loginUsers = await _tokenProviderService.GetUserConfiguration(token);
if (loginUsers.Code == "Error")
if (loginUsers.Code == "Error" || loginUsers.Data == null)
{
_logger.LogWarning("GetStatistics接口获取用户配置失败");
return ApiResult<List<StatisticsInfoDto>>.IsFail("GetStatistics接口获取用户配置失败");
return ApiResult<List<StatisticsInfoDto>>.IsFail("危险作业请求异常");
}
//获取单位信息
HttpClientResult<BranchResDto> branchs = await _tokenProviderService.GetBranchPermissions(token, loginUsers.Data.Uid);
if (branchs.Code == "Error")
if (branchs.Code == "Error" || branchs.Data == null || branchs.Data.BranchPermissionIds == null || branchs.Data.BranchPermissionIds.Length == 0)
{
_logger.LogWarning("GetStatistics接口获取单位信息失败");
return ApiResult<List<StatisticsInfoDto>>.IsFail("GetStatistics接口获取单位信息失败");
return ApiResult<List<StatisticsInfoDto>>.IsFail("危险作业请求异常");
}
dto.Ubpid = loginUsers.Data.Ubpid.ToString();
@ -595,7 +595,7 @@ namespace ThirdPartyServices.DomainService.ShenZhouShengAn
catch (Exception ex)
{
_logger.LogWarning(ex, "GetStatistics接口出错");
return ApiResult<List<StatisticsInfoDto>>.IsFail($"GetStatistics接口出错{ex.Message}");
return ApiResult<List<StatisticsInfoDto>>.IsFail($"危险作业请求异常");
}
return result;
@ -632,7 +632,7 @@ namespace ThirdPartyServices.DomainService.ShenZhouShengAn
// 4. 已超时:name="3已超时" 的Total求和
var timeoutTotal = originalStats
.Where(dto => dto.Name == "3已超时")
.Where(dto => dto.Name == "3")
.Sum(dto => dto.Total);
// 构造合并后的结果列表

@ -46,7 +46,7 @@ namespace Video.DomainService
if (dto == null || string.IsNullOrWhiteSpace(dto.Data.ChannelId))
{
_logger.LogError("录像请求失败:通道ID不能为空");
return new DaHApiResult<UrlDataDto> { Success = false, Code = "1007", Msg = "通道ID不能为空" };
return new DaHApiResult<UrlDataDto> { Success = false, Code = "2005", Msg = "录像回放请求异常" };
}
try
@ -56,7 +56,7 @@ namespace Video.DomainService
if (!_tokenProviderService.IsTokenValid(token))
{
_logger.LogWarning("hls等录像回放:token无效");
return new DaHApiResult<UrlDataDto> { Success = false, Code = "1009", Msg = "token无效" };
return new DaHApiResult<UrlDataDto> { Success = false, Code = "2005", Msg = "录像回放请求异常" };
}
var url = $"https://{_configuration["DahuaAuth:Host"]}/evo-apigw/admin/API/video/stream/record";
if (ipaddress != null)
@ -79,14 +79,14 @@ namespace Video.DomainService
if (!resp.IsSuccessStatusCode)
{
_logger.LogWarning("录像请求 HTTP 失败: {Status}, Body: {Body}", (int)resp.StatusCode, body);
return new DaHApiResult<UrlDataDto> { Success = false, Code = "1008", Msg = $"HTTP错误 {(int)resp.StatusCode}" };
return new DaHApiResult<UrlDataDto> { Success = false, Code = "2005", Msg = $"录像回放请求异常" };
}
var result = JsonSerializer.Deserialize<DaHApiResult<UrlDataDto>>(body);
if (result == null || !result.Success)
{
_logger.LogWarning("录像请求业务失败: {Body}", body);
return new DaHApiResult<UrlDataDto> { Success = false, Code = "1008", Msg = "录像请求失败" };
return new DaHApiResult<UrlDataDto> { Success = false, Code = "2005", Msg = "录像请求失败" };
}
result.Data!.Url = UrlHostReplacer.ReplaceHost(
result.Data.Url,
@ -99,7 +99,7 @@ namespace Video.DomainService
catch (Exception ex)
{
_logger.LogError(ex, "大华录像请求出错");
return new DaHApiResult<UrlDataDto> { Success = false, Code = "1008", Msg = "录像请求失败" };
return new DaHApiResult<UrlDataDto> { Success = false, Code = "2005", Msg = "录像请求失败" };
}
}
@ -114,14 +114,14 @@ namespace Video.DomainService
// 0) 参数校验 + 早退(按需增加更多必填校验)
if (dto == null)
{
return new DaHApiResult<RecordsResDto> { Success = false, Code = "1009", Msg = "请求参数不能为空" };
return new DaHApiResult<RecordsResDto> { Success = false, Code = "2005", Msg = "查询普通录像信息列表异常" };
}
var clientId = _configuration["DahuaAuth:ClientId"];
var token = await _tokenProviderService.GetTokenAsync(clientId!);
if (!_tokenProviderService.IsTokenValid(token))
{
return new DaHApiResult<RecordsResDto> { Success = false, Code = "1009", Msg = "token无效" };
return new DaHApiResult<RecordsResDto> { Success = false, Code = "2005", Msg = "查询普通录像信息列表异常" };
}
var url = $"https://{_configuration["DahuaAuth:Host"]}/evo-apigw/admin/API/SS/Record/QueryRecords";
@ -142,13 +142,13 @@ namespace Video.DomainService
if (!resp.IsSuccessStatusCode)
{
return new DaHApiResult<RecordsResDto> { Success = false, Code = "1008", Msg = $"HTTP错误 {(int)resp.StatusCode}" };
return new DaHApiResult<RecordsResDto> { Success = false, Code = "2005", Msg = $"查询普通录像信息列表异常" };
}
var result = JsonSerializer.Deserialize<DaHApiResult<RecordsResDto>>(body);
if (result == null || !result.Success)
{
return new DaHApiResult<RecordsResDto> { Success = false, Code = "1008", Msg = "查询录像信息失败" };
return new DaHApiResult<RecordsResDto> { Success = false, Code = "2005", Msg = "查询普通录像信息列表异常" };
}
return result;
@ -156,7 +156,7 @@ namespace Video.DomainService
catch (Exception ex)
{
_logger.LogError(ex, "查询大华录像信息出错");
return new DaHApiResult<RecordsResDto> { Success = false, Code = "1008", Msg = "查询录像信息失败" };
return new DaHApiResult<RecordsResDto> { Success = false, Code = "2005", Msg = "查询普通录像信息列表异常" };
}
}
@ -171,14 +171,14 @@ namespace Video.DomainService
{
if (dto == null)
{
return new DaHApiResult<PageInfoDto> { Success = false, Code = "1009", Msg = "请求参数不能为空" };
return new DaHApiResult<PageInfoDto> { Success = false, Code = "2005", Msg = "设备通道分页查询异常" };
}
var clientId = _configuration["DahuaAuth:ClientId"];
var token = await _tokenProviderService.GetTokenAsync(clientId!);
if (!_tokenProviderService.IsTokenValid(token))
{
return new DaHApiResult<PageInfoDto> { Success = false, Code = "1009", Msg = "token无效" };
return new DaHApiResult<PageInfoDto> { Success = false, Code = "2005", Msg = "设备通道分页查询异常" };
}
var url = $"https://{_configuration["DahuaAuth:Host"]}/evo-apigw/evo-brm/1.2.0/device/channel/subsystem/page";
@ -200,13 +200,13 @@ namespace Video.DomainService
if (!resp.IsSuccessStatusCode)
{
return new DaHApiResult<PageInfoDto> { Success = false, Code = "1007", Msg = $"HTTP错误 {(int)resp.StatusCode}" };
return new DaHApiResult<PageInfoDto> { Success = false, Code = "2005", Msg = $"设备通道分页查询异常" };
}
var result = JsonSerializer.Deserialize<DaHApiResult<PageInfoDto>>(body);
if (result == null || !result.Success)
{
return new DaHApiResult<PageInfoDto> { Success = false, Code = "1007", Msg = $"通道分页查询失败" };
return new DaHApiResult<PageInfoDto> { Success = false, Code = "2005", Msg = $"设备通道分页查询异常" };
}
return result;
@ -214,7 +214,7 @@ namespace Video.DomainService
catch (Exception ex)
{
_logger.LogError(ex, "获取大华设备通道分页查询出错");
return new DaHApiResult<PageInfoDto> { Success = false, Code = "1007", Msg = "获取大华设备通道分页查询失败" };
return new DaHApiResult<PageInfoDto> { Success = false, Code = "2005", Msg = "获取大华设备通道分页查询失败" };
}
}
@ -230,7 +230,7 @@ namespace Video.DomainService
if (dto == null || dto.Data == null)
{
_logger.LogWarning("实时流请求失败:请求参数不能为空");
return new DaHApiResult<UrlDataDto> { Success = false, Code = "1009", Msg = "请求参数不能为空" };
return new DaHApiResult<UrlDataDto> { Success = false, Code = "2005", Msg = "实时预览请求异常" };
}
try
@ -241,7 +241,7 @@ namespace Video.DomainService
if (!_tokenProviderService.IsTokenValid(token))
{
_logger.LogWarning(" HLS实时流请求失败:token无效");
return new DaHApiResult<UrlDataDto> { Success = false, Code = "1009", Msg = "token无效" };
return new DaHApiResult<UrlDataDto> { Success = false, Code = "2005", Msg = "实时预览请求异常" };
}
var url = $"https://{_configuration["DahuaAuth:Host"]}/evo-apigw/admin/API/video/stream/realtime";
@ -250,7 +250,7 @@ namespace Video.DomainService
{
url = $"https://{ipaddress}/evo-apigw/admin/API/video/stream/realtime";
}
dto.Data.StreamType = "2";
// 3) 用 HttpRequestMessage 发送,才能带上自定义头
using var req = new HttpRequestMessage(HttpMethod.Post, url)
{
@ -267,14 +267,14 @@ namespace Video.DomainService
if (!resp.IsSuccessStatusCode)
{
_logger.LogWarning("实时流请求 HTTP 失败: {Status}, Body: {Body}", (int)resp.StatusCode, body);
return new DaHApiResult<UrlDataDto> { Success = false, Code = "1010", Msg = $"HTTP错误 {(int)resp.StatusCode}" };
return new DaHApiResult<UrlDataDto> { Success = false, Code = "2005", Msg = $"实时预览请求异常" };
}
var result = JsonSerializer.Deserialize<DaHApiResult<UrlDataDto>>(body);
if (result == null || !result.Success)
{
_logger.LogWarning("实时流请求业务失败: {Body}", body);
return new DaHApiResult<UrlDataDto> { Success = false, Code = "1010", Msg = "实时流请求失败" };
return new DaHApiResult<UrlDataDto> { Success = false, Code = "2005", Msg = "实时预览请求异常" };
}
result.Data!.Url = UrlHostReplacer.ReplaceHost(
result.Data.Url,
@ -287,7 +287,7 @@ namespace Video.DomainService
catch (Exception ex)
{
_logger.LogError(ex, "大华实时流请求出错");
return new DaHApiResult<UrlDataDto> { Success = false, Code = "1010", Msg = "实时流请求失败" };
return new DaHApiResult<UrlDataDto> { Success = false, Code = "2005", Msg = "实时流请求失败" };
}
}
@ -322,8 +322,8 @@ namespace Video.DomainService
return new DaHApiResult<object>
{
Success = false,
Code = ((int)resp.StatusCode).ToString(),
Msg = $"HTTP错误 {(int)resp.StatusCode}",
Code = "2005",
Msg = $"注销登录失败",
};
}
@ -332,7 +332,7 @@ namespace Video.DomainService
if (result == null)
{
_logger.LogWarning("注销登录反序列化失败: {Body}", body);
return new DaHApiResult<object> { Success = false, Code = "1011", Msg = "注销登录返回无效" };
return new DaHApiResult<object> { Success = false, Code = "2005", Msg = "注销登录失败" };
}
// 只有 Success==false 或 Code != "0" 才视为失败
@ -340,8 +340,8 @@ namespace Video.DomainService
{
_logger.LogWarning("注销登录失败: {Body}", body);
result.Success = false;
result.Code = result.Code ?? "1011";
result.Msg ??= "注销登录失败";
result.Code = "2005";
result.Msg = "注销登录失败";
}
return result;
@ -352,8 +352,8 @@ namespace Video.DomainService
return new DaHApiResult<object>
{
Success = false,
Code = "1011",
Msg = $"注销登录异常:{ex.Message}"
Code = "2005",
Msg = $"注销登录异常"
};
}
}
@ -370,7 +370,7 @@ namespace Video.DomainService
// 参数校验 + 早退
if (dto == null || string.IsNullOrWhiteSpace(dto.Data.ChannelId))
{
return new DaHApiResult<UrlDataDto> { Success = false, Code = "1007", Msg = "通道ID不能为空" };
return new DaHApiResult<UrlDataDto> { Success = false, Code = "2005", Msg = "录像回放异常" };
}
// 先用缓存里的 token,不足5分钟过期再刷新
@ -378,7 +378,7 @@ namespace Video.DomainService
var token = await _tokenProviderService.GetTokenAsync(clientId!);
if (!_tokenProviderService.IsTokenValid(token))
{
return new DaHApiResult<UrlDataDto> { Success = false, Code = "1009", Msg = "token无效" };
return new DaHApiResult<UrlDataDto> { Success = false, Code = "2005", Msg = "录像回放异常" };
}
//查询普通录像信息,这块是为了知道recordType=多少
@ -414,7 +414,7 @@ namespace Video.DomainService
var resultRecord = JsonSerializer.Deserialize<DaHApiResult<RecordDataResDto>>(bodys);
if (resultRecord == null || !resultRecord.Success)
{
return new DaHApiResult<UrlDataDto> { Success = false, Code = "1008", Msg = "查询普通录像信息" };
return new DaHApiResult<UrlDataDto> { Success = false, Code = "2005", Msg = "录像回放异常" };
}
var url = $"https://{_configuration["DahuaAuth:Host"]}/evo-apigw/admin/API/SS/Playback/StartPlaybackByTime";
if (ipaddress != null)
@ -439,13 +439,13 @@ namespace Video.DomainService
if (!resp.IsSuccessStatusCode)
{
return new DaHApiResult<UrlDataDto> { Success = false, Code = "1008", Msg = $"HTTP错误 {(int)resp.StatusCode}" };
return new DaHApiResult<UrlDataDto> { Success = false, Code = "2005 ", Msg = $"录像回放异常" };
}
var result = JsonSerializer.Deserialize<DaHApiResult<UrlDataDto>>(body);
if (result == null || !result.Success)
{
return new DaHApiResult<UrlDataDto> { Success = false, Code = "1008", Msg = "录像请求失败" };
return new DaHApiResult<UrlDataDto> { Success = false, Code = "2005", Msg = "录像回放异常" };
}
result.Data!.Url = UrlHostReplacer.ReplaceHost(
result.Data.Url,
@ -459,7 +459,7 @@ namespace Video.DomainService
catch (Exception ex)
{
_logger.LogError(ex, "录像请求异常");
return new DaHApiResult<UrlDataDto> { Success = false, Code = "1008", Msg = "录像请求失败" };
return new DaHApiResult<UrlDataDto> { Success = false, Code = "2005", Msg = "录像回放异常" };
}
}
@ -474,7 +474,7 @@ namespace Video.DomainService
{
if (dto == null || dto.Data == null)
{
return new DaHApiResult<UrlDataDto> { Success = false, Code = "1005", Msg = "请求参数不能为空" };
return new DaHApiResult<UrlDataDto> { Success = false, Code = "2005", Msg = "录像回放异常" };
}
var clientId = _configuration["DahuaAuth:ClientId"];
@ -482,7 +482,7 @@ namespace Video.DomainService
if (!_tokenProviderService.IsTokenValid(token))
{
return new DaHApiResult<UrlDataDto> { Success = false, Code = "1009", Msg = "token无效" };
return new DaHApiResult<UrlDataDto> { Success = false, Code = "2005", Msg = "录像回放异常" };
}
var url = $"https://{_configuration["DahuaAuth:Host"]}/evo-apigw/admin/API/MTS/Video/StartVideo";
@ -507,13 +507,13 @@ namespace Video.DomainService
var body = await reader.ReadToEndAsync();
if (!resp.IsSuccessStatusCode)
{
return new DaHApiResult<UrlDataDto> { Success = false, Code = "1014", Msg = $"HTTP错误 {(int)resp.StatusCode}" };
return new DaHApiResult<UrlDataDto> { Success = false, Code = "2005", Msg = $"录像回放异常" };
}
var result = JsonSerializer.Deserialize<DaHApiResult<UrlDataDto>>(body);
if (result == null || !result.Success)
{
return new DaHApiResult<UrlDataDto> { Success = false, Code = "1013", Msg = "实时流请求业务反序列化失败" };
return new DaHApiResult<UrlDataDto> { Success = false, Code = "2005", Msg = "录像回放异常" };
}
result.Data!.Url = UrlHostReplacer.ReplaceHost(
result.Data.Url,
@ -527,7 +527,7 @@ namespace Video.DomainService
{
_logger.LogError(ex, $"大华实时流请求出错{ex.Message}");
return new DaHApiResult<UrlDataDto> { Success = false, Code = "1012", Msg = $"实时流请求失败{ex.Message}" };
return new DaHApiResult<UrlDataDto> { Success = false, Code = "2005", Msg = $"录像回放异常" };
}
}
@ -568,7 +568,7 @@ namespace Video.DomainService
if (!_tokenProviderService.IsTokenValid(token))
{
return new DaHApiResult<SnapshotResDto> { Success = false, Code = "1009", Msg = "token无效" };
return new DaHApiResult<SnapshotResDto> { Success = false, Code = "2005", Msg = "抓拍异常" };
}
var url = $"https://{_configuration["DahuaAuth:Host"]}/evo-apigw/admin/API/EVO/invoke/DMS";
@ -590,17 +590,17 @@ namespace Video.DomainService
var body = await reader.ReadToEndAsync();
if (!resp.IsSuccessStatusCode)
{
return new DaHApiResult<SnapshotResDto> { Success = false, Code = "1014", Msg = $"抓拍错误 {(int)resp.StatusCode}" };
return new DaHApiResult<SnapshotResDto> { Success = false, Code = "2005", Msg = $"抓拍异常" };
}
var outer = JsonSerializer.Deserialize<DaHApiResult<string>>(body);
if (outer == null || !outer.Success || outer.Data == null)
{
return new DaHApiResult<SnapshotResDto> { Success = false, Code = "1013", Msg = "抓拍请求失败" };
return new DaHApiResult<SnapshotResDto> { Success = false, Code = "2005", Msg = "抓拍异常" };
}
var result = JsonSerializer.Deserialize<SnapResponseVO>(outer.Data);
if (result == null)
{
return new DaHApiResult<SnapshotResDto> { Success = false, Code = "1013", Msg = "抓拍反序列化失败" };
return new DaHApiResult<SnapshotResDto> { Success = false, Code = "2005", Msg = "抓拍异常" };
}
apiResult.Data!.PicUrl = $"https://{_configuration["DahuaAuth:Host"]}/evo-apigw/evo-oss/" + result.Params?.PicInfo + $"?token={token.Replace("bearer ", string.Empty)}";
@ -612,7 +612,7 @@ namespace Video.DomainService
{
_logger.LogError(ex, $"抓拍请求出错{ex.Message}");
return new DaHApiResult<SnapshotResDto> { Success = false, Code = "1012", Msg = $"抓拍请求失败{ex.Message}" };
return new DaHApiResult<SnapshotResDto> { Success = false, Code = "2005", Msg = $"抓拍异常{ex.Message}" };
}
}
@ -630,7 +630,7 @@ namespace Video.DomainService
if (!_tokenProviderService.IsTokenValid(token))
{
return new DaHApiResult<CameraControlResDto> { Success = false, Code = "1009", Msg = "token无效" };
return new DaHApiResult<CameraControlResDto> { Success = false, Code = "2005", Msg = "控制云台镜头失败" };
}
var url = $"https://{_configuration["DahuaAuth:Host"]}/evo-apigw/admin/API/DMS/Ptz/OperateCamera";
@ -651,17 +651,17 @@ namespace Video.DomainService
var body = await reader.ReadToEndAsync();
if (!resp.IsSuccessStatusCode)
{
return new DaHApiResult<CameraControlResDto> { Success = false, Code = "1014", Msg = $"控制云台镜头错误 {(int)resp.StatusCode}" };
return new DaHApiResult<CameraControlResDto> { Success = false, Code = "2005", Msg = $"控制云台镜头异常" };
}
var outer = JsonSerializer.Deserialize<DaHApiResult<CameraControlResDto>>(body);
if (outer == null || !outer.Success || outer.Data == null)
{
return new DaHApiResult<CameraControlResDto> { Success = false, Code = "1013", Msg = "控制云台镜头请求失败" };
return new DaHApiResult<CameraControlResDto> { Success = false, Code = "2005", Msg = "控制云台镜头异常" };
}
if (outer.Data == null)
{
return new DaHApiResult<CameraControlResDto> { Success = false, Code = "1013", Msg = "控制云台镜头反序列化失败" };
return new DaHApiResult<CameraControlResDto> { Success = false, Code = "2005", Msg = "控制云台镜头异常" };
}
apiResult.Data = outer.Data;
return apiResult;
@ -670,7 +670,7 @@ namespace Video.DomainService
{
_logger.LogError(ex, $"控制云台镜头请求出错{ex.Message}");
return new DaHApiResult<CameraControlResDto> { Success = false, Code = "1012", Msg = $"控制云台镜头请求失败{ex.Message}" };
return new DaHApiResult<CameraControlResDto> { Success = false, Code = "2005", Msg = $"控制云台镜头异常" };
}
}
@ -688,7 +688,7 @@ namespace Video.DomainService
if (!_tokenProviderService.IsTokenValid(token))
{
return new DaHApiResult<CameraControlResDto> { Success = false, Code = "1009", Msg = "token无效" };
return new DaHApiResult<CameraControlResDto> { Success = false, Code = "2005", Msg = "云台方向控制" };
}
var url = $"https://{_configuration["DahuaAuth:Host"]}/evo-apigw/admin/API/DMS/Ptz/OperateDirect";
@ -709,17 +709,17 @@ namespace Video.DomainService
var body = await reader.ReadToEndAsync();
if (!resp.IsSuccessStatusCode)
{
return new DaHApiResult<CameraControlResDto> { Success = false, Code = "1014", Msg = $"云台方向控制错误 {(int)resp.StatusCode}" };
return new DaHApiResult<CameraControlResDto> { Success = false, Code = "2005", Msg = $"云台方向控制" };
}
var outer = JsonSerializer.Deserialize<DaHApiResult<CameraControlResDto>>(body);
if (outer == null || !outer.Success || outer.Data == null)
{
return new DaHApiResult<CameraControlResDto> { Success = false, Code = "1013", Msg = "云台方向控制请求失败" };
return new DaHApiResult<CameraControlResDto> { Success = false, Code = "2005", Msg = "控制云台镜头异常" };
}
if (outer.Data == null)
{
return new DaHApiResult<CameraControlResDto> { Success = false, Code = "1013", Msg = "云台方向控制反序列化失败" };
return new DaHApiResult<CameraControlResDto> { Success = false, Code = "2005", Msg = "云台方向控制反序列化失败" };
}
apiResult.Data = outer.Data;
return apiResult;
@ -728,7 +728,7 @@ namespace Video.DomainService
{
_logger.LogError(ex, $"云台方向控制请求出错{ex.Message}");
return new DaHApiResult<CameraControlResDto> { Success = false, Code = "1012", Msg = $"云台方向控制请求失败{ex.Message}" };
return new DaHApiResult<CameraControlResDto> { Success = false, Code = "2005", Msg = $"云台方向控制请求失败" };
}
}
}

@ -73,6 +73,11 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ThirdPartyServices.Applicat
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ThirdPartyServices.Entity", "ThirdPartyServices\ThirdPartyServices.Entity\ThirdPartyServices.Entity.csproj", "{53A7A11F-729C-4A56-BEA7-52D7080C86E2}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "RichCommunicationServices", "RichCommunicationServices", "{0F7F9FEE-200F-4080-ABF7-FC766A2D3AC6}"
ProjectSection(SolutionItems) = preProject
ReadME.md = ReadME.md
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU

Loading…
Cancel
Save