using Common.Shared.Application.DaHua;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;
using WeiCloud.Core.BaseModels;
namespace Video.DomainService
{
///
/// todo:这块后续要做一个动态适配,只要修改配置文件就可以自由选择对接的厂商
///
public class RootVideoPlayBackService : IRootVideoPlaybackService
{
private readonly ILogger _logger;
private readonly IConfiguration _cfg;
private readonly IDahuaGeneralCtlService _dahuaGeneralCtlService;
///
/// 构造函数
///
///
public RootVideoPlayBackService(ILogger logger, IConfiguration configuration, IDahuaGeneralCtlService dahuaGeneralCtlService)
{
_logger = logger;
_cfg = configuration;
_dahuaGeneralCtlService = dahuaGeneralCtlService;
}
#region 大华视频处理
///
/// 大华回放接口
///
///
///
///
public async Task> GetDaHRecordVideoUrl(PlaybackReqDto dto, string? ipaddress)
{
ApiResult result = new ApiResult() { Code = 200, Msg = "接口调用成功" };
var urlReult = await _dahuaGeneralCtlService.RecordVideoUrl(dto, ipaddress);
if (!urlReult.Success)
{
result.Code = 500;
result.Msg = urlReult.Msg;
_logger.LogWarning("大华录像回放接口调用失败:{Msg}", urlReult.Msg);
}
result.Data = urlReult.Data;
return result;
}
///
/// 大华实时
///
///
///
///
public async Task> GetRealtimeUrl(StreamReqDto dto, string? ipaddress)
{
ApiResult result = new ApiResult() { Code = 200, Msg = "接口调用成功" };
var urlReult = await _dahuaGeneralCtlService.RealtimeStreamUrl(dto, ipaddress);
if (!urlReult.Success)
{
result.Code = 500;
result.Msg = urlReult.Msg;
_logger.LogWarning("大华实时视频接口调用失败:{Msg}", urlReult.Msg);
}
result.Data = urlReult.Data;
return result;
}
///
/// 大华设备通道分页查询
///
///
///
public async Task> GetChannelCodes(ChannelPageReqDto dto)
{
ApiResult result = new ApiResult() { Code = 200, Msg = "接口调用成功" };
var pageResult = await _dahuaGeneralCtlService.GetChannelPageList(dto);
if (!pageResult.Success)
{
result.Code = 500;
result.Msg = pageResult.Msg;
_logger.LogWarning("大华设备通道分页查询接口调用失败:{Msg}", pageResult.Msg);
}
result.Data = pageResult.Data;
return result;
}
///
/// 大华登出
///
///
///
///
///
///
public async Task> Logout(string authorization, string? openId, int? userClient)
{
var result = new ApiResult