feat(camera): 新增大华摄像头信息查询接口
- 在 CameraController 中新增 ListDaHuaCameraInfo 和 GetDaHuaRtsp 接口 - 实现大华摄像头通道信息查询功能 - 支持获取大华摄像头 RTSP 流地址 - 优化 FireManagementApp 中代码格式和结构 - 更新 DaHuaApi 类中静态变量和属性定义 - 调整 OpenAuth.WebApi 项目文件,新增大华摄像头控制器目录DataMaintenance
parent
f4786a984e
commit
d00d45d19a
|
|
@ -17,8 +17,8 @@ namespace Infrastructure.Helpers
|
|||
private readonly string _kccKey;
|
||||
private readonly string _kccSecret;
|
||||
private readonly string _kccId;
|
||||
private OAuthTokenResponse _currentToken;
|
||||
private DateTime _tokenExpiry;
|
||||
private static OAuthTokenResponse _currentToken;
|
||||
private static DateTime _tokenExpiry;
|
||||
|
||||
/// <summary>
|
||||
/// 构造函数(KCC认证方式)
|
||||
|
|
@ -574,7 +574,8 @@ namespace Infrastructure.Helpers
|
|||
/// <summary>
|
||||
/// 描述信息
|
||||
/// </summary>
|
||||
public string desc { get; set; }
|
||||
public string errMsg { get; set; }
|
||||
public bool success { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 响应数据
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@ using SqlSugar;
|
|||
using System.Net.WebSockets;
|
||||
using System.Security.Cryptography;
|
||||
using System.Text;
|
||||
using Infrastructure.Helpers;
|
||||
using Yitter.IdGenerator;
|
||||
using static Org.BouncyCastle.Math.EC.ECCurve;
|
||||
|
||||
|
|
@ -43,7 +44,9 @@ namespace OpenAuth.App.ServiceApp.FireManagement
|
|||
private IConfiguration _configuration;
|
||||
IOptions<KikvisionConfig> _options;
|
||||
IOptions<JPushClientConfig> _jpoptions;
|
||||
public FireManagementApp(IConfiguration configuration, IOptions<KikvisionConfig> options, IOptions<JPushClientConfig> jpoptions, ISugarUnitOfWork<SugarDbContext> unitWork,
|
||||
|
||||
public FireManagementApp(IConfiguration configuration, IOptions<KikvisionConfig> options,
|
||||
IOptions<JPushClientConfig> jpoptions, ISugarUnitOfWork<SugarDbContext> unitWork,
|
||||
ISimpleClient<FmFireclueTask> repository, IAuth auth) : base(unitWork, repository, auth)
|
||||
{
|
||||
_auth = auth;
|
||||
|
|
@ -128,6 +131,7 @@ namespace OpenAuth.App.ServiceApp.FireManagement
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
//删除任务
|
||||
public async Task<Response<bool>> DeleteTask(long id)
|
||||
{
|
||||
|
|
@ -158,6 +162,7 @@ namespace OpenAuth.App.ServiceApp.FireManagement
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
//更新任务状态
|
||||
public async Task<Response<bool>> ReceiveFireClueTask(long taskid, int state, string recipient)
|
||||
{
|
||||
|
|
@ -178,6 +183,7 @@ namespace OpenAuth.App.ServiceApp.FireManagement
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
//更新任务图片或者新增线索
|
||||
public async Task<Response<bool>> ReceiveTaskImage(string info)
|
||||
{
|
||||
|
|
@ -196,7 +202,6 @@ namespace OpenAuth.App.ServiceApp.FireManagement
|
|||
else
|
||||
{
|
||||
//新增线索信息
|
||||
|
||||
}
|
||||
|
||||
if (db.Commit())
|
||||
|
|
@ -209,11 +214,13 @@ namespace OpenAuth.App.ServiceApp.FireManagement
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
class ReciveTaskInfo
|
||||
{
|
||||
public long taskid { get; set; }
|
||||
public string path { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查询下发人员
|
||||
/// </summary>
|
||||
|
|
@ -250,6 +257,7 @@ namespace OpenAuth.App.ServiceApp.FireManagement
|
|||
return new Response<List<FmFireclueTask>> { Result = tasks };
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 任务详情
|
||||
/// </summary>
|
||||
|
|
@ -278,7 +286,7 @@ namespace OpenAuth.App.ServiceApp.FireManagement
|
|||
Audio = a.Audio,
|
||||
Image = a.Image,
|
||||
})
|
||||
.Mapper(a => a.StateName = ((TaskState)a.State).GetDescription())
|
||||
.Mapper(a => a.StateName = ((TaskState)a.State).GetDescription())
|
||||
.FirstAsync();
|
||||
var rep = db.FmFireTaskUser.AsQueryable().Where(r => r.UserId == userid && r.TaskId == id).First();
|
||||
if (rep != null)
|
||||
|
|
@ -286,6 +294,7 @@ namespace OpenAuth.App.ServiceApp.FireManagement
|
|||
info.State = rep.State;
|
||||
info.StateName = ((TaskState)rep.State).GetDescription();
|
||||
}
|
||||
|
||||
return new Response<FireClueTaskResp> { Result = info };
|
||||
}
|
||||
}
|
||||
|
|
@ -586,6 +595,7 @@ namespace OpenAuth.App.ServiceApp.FireManagement
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 添加火情日志
|
||||
/// </summary>
|
||||
|
|
@ -596,7 +606,8 @@ namespace OpenAuth.App.ServiceApp.FireManagement
|
|||
using (var db = base.UnitWork.CreateContext())
|
||||
{
|
||||
var userId = _auth.GetCurrentUser().User.Id;
|
||||
info.CreateId = userId; info.CreateTime = DateTime.Now;
|
||||
info.CreateId = userId;
|
||||
info.CreateTime = DateTime.Now;
|
||||
await db.FmFireclueinfoLog.InsertAsync(info);
|
||||
if (db.Commit())
|
||||
{
|
||||
|
|
@ -608,6 +619,7 @@ namespace OpenAuth.App.ServiceApp.FireManagement
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
//按月统计火情线索
|
||||
public async Task<Response<List<FireInfoForChart>>> GetFireClueStatistics(int type)
|
||||
{
|
||||
|
|
@ -753,6 +765,7 @@ namespace OpenAuth.App.ServiceApp.FireManagement
|
|||
return new Response<List<FmFireclueinfoLog>> { Result = list };
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
|
|
@ -961,33 +974,36 @@ namespace OpenAuth.App.ServiceApp.FireManagement
|
|||
}
|
||||
};
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查询人员上报的线索
|
||||
/// </summary>
|
||||
/// <param name="userid"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<Response<PageInfo<List<FireClueInfoResp>>>> LoadFireClueInfoByUserId(int pageIndex, int state, int pageSize, string userid)
|
||||
public async Task<Response<PageInfo<List<FireClueInfoResp>>>> LoadFireClueInfoByUserId(int pageIndex, int state,
|
||||
int pageSize, string userid)
|
||||
{
|
||||
using (var db = base.UnitWork.CreateContext())
|
||||
{
|
||||
RefAsync<int> total = 0;
|
||||
var list = await db.FmFireclueInfo.AsQueryable().Where(a => a.CreateId.ToString() == userid).Select(a => new FireClueInfoResp
|
||||
{
|
||||
Id = a.Id,
|
||||
CreateId = a.CreateId.ToString(),
|
||||
ReportPerson = a.ReportPerson,
|
||||
Lat = a.Lat,
|
||||
Lng = a.Lng,
|
||||
Address = a.Address,
|
||||
ReportTime = a.ReportTime,
|
||||
Describe = a.Describe,
|
||||
SourceType = a.SourceType,
|
||||
State = a.State,
|
||||
AreaName = a.AreaName,
|
||||
ClueNo = a.ClueNo,
|
||||
}).Mapper(a => a.SourceTypeName = ((SourceType)a.SourceType).GetDescription())
|
||||
.Mapper(a => a.StateName = ((State)a.State).GetDescription())
|
||||
.OrderBy(a => a.ReportTime, SqlSugar.OrderByType.Desc).ToPageListAsync(pageIndex, pageSize, total);
|
||||
var list = await db.FmFireclueInfo.AsQueryable().Where(a => a.CreateId.ToString() == userid).Select(a =>
|
||||
new FireClueInfoResp
|
||||
{
|
||||
Id = a.Id,
|
||||
CreateId = a.CreateId.ToString(),
|
||||
ReportPerson = a.ReportPerson,
|
||||
Lat = a.Lat,
|
||||
Lng = a.Lng,
|
||||
Address = a.Address,
|
||||
ReportTime = a.ReportTime,
|
||||
Describe = a.Describe,
|
||||
SourceType = a.SourceType,
|
||||
State = a.State,
|
||||
AreaName = a.AreaName,
|
||||
ClueNo = a.ClueNo,
|
||||
}).Mapper(a => a.SourceTypeName = ((SourceType)a.SourceType).GetDescription())
|
||||
.Mapper(a => a.StateName = ((State)a.State).GetDescription())
|
||||
.OrderBy(a => a.ReportTime, SqlSugar.OrderByType.Desc).ToPageListAsync(pageIndex, pageSize, total);
|
||||
return new Response<PageInfo<List<FireClueInfoResp>>>
|
||||
{
|
||||
Code = 200,
|
||||
|
|
@ -1001,9 +1017,12 @@ namespace OpenAuth.App.ServiceApp.FireManagement
|
|||
}
|
||||
}
|
||||
|
||||
private static readonly string baseUrl = "http://10.176.126.121:8766/liveBroadCast/bd/api/v1/device/liveBroadCast";
|
||||
private static readonly string baseUrl =
|
||||
"http://10.176.126.121:8766/liveBroadCast/bd/api/v1/device/liveBroadCast";
|
||||
|
||||
private static readonly string sk = "ba98a152296f13c565d2a6dfd219994f"; // 用户的sk
|
||||
private static readonly string account = "AK202006291525121"; // 用户的ak
|
||||
|
||||
public async Task<string> GetFlvUrlAsync(string deviceCode)
|
||||
{
|
||||
// 获取当前的时间戳
|
||||
|
|
@ -1036,8 +1055,10 @@ namespace OpenAuth.App.ServiceApp.FireManagement
|
|||
requestMessage.Headers.Add("signature", signature);
|
||||
|
||||
// 设置 Content-Type 和 Accept 请求头
|
||||
requestMessage.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json");
|
||||
requestMessage.Headers.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
|
||||
requestMessage.Content.Headers.ContentType =
|
||||
new System.Net.Http.Headers.MediaTypeHeaderValue("application/json");
|
||||
requestMessage.Headers.Accept.Add(
|
||||
new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
|
||||
|
||||
// 发送请求
|
||||
var response = await client.SendAsync(requestMessage);
|
||||
|
|
@ -1076,12 +1097,15 @@ namespace OpenAuth.App.ServiceApp.FireManagement
|
|||
return BitConverter.ToString(hashBytes).Replace("-", "").ToLower();
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<string> GetLive(string deviceCode)
|
||||
{
|
||||
string flvUrl = await GetFlvUrlAsync(deviceCode);
|
||||
return flvUrl;
|
||||
}
|
||||
|
||||
#region socket
|
||||
|
||||
public async Task SendSocketMessage(WebSocketModel wsModel)
|
||||
{
|
||||
try
|
||||
|
|
@ -1091,16 +1115,16 @@ namespace OpenAuth.App.ServiceApp.FireManagement
|
|||
string ws = _configuration.GetSection("WebSocket").Value;
|
||||
await webSocket.ConnectAsync(new Uri(ws), CancellationToken.None);
|
||||
byte[] data = Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(wsModel));
|
||||
await webSocket.SendAsync(new ArraySegment<byte>(data), System.Net.WebSockets.WebSocketMessageType.Text, true, CancellationToken.None);
|
||||
await webSocket.CloseAsync(System.Net.WebSockets.WebSocketCloseStatus.NormalClosure, "Closing connection", CancellationToken.None);
|
||||
await webSocket.SendAsync(new ArraySegment<byte>(data),
|
||||
System.Net.WebSockets.WebSocketMessageType.Text, true, CancellationToken.None);
|
||||
await webSocket.CloseAsync(System.Net.WebSockets.WebSocketCloseStatus.NormalClosure,
|
||||
"Closing connection", CancellationToken.None);
|
||||
//webSocket.Dispose();
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
@ -1116,7 +1140,8 @@ namespace OpenAuth.App.ServiceApp.FireManagement
|
|||
Audience audience = new Audience();
|
||||
if (infoid != 0)
|
||||
{
|
||||
var renwu = db.FmFireTaskUser.AsQueryable().Where(r => r.TaskId == infoid).Select(r => r.UserId).ToList();
|
||||
var renwu = db.FmFireTaskUser.AsQueryable().Where(r => r.TaskId == infoid).Select(r => r.UserId)
|
||||
.ToList();
|
||||
var users = db.User.AsQueryable().Where(r => renwu.Contains(r.Id.ToString())).ToList();
|
||||
if (users.Count > 0)
|
||||
{
|
||||
|
|
@ -1131,6 +1156,7 @@ namespace OpenAuth.App.ServiceApp.FireManagement
|
|||
audience.Alias = users.Select(a => a.Account).ToList();
|
||||
}
|
||||
}
|
||||
|
||||
PushPayload pushPayload = new PushPayload()
|
||||
{
|
||||
Platform = new List<string> { "android", "ios" },
|
||||
|
|
@ -1156,9 +1182,11 @@ namespace OpenAuth.App.ServiceApp.FireManagement
|
|||
return "success";
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 海康设备
|
||||
|
||||
/// <summary>
|
||||
/// 获取单个设备的视频流
|
||||
/// </summary>
|
||||
|
|
@ -1168,7 +1196,8 @@ namespace OpenAuth.App.ServiceApp.FireManagement
|
|||
[AllowAnonymous]
|
||||
public string GetPreviewURLs(string cameraIndexCode, string protocol)
|
||||
{
|
||||
HttpUtillib.SetPlatformInfo(_options.Value.AppKey, _options.Value.SecretKey, _options.Value.Url, _options.Value.Port, true);
|
||||
HttpUtillib.SetPlatformInfo(_options.Value.AppKey, _options.Value.SecretKey, _options.Value.Url,
|
||||
_options.Value.Port, true);
|
||||
|
||||
var obj = new
|
||||
{
|
||||
|
|
@ -1186,11 +1215,14 @@ namespace OpenAuth.App.ServiceApp.FireManagement
|
|||
{
|
||||
return Encoding.UTF8.GetString(result);
|
||||
}
|
||||
|
||||
return "fail";
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 人员类型统计
|
||||
#region 人员类型统计
|
||||
|
||||
/// <summary>
|
||||
/// 人员类型统计
|
||||
/// </summary>
|
||||
|
|
@ -1229,16 +1261,19 @@ namespace OpenAuth.App.ServiceApp.FireManagement
|
|||
Result = res
|
||||
};
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 获取物资相关接口
|
||||
|
||||
/// <summary>
|
||||
/// 获取全部营房信息
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public dynamic GetAllYingFang()
|
||||
{
|
||||
string sql = @"SELECT ""id"",""dwmc"",""dwzd"",""lsdw"",""dwzdjd"",""dwzdwd"",""dzxm"",""lxfs"",""syrs"",""zbqk"",""tbr"", st_astext(""geom"") as geom FROM ""fm_shp_1692148217"" ";
|
||||
string sql =
|
||||
@"SELECT ""id"",""dwmc"",""dwzd"",""lsdw"",""dwzdjd"",""dwzdwd"",""dzxm"",""lxfs"",""syrs"",""zbqk"",""tbr"", st_astext(""geom"") as geom FROM ""fm_shp_1692148217"" ";
|
||||
|
||||
using (var db = Repository.AsSugarClient())
|
||||
{
|
||||
|
|
@ -1258,7 +1293,9 @@ namespace OpenAuth.App.ServiceApp.FireManagement
|
|||
{
|
||||
string sql = string.Empty;
|
||||
if (!string.IsNullOrEmpty(wuzi))
|
||||
sql = "SELECT \"id\", \"type\",\"name\",info,st_astext(geom) as geom FROM \"fm_shp_1686205187\" WHERE info like '%" + wuzi + "%'";
|
||||
sql =
|
||||
"SELECT \"id\", \"type\",\"name\",info,st_astext(geom) as geom FROM \"fm_shp_1686205187\" WHERE info like '%" +
|
||||
wuzi + "%'";
|
||||
else
|
||||
sql = "SELECT \"id\", \"type\",\"name\",info,st_astext(geom) as geom FROM \"fm_shp_1686205187\" ";
|
||||
|
||||
|
|
@ -1266,8 +1303,10 @@ namespace OpenAuth.App.ServiceApp.FireManagement
|
|||
data.count = dt.Rows.Count;
|
||||
data.data = dt;
|
||||
}
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 任务相关
|
||||
|
|
@ -1277,7 +1316,8 @@ namespace OpenAuth.App.ServiceApp.FireManagement
|
|||
/// </summary>
|
||||
/// <param name="userid"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<Response<PageInfo<List<FireClueTaskResp>>>> LoadFireClueTaskByUserId(string userid, int pageIndex, int pageSize)
|
||||
public async Task<Response<PageInfo<List<FireClueTaskResp>>>> LoadFireClueTaskByUserId(string userid,
|
||||
int pageIndex, int pageSize)
|
||||
{
|
||||
using (SugarDbContext db = base.UnitWork.CreateContext())
|
||||
{
|
||||
|
|
@ -1301,14 +1341,15 @@ namespace OpenAuth.App.ServiceApp.FireManagement
|
|||
Audio = a.Audio,
|
||||
Image = a.Image,
|
||||
}).Mapper(c => c.StateName = ((TaskState)c.State).GetDescription())
|
||||
.OrderBy(a => a.TaskTime, OrderByType.Desc)
|
||||
.ToPageListAsync(pageIndex, pageSize, totalNumber);
|
||||
.OrderBy(a => a.TaskTime, OrderByType.Desc)
|
||||
.ToPageListAsync(pageIndex, pageSize, totalNumber);
|
||||
return new Response<PageInfo<List<FireClueTaskResp>>>
|
||||
{
|
||||
Result = new PageInfo<List<FireClueTaskResp>> { Items = query, Total = totalNumber }
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查询所有任务
|
||||
/// </summary>
|
||||
|
|
@ -1336,17 +1377,18 @@ namespace OpenAuth.App.ServiceApp.FireManagement
|
|||
Audio = a.Audio,
|
||||
TaskTime = a.TaskTime,
|
||||
RecipientUsers = SqlFunc.Subqueryable<FmFireTaskUser>().Where(r => r.TaskId == a.Id)
|
||||
.LeftJoin<SysUser>((r, s) => r.UserId == s.Id.ToString())
|
||||
.SelectStringJoin((a, s) => s.Name, ","),
|
||||
.LeftJoin<SysUser>((r, s) => r.UserId == s.Id.ToString())
|
||||
.SelectStringJoin((a, s) => s.Name, ","),
|
||||
}).Mapper(c => c.StateName = ((TaskState)c.State).GetDescription())
|
||||
.OrderBy(a => a.TaskTime, OrderByType.Desc)
|
||||
.ToPageListAsync(pageIndex, pageSize, totalNumber);
|
||||
.OrderBy(a => a.TaskTime, OrderByType.Desc)
|
||||
.ToPageListAsync(pageIndex, pageSize, totalNumber);
|
||||
return new Response<PageInfo<List<FireClueTaskResp>>>
|
||||
{
|
||||
Result = new PageInfo<List<FireClueTaskResp>> { Items = query, Total = totalNumber }
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查询火情线索
|
||||
/// </summary>
|
||||
|
|
@ -1354,7 +1396,8 @@ namespace OpenAuth.App.ServiceApp.FireManagement
|
|||
/// <param name="pageIndex"></param>
|
||||
/// <param name="pageSize"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<Response<PageInfo<List<FireClueInfoResp>>>> LoadFireClueInfoByAreaName(string areaname, int pageIndex = 1, int pageSize = 10)
|
||||
public async Task<Response<PageInfo<List<FireClueInfoResp>>>> LoadFireClueInfoByAreaName(string areaname,
|
||||
int pageIndex = 1, int pageSize = 10)
|
||||
{
|
||||
using (SugarDbContext db = base.UnitWork.CreateContext())
|
||||
{
|
||||
|
|
@ -1382,15 +1425,16 @@ namespace OpenAuth.App.ServiceApp.FireManagement
|
|||
FireType = 1
|
||||
})
|
||||
.Mapper(a => a.SourceTypeName = ((SourceType)a.SourceType).GetDescription())
|
||||
.Mapper(a => a.StateName = ((State)a.State).GetDescription())
|
||||
.OrderBy(a => a.ReportTime, SqlSugar.OrderByType.Desc)
|
||||
.ToPageListAsync(pageIndex, pageSize, totalNumber);
|
||||
.Mapper(a => a.StateName = ((State)a.State).GetDescription())
|
||||
.OrderBy(a => a.ReportTime, SqlSugar.OrderByType.Desc)
|
||||
.ToPageListAsync(pageIndex, pageSize, totalNumber);
|
||||
return new Response<PageInfo<List<FireClueInfoResp>>>
|
||||
{
|
||||
Result = new PageInfo<List<FireClueInfoResp>> { Items = query, Total = totalNumber }
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// App获取在线人员实时位置信息
|
||||
/// </summary>
|
||||
|
|
@ -1424,7 +1468,9 @@ namespace OpenAuth.App.ServiceApp.FireManagement
|
|||
};
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
public async Task<Response<dynamic>> ListCameraWithInRange(string lng, string lat, int radius)
|
||||
{
|
||||
// '{lng}', '{lat}'
|
||||
|
|
@ -1445,5 +1491,61 @@ ORDER BY
|
|||
Result = x
|
||||
};
|
||||
}
|
||||
|
||||
public async Task<Response<dynamic>> ListDaHuaCameraInfo()
|
||||
{
|
||||
var daHuaApi = new DaHuaApi("https://icc-dev.hibetatest.com:4077");
|
||||
var channelCategoryRequest = new ChannelCategoryRequest
|
||||
{
|
||||
pageNum = 1,
|
||||
pageSize = 10,
|
||||
isOnline = 1,
|
||||
unitTypeList = new List<int> { 1 },
|
||||
};
|
||||
Console.WriteLine(JsonConvert.SerializeObject(channelCategoryRequest));
|
||||
var channelCategoryResponse = await daHuaApi.GetChannelCategoriesAsync(channelCategoryRequest);
|
||||
if (channelCategoryResponse.success)
|
||||
{
|
||||
return new Response<dynamic>
|
||||
{
|
||||
Result = channelCategoryResponse.data.pageData
|
||||
};
|
||||
}
|
||||
return new Response<dynamic>
|
||||
{
|
||||
Code = channelCategoryResponse.code,
|
||||
Message = channelCategoryResponse.errMsg
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
public async Task<Response<dynamic>> GetDaHuaRtsp(string channelCode)
|
||||
{
|
||||
var daHuaApi = new DaHuaApi("https://icc-dev.hibetatest.com:4077");
|
||||
|
||||
var request = new RtspPreviewRequest
|
||||
{
|
||||
data = new RtspPreviewData
|
||||
{
|
||||
channelId = "1000008$1$0$0IPC10001001_1",
|
||||
dataType = "1",
|
||||
streamType = "1" //主码流
|
||||
}
|
||||
};
|
||||
var y = await daHuaApi.StartRtspPreviewAsync(request);
|
||||
if (y.success)
|
||||
{
|
||||
return new Response<dynamic>
|
||||
{
|
||||
Result = y.data
|
||||
};
|
||||
}
|
||||
|
||||
return new Response<dynamic>
|
||||
{
|
||||
Code = y.code,
|
||||
Message = y.errMsg
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -28,4 +28,16 @@ public class CameraController : ControllerBase
|
|||
{
|
||||
return await _app.ListCameraWithInRange(lng, lat, radius);
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
public async Task<Response<dynamic>> ListDaHuaCameraInfo()
|
||||
{
|
||||
return await _app.ListDaHuaCameraInfo();
|
||||
}
|
||||
[HttpGet]
|
||||
public async Task<Response<dynamic>> GetDaHuaRtsp(string channelCode)
|
||||
{
|
||||
return await _app.GetDaHuaRtsp(channelCode);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -82,6 +82,7 @@
|
|||
|
||||
<ItemGroup>
|
||||
<Folder Include="Controllers\BaseControllers\Permission\" />
|
||||
<Folder Include="Controllers\ServiceControllers\DaHuaCamera\" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
|
|||
Loading…
Reference in New Issue