feature-flyModify
commit
94ed43e1dc
|
|
@ -158,7 +158,6 @@ public class MinioService
|
|||
{
|
||||
objectName = objectName.Replace($"http://{endPoint}/{_bucketName}/", "");
|
||||
}
|
||||
|
||||
var deleteargs = new RemoveObjectArgs().WithBucket(_bucketName).WithObject(objectName);
|
||||
await _minioClient.RemoveObjectAsync(deleteargs);
|
||||
Console.WriteLine($"File {objectName} deleted.");
|
||||
|
|
|
|||
|
|
@ -57,21 +57,21 @@ public class MqttClientManager
|
|||
/// <param name="password"></param>
|
||||
public async Task ConnectAsync(string server, int port, string username = null, string password = null)
|
||||
{
|
||||
var inboundOptions = new MqttClientOptionsBuilder()
|
||||
_inboundOptions = new MqttClientOptionsBuilder()
|
||||
.WithClientId(Guid.NewGuid() + "_inbound")
|
||||
.WithTcpServer(server, port)
|
||||
.WithKeepAlivePeriod(TimeSpan.FromSeconds(20))
|
||||
.WithCredentials(username, password)
|
||||
.Build();
|
||||
var outboundOptions = new MqttClientOptionsBuilder()
|
||||
_outboundOptions = new MqttClientOptionsBuilder()
|
||||
.WithClientId(Guid.NewGuid() + "_outbound")
|
||||
.WithTcpServer(server, port)
|
||||
.WithKeepAlivePeriod(TimeSpan.FromSeconds(20))
|
||||
.WithCredentials(username, password)
|
||||
.Build();
|
||||
|
||||
await _outBoundClient.ConnectAsync(inboundOptions, _cancellationTokenSource.Token);
|
||||
await _inBoundClient.ConnectAsync(outboundOptions, _cancellationTokenSource.Token);
|
||||
await _outBoundClient.ConnectAsync(_inboundOptions, _cancellationTokenSource.Token);
|
||||
await _inBoundClient.ConnectAsync(_outboundOptions, _cancellationTokenSource.Token);
|
||||
_outBoundClient.ConnectedAsync += OnConnectedAsync;
|
||||
_inBoundClient.ConnectedAsync += OnConnectedAsync;
|
||||
_outBoundClient.DisconnectedAsync += OnOutboundDisconnectedAsync;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,23 @@
|
|||
using OpenAuth.App.Request;
|
||||
|
||||
namespace OpenAuth.App.ServiceApp.AirLine.Request;
|
||||
|
||||
public class AirLineListRequestPage : PageReq
|
||||
{
|
||||
public bool Ascending { get; set; }
|
||||
|
||||
/// <summary>
|
||||
///无人机型号
|
||||
/// </summary>
|
||||
public string UavTypeId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 航线类型
|
||||
/// </summary>
|
||||
public string AirLineType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 航线名称
|
||||
/// </summary>
|
||||
public string AirLineName { get; set; }
|
||||
}
|
||||
|
|
@ -14,15 +14,22 @@ using DocumentFormat.OpenXml.EMMA;
|
|||
using NPOI.SS.Formula.Functions;
|
||||
using Infrastructure.Extensions;
|
||||
using DocumentFormat.OpenXml.Math;
|
||||
using DocumentFormat.OpenXml.Spreadsheet;
|
||||
using Org.BouncyCastle.Ocsp;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Infrastructure.CloudSdk.minio;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
|
||||
namespace OpenAuth.App.ServiceApp
|
||||
{
|
||||
public class AirportMaintenanceApp : SqlSugarBaseApp<LasaDronePort, SugarDbContext>
|
||||
{
|
||||
public AirportMaintenanceApp(ISugarUnitOfWork<SugarDbContext> unitWork, ISimpleClient<LasaDronePort> repository, IAuth auth) : base(unitWork, repository, auth)
|
||||
private readonly IConfiguration _configuration;
|
||||
private readonly ISqlSugarClient _client;
|
||||
private readonly MinioService _minioService;
|
||||
public AirportMaintenanceApp(MinioService minioService,ISqlSugarClient client,ISugarUnitOfWork<SugarDbContext> unitWork, IConfiguration configuration, ISimpleClient<LasaDronePort> repository, IAuth auth) : base(unitWork, repository, auth)
|
||||
{
|
||||
_configuration = configuration;
|
||||
_client = client;
|
||||
_minioService = minioService;
|
||||
}
|
||||
//获取设备绑定码
|
||||
public async Task<Response<LasaDeviceBindingCode>> GetDeviceBindingCode()
|
||||
|
|
@ -115,15 +122,19 @@ namespace OpenAuth.App.ServiceApp
|
|||
}
|
||||
else
|
||||
{
|
||||
var serverIp = _configuration.GetSection("MQTT:Server").Value;
|
||||
var port = _configuration.GetSection("MQTT:Port").Value;
|
||||
var username = _configuration.GetSection("MQTT:UserName").Value;
|
||||
var password = _configuration.GetSection("MQTT:Password").Value;
|
||||
//如果网关不存在,则创建一个新的
|
||||
var newGateway = new LasaGateway
|
||||
{
|
||||
Id = Guid.NewGuid().ToString(),
|
||||
CreateTime = DateTime.Now,
|
||||
GatewayAccount = "sdhc",
|
||||
GatewayAccount = username,
|
||||
GatewaySn = Guid.NewGuid().ToString("N").Substring(0, 8).ToUpper(), // 生成一个新的
|
||||
MqttGateway = "175.27.168.120:6011",
|
||||
MqttPassword = "",
|
||||
MqttGateway = serverIp + ":" + port,
|
||||
MqttPassword = password,
|
||||
OrgId = "371300", // 默认组织ID
|
||||
BindStatus = 0 // 未绑定状态
|
||||
};
|
||||
|
|
@ -205,6 +216,7 @@ namespace OpenAuth.App.ServiceApp
|
|||
{
|
||||
using (var db = UnitWork.CreateContext())
|
||||
{
|
||||
info.Id = Guid.NewGuid().ToString();
|
||||
var flag = await db.LasaFirmware.InsertAsync(info);
|
||||
if (db.Commit())
|
||||
return new Response<bool>
|
||||
|
|
@ -220,6 +232,41 @@ namespace OpenAuth.App.ServiceApp
|
|||
};
|
||||
}
|
||||
}
|
||||
//修改无人机或机场版本
|
||||
public async Task<Response<bool>> UpdateFirmware(string id, string version, int type)
|
||||
{
|
||||
using (var db = UnitWork.CreateContext())
|
||||
{
|
||||
if (type == 1)
|
||||
{
|
||||
var flag = await db.LasaDronePort.UpdateAsync(it => new LasaDronePort()
|
||||
{
|
||||
FirmwareVersion = version,
|
||||
}, it => it.Id == id);
|
||||
if (db.Commit())
|
||||
return new Response<bool> { Result = true, Message = "编辑成功" };
|
||||
else
|
||||
return new Response<bool> { Result = false, Message = "编辑失败" };
|
||||
}
|
||||
else
|
||||
{
|
||||
var flag = await db.LasaUav.UpdateAsync(it => new LasaUav()
|
||||
{
|
||||
FirmwareVersion = version,
|
||||
}, it => it.Id == id);
|
||||
if (db.Commit())
|
||||
return new Response<bool> { Result = true, Message = "编辑成功" };
|
||||
else
|
||||
return new Response<bool> { Result = false, Message = "编辑失败" };
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
public Task<string> UploadFile(IFormFile xmlFile)
|
||||
{
|
||||
return _minioService.UploadFile(xmlFile, "firmware");
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 健康报警
|
||||
|
|
@ -325,7 +372,7 @@ namespace OpenAuth.App.ServiceApp
|
|||
}
|
||||
}
|
||||
#endregion
|
||||
public async Task<Response<PageInfo<List<LasaMediaFile>>>> GetMediaFile(string device, string picname, DateTime? startTime, DateTime? endTime, int page, int limit)
|
||||
public async Task<Response<PageInfo<List<LasaMediaFile>>>> GetMediaFile(string device, string picname, DateTime? startTime, DateTime? endTime, int page, int limit, int level, string parentKey)
|
||||
{
|
||||
RefAsync<int> totalCount = 0;
|
||||
using (var db = UnitWork.CreateContext())
|
||||
|
|
@ -333,10 +380,12 @@ namespace OpenAuth.App.ServiceApp
|
|||
Console.WriteLine(startTime.ToString());
|
||||
var list = await db.LasaMediaFile.AsQueryable()
|
||||
|
||||
.WhereIF(!string.IsNullOrEmpty(device),x => x.DroneModelKey == device)
|
||||
.WhereIF(!string.IsNullOrEmpty(device), x => x.DroneModelKey == device)
|
||||
.WhereIF(!string.IsNullOrEmpty(picname), x => x.Name.Contains(picname))
|
||||
.WhereIF("0001/1/1 0:00:00".Equal(startTime.ToString() ), x => x.CreateTime >= startTime)
|
||||
.WhereIF("0001/1/1 0:00:00".Equal(endTime.ToString()), x => x.CreateTime <= endTime)
|
||||
.WhereIF(!"0001/1/1 0:00:00".Equal(startTime.ToString()), x => x.CreateTime >= startTime)
|
||||
.WhereIF(!"0001/1/1 0:00:00".Equal(endTime.ToString()), x => x.CreateTime <= endTime)
|
||||
.WhereIF(level >= 0, x => x.Level == level)
|
||||
.WhereIF(!string.IsNullOrEmpty(parentKey), x => x.ParentKey == parentKey)
|
||||
.OrderBy(x => x.CreateTime, OrderByType.Asc)
|
||||
.ToPageListAsync(page, limit, totalCount);
|
||||
return new Response<PageInfo<List<LasaMediaFile>>>
|
||||
|
|
@ -346,6 +395,30 @@ namespace OpenAuth.App.ServiceApp
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
public async Task<Response<string>> UpdatePicStatus(string id, int showOnMap, int display)
|
||||
{
|
||||
string sql = "update lasa_mediafile set \"ShowOnMap\"=" + showOnMap + ",display=" + display + " where \"Id\"='" + id+"'";
|
||||
await _client.Ado.ExecuteCommandAsync(sql);
|
||||
return new Response<string> { Result = "修改成功!" };
|
||||
}
|
||||
|
||||
public async Task<Response<string>> deletepic(string ids)
|
||||
{
|
||||
string[] idarray = ids.Split(",");
|
||||
|
||||
for (int i = 0; i < idarray.Length; i++)
|
||||
{
|
||||
string sqlselect = "select \"ObjectKey\" from lasa_mediafile where \"Id\"='"+idarray[i]+"'";
|
||||
string objectkey = _client.Ado.SqlQuerySingle<string>(sqlselect);
|
||||
string sql = "delete from lasa_mediafile where \"Id\"='"+idarray[i]+"'";
|
||||
await _client.Ado.ExecuteCommandAsync(sql);
|
||||
await _minioService.DeleteFile(objectkey);
|
||||
|
||||
|
||||
}
|
||||
return new Response<string> { Result = "删除成功!" };
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -19,6 +19,9 @@ using OpenAuth.WebApi.CloudSdk;
|
|||
using SqlSugar;
|
||||
using System.Dynamic;
|
||||
using System.Text;
|
||||
using NPOI.HSSF.Record;
|
||||
using OpenAuth.App.Request;
|
||||
using OpenAuth.App.ServiceApp.AirLine.Request;
|
||||
|
||||
namespace OpenAuth.App.ServiceApp
|
||||
{
|
||||
|
|
@ -26,15 +29,18 @@ namespace OpenAuth.App.ServiceApp
|
|||
{
|
||||
private readonly MqttClientManager _mqttClientManager;
|
||||
private readonly MinioService _minioService;
|
||||
private readonly OpenJobApp _openJobApp;
|
||||
CommonDataManager _commonDataManager;
|
||||
|
||||
public ManageApp(ISugarUnitOfWork<SugarDbContext> unitWork, ISimpleClient<LasaDronePort> repository, IAuth auth,
|
||||
MqttClientManager mqttClientManager, CommonDataManager commonDataManager, MinioService minioService)
|
||||
MqttClientManager mqttClientManager, CommonDataManager commonDataManager, MinioService minioService,
|
||||
OpenJobApp openJobApp)
|
||||
: base(unitWork, repository, auth)
|
||||
{
|
||||
_mqttClientManager = mqttClientManager;
|
||||
_minioService = minioService;
|
||||
_commonDataManager = commonDataManager;
|
||||
_openJobApp = openJobApp;
|
||||
}
|
||||
|
||||
#region 机场管理
|
||||
|
|
@ -46,14 +52,32 @@ namespace OpenAuth.App.ServiceApp
|
|||
/// <param name="pageSize"></param>
|
||||
/// <param name="key"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<Response<PageInfo<List<LasaDronePort>>>> GetPageList(int page, int limit, string key)
|
||||
public async Task<Response<PageInfo<List<LasaDronePort>>>> GetPageList(int page, int limit, string sn,
|
||||
string type, string workspaceid)
|
||||
{
|
||||
RefAsync<int> totalCount = 0;
|
||||
using (var db = UnitWork.CreateContext())
|
||||
{
|
||||
var list = await db.LasaDronePort.AsQueryable().Includes(a => a.UavList)
|
||||
.LeftJoin<LasaSpaceDevice>((a,b)=>a.Id==b.DeviceId)
|
||||
.Where(a => a.IsDelete == false)
|
||||
.WhereIF(!string.IsNullOrEmpty(key), a => a.Name.Contains(key))
|
||||
.WhereIF(!string.IsNullOrEmpty(sn), (a, b) => a.Sn == sn)
|
||||
.WhereIF(!string.IsNullOrEmpty(type), (a, b) => a.TypeId == type)
|
||||
.WhereIF(!string.IsNullOrEmpty(workspaceid), (a, b) => b.WorkSpaceId == workspaceid)
|
||||
.Select((a,b)=>new LasaDronePort
|
||||
{
|
||||
Id = a.Id,
|
||||
Name = a.Name,
|
||||
TypeId = a.TypeId,
|
||||
FirmwareVersion = a.FirmwareVersion,
|
||||
CreateTime = a.CreateTime,
|
||||
UpdateTime = a.UpdateTime,
|
||||
OrgId = a.OrgId,
|
||||
Sn = a.Sn,
|
||||
UavList = a.UavList,
|
||||
GateWay = a.GateWay,
|
||||
WorkSpaceId = b.WorkSpaceId
|
||||
})
|
||||
.ToPageListAsync(page, limit, totalCount);
|
||||
return new Response<PageInfo<List<LasaDronePort>>>
|
||||
{
|
||||
|
|
@ -71,6 +95,13 @@ namespace OpenAuth.App.ServiceApp
|
|||
{
|
||||
using (var db = UnitWork.CreateContext())
|
||||
{
|
||||
//删除项目中的机场数据
|
||||
await db.LasaSpaceDevice.DeleteAsync(r => r.DeviceId == info.Id);
|
||||
await db.LasaSpaceDevice.InsertAsync(new LasaSpaceDevice
|
||||
{
|
||||
DeviceId = info.Id,
|
||||
WorkSpaceId = info.WorkSpaceId
|
||||
});
|
||||
var flag = await db.LasaDronePort.UpdateAsync(it => new LasaDronePort()
|
||||
{
|
||||
Name = info.Name,
|
||||
|
|
@ -143,16 +174,20 @@ namespace OpenAuth.App.ServiceApp
|
|||
/// <param name="limit"></param>
|
||||
/// <param name="key"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<Response<PageInfo<List<dynamic>>>> GetUavPageList(int page, int limit, string key)
|
||||
public async Task<Response<PageInfo<List<dynamic>>>> GetUavPageList(int page, int limit, string sn, string type,
|
||||
string workspaceid)
|
||||
{
|
||||
RefAsync<int> totalCount = 0;
|
||||
using (var db = UnitWork.CreateContext())
|
||||
{
|
||||
var list = await db.LasaUav.AsQueryable()
|
||||
.LeftJoin<LasaDronePort>((a, b) => a.PId == b.Id)
|
||||
.Where((a, b) => a.IsDelete == false)
|
||||
.WhereIF(!string.IsNullOrEmpty(key), (a, b) => a.Name.Contains(key))
|
||||
.Select<dynamic>((a, b) => new
|
||||
.LeftJoin<LasaSpaceDevice>((a, b,c) => b.Id == c.DeviceId)
|
||||
.Where((a, b, c) => a.IsDelete == false)
|
||||
.WhereIF(!string.IsNullOrEmpty(sn), (a, b, c) => a.Sn == sn)
|
||||
.WhereIF(!string.IsNullOrEmpty(type), (a, b, c) => a.TypeId == type)
|
||||
.WhereIF(!string.IsNullOrEmpty(workspaceid), (a, b, c) => c.WorkSpaceId == workspaceid)
|
||||
.Select<dynamic>((a, b,c) => new
|
||||
{
|
||||
id = a.Id,
|
||||
name = a.Name,
|
||||
|
|
@ -163,7 +198,7 @@ namespace OpenAuth.App.ServiceApp
|
|||
updateTime = a.UpdateTime,
|
||||
isDelete = a.IsDelete,
|
||||
pName = b.Name, // 机场名称
|
||||
workSpaceId = a.WorkSpaceId,
|
||||
workSpaceId = c.WorkSpaceId,
|
||||
firmwareVersion = a.FirmwareVersion,
|
||||
})
|
||||
.ToPageListAsync(page, limit, totalCount);
|
||||
|
|
@ -173,6 +208,7 @@ namespace OpenAuth.App.ServiceApp
|
|||
};
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取机场sn获取无人机列表
|
||||
/// </summary>
|
||||
|
|
@ -283,6 +319,19 @@ namespace OpenAuth.App.ServiceApp
|
|||
}
|
||||
}
|
||||
|
||||
//导出无人机信息
|
||||
public async Task<string> GetUavSn()
|
||||
{
|
||||
using (var db = UnitWork.CreateContext())
|
||||
{
|
||||
var snList = await db.LasaUav.AsQueryable().Where(r => r.IsDelete == false).Select(r => r.Sn)
|
||||
.ToListAsync();
|
||||
var result = string.Join(Environment.NewLine, snList);
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取任务列表
|
||||
/// </summary>
|
||||
|
|
@ -290,13 +339,15 @@ namespace OpenAuth.App.ServiceApp
|
|||
/// <param name="limit"></param>
|
||||
/// <param name="key"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<Response<PageInfo<List<LasaTask>>>> GetTaskPageList(int page, int limit, string key)
|
||||
public async Task<Response<PageInfo<List<LasaTask>>>> GetTaskPageList(int page, int limit, string key,
|
||||
int? status)
|
||||
{
|
||||
RefAsync<int> totalCount = 0;
|
||||
using (var db = UnitWork.CreateContext())
|
||||
{
|
||||
var list = await db.LasaTask.AsQueryable()
|
||||
.WhereIF(!string.IsNullOrEmpty(key), a => a.TaskName.Contains(key))
|
||||
.WhereIF(status != null, a => a.Status.Equals(status))
|
||||
.ToPageListAsync(page, limit, totalCount);
|
||||
return new Response<PageInfo<List<LasaTask>>>
|
||||
{
|
||||
|
|
@ -310,10 +361,35 @@ namespace OpenAuth.App.ServiceApp
|
|||
{
|
||||
using (var db = UnitWork.CreateContext())
|
||||
{
|
||||
var user = _auth.GetCurrentUser().User;
|
||||
task.Id = Guid.NewGuid().ToString();
|
||||
task.CreateId = _auth.GetCurrentUser().User.Id;
|
||||
task.CreateId = user.Id;
|
||||
task.CreateUserName = user.Name;
|
||||
task.CreateTime = DateTime.Now;
|
||||
var flag = await db.LasaTask.InsertAsync(task);
|
||||
// todo 判断任务类型,添加openjob记录 (openjob 增删改)
|
||||
// //{"0":"立即任务","1":"定时任务",
|
||||
var type = task.TaskType;
|
||||
if (type.Equals(1)) // 定时任务
|
||||
{
|
||||
AddOrUpdateOpenJobReq record = new AddOrUpdateOpenJobReq()
|
||||
{
|
||||
JobName = $"{task.Id}",
|
||||
JobType = 0, // 本地任务
|
||||
JobCall = "OpenAuth.App.BaseApp.Jobs.TaskJob",
|
||||
JobCallParams = "{\"taskId\":\"" + task.Id + "\"}",
|
||||
Cron = task.PeriodicFormula,
|
||||
Status = 1, // 开启运行 todo 关于修改后关闭问题
|
||||
Remark = "定时任务",
|
||||
};
|
||||
_openJobApp.Add(record);
|
||||
}
|
||||
else if (type.Equals(0))
|
||||
{
|
||||
// 调用飞行任务
|
||||
await ExecuteFlyTask(task.Id);
|
||||
}
|
||||
|
||||
if (db.Commit())
|
||||
return new Response<bool> { Result = true, Message = "添加成功" };
|
||||
else
|
||||
|
|
@ -337,13 +413,43 @@ namespace OpenAuth.App.ServiceApp
|
|||
//删除任务
|
||||
public async Task<Response<bool>> DeleteTask(string id)
|
||||
{
|
||||
var task = await Repository
|
||||
.ChangeRepository<SugarRepositiry<LasaTask>>()
|
||||
.AsQueryable()
|
||||
.Where(it => it.Id == id).SingleAsync();
|
||||
if (task == null)
|
||||
{
|
||||
return new Response<bool> { Result = false, Message = "任务不存在" };
|
||||
}
|
||||
|
||||
if (task.CompletedTime != null) // 定时任务
|
||||
{
|
||||
return new Response<bool> { Result = false, Message = "已完成任务禁止删除" };
|
||||
}
|
||||
|
||||
using (var db = UnitWork.CreateContext())
|
||||
{
|
||||
var flag = await db.LasaTask.DeleteAsync(it => it.Id == id);
|
||||
var taskId = task.Id;
|
||||
var mediaFileList = await db.LasaMediaFile.AsQueryable()
|
||||
.Where(it => it.TaskId == taskId)
|
||||
.ToListAsync();
|
||||
foreach (var item in mediaFileList)
|
||||
{
|
||||
await _minioService.DeleteFile(item.ObjectKey);
|
||||
}
|
||||
|
||||
// 定时任务,
|
||||
if (task.TaskType.Equals(1))
|
||||
{
|
||||
await db.SysOpenJob.AsDeleteable()
|
||||
.Where(it => it.JobCallParams.Contains(taskId))
|
||||
.ExecuteCommandAsync();
|
||||
}
|
||||
|
||||
if (db.Commit())
|
||||
return new Response<bool> { Result = true, Message = "删除成功" };
|
||||
else
|
||||
return new Response<bool> { Result = false, Message = "删除失败" };
|
||||
return new Response<bool> { Result = false, Message = "删除失败" };
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -356,14 +462,18 @@ namespace OpenAuth.App.ServiceApp
|
|||
/// <param name="limit"></param>
|
||||
/// <param name="key"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<Response<PageInfo<List<LasaAirLine>>>> GetAirLinePageList(int page, int limit, string key)
|
||||
public async Task<Response<PageInfo<List<LasaAirLine>>>> GetAirLinePageList(AirLineListRequestPage req)
|
||||
{
|
||||
RefAsync<int> totalCount = 0;
|
||||
using (var db = UnitWork.CreateContext())
|
||||
{
|
||||
var list = await db.LasaAirLine.AsQueryable()
|
||||
.WhereIF(!string.IsNullOrEmpty(key), a => a.AirLineName.Contains(key))
|
||||
.ToPageListAsync(page, limit, totalCount);
|
||||
var list = await db.LasaAirLine.AsQueryable().LeftJoin<LasaUav>((a, b) => a.UavId == b.Id)
|
||||
.WhereIF(!string.IsNullOrEmpty(req.UavTypeId),(a,b) => b.TypeId == req.UavTypeId)
|
||||
.WhereIF(!string.IsNullOrEmpty(req.key), a => a.AirLineName.Contains(req.key))
|
||||
.WhereIF(!string.IsNullOrEmpty(req.AirLineName), a => a.AirLineName.Contains(req.AirLineName))
|
||||
.WhereIF(!string.IsNullOrEmpty(req.AirLineType), a => a.AirLineType.Equals(req.AirLineType))
|
||||
.OrderByIF(true, a => a.CreateTime, req.Ascending ? OrderByType.Asc : OrderByType.Desc)
|
||||
.ToPageListAsync(req.page, req.limit, totalCount);
|
||||
return new Response<PageInfo<List<LasaAirLine>>>
|
||||
{
|
||||
Result = new PageInfo<List<LasaAirLine>> { Items = list, Total = totalCount }
|
||||
|
|
@ -445,7 +555,7 @@ namespace OpenAuth.App.ServiceApp
|
|||
}
|
||||
|
||||
var list = await db.LasaWorkspace.AsQueryable()
|
||||
.Where(a=>a.IsDelete==false)
|
||||
.Where(a => a.IsDelete == false)
|
||||
.WhereIF(!string.IsNullOrEmpty(key), a => a.WorkspaceName.Contains(key))
|
||||
.WhereIF(state != 0, a => a.Sate == state)
|
||||
.WhereIF(isjoin == 1, a => ids.Contains(a.Id))
|
||||
|
|
@ -656,6 +766,8 @@ namespace OpenAuth.App.ServiceApp
|
|||
|
||||
#endregion
|
||||
|
||||
// todo 保存任务时,执行任务
|
||||
|
||||
public async Task ExecuteFlyTask(string taskId)
|
||||
{
|
||||
// 任务信息
|
||||
|
|
@ -1063,7 +1175,6 @@ namespace OpenAuth.App.ServiceApp
|
|||
|
||||
//修改图斑数据
|
||||
var flagGeom = await db.Ado.ExecuteCommandAsync(geomSql.ToString());
|
||||
|
||||
});
|
||||
if (transFlag.IsSuccess)
|
||||
return new Response<string>
|
||||
|
|
@ -1204,7 +1315,8 @@ namespace OpenAuth.App.ServiceApp
|
|||
}
|
||||
};
|
||||
//thing/product/{gateway_sn}/services
|
||||
await _mqttClientManager.PublishAsync("thing/product/8UUXN5400A079H/services", JsonConvert.SerializeObject(request));
|
||||
await _mqttClientManager.PublishAsync("thing/product/8UUXN5400A079H/services",
|
||||
JsonConvert.SerializeObject(request));
|
||||
return new Response<bool>()
|
||||
{
|
||||
Result = true
|
||||
|
|
@ -1224,7 +1336,8 @@ namespace OpenAuth.App.ServiceApp
|
|||
video_id = "8UUXN5400A079H/165-0-7/normal-0"
|
||||
}
|
||||
};
|
||||
await _mqttClientManager.PublishAsync("thing/product/8UUXN5400A079H/services", JsonConvert.SerializeObject(request));
|
||||
await _mqttClientManager.PublishAsync("thing/product/8UUXN5400A079H/services",
|
||||
JsonConvert.SerializeObject(request));
|
||||
return new Response<bool>()
|
||||
{
|
||||
Result = true
|
||||
|
|
@ -1232,12 +1345,15 @@ namespace OpenAuth.App.ServiceApp
|
|||
}
|
||||
|
||||
#region 基本信息统计
|
||||
|
||||
public async Task<Response<JObject>> GetBasicInfo()
|
||||
{
|
||||
using (var db = UnitWork.CreateContext())
|
||||
{
|
||||
var dronInfo = await db.LasaDronePort.AsQueryable().Where(r => r.IsDelete == false && r.TypeId.Contains("Dock")).CountAsync();
|
||||
var otherInfo = await db.LasaDronePort.AsQueryable().Where(r => r.IsDelete == false && !r.TypeId.Contains("Dock")).CountAsync();
|
||||
var dronInfo = await db.LasaDronePort.AsQueryable()
|
||||
.Where(r => r.IsDelete == false && r.TypeId.Contains("Dock")).CountAsync();
|
||||
var otherInfo = await db.LasaDronePort.AsQueryable()
|
||||
.Where(r => r.IsDelete == false && !r.TypeId.Contains("Dock")).CountAsync();
|
||||
var pilotInfo = await db.SysUserRole.AsQueryable().Where(r => r.RoleId == 555252989157446).CountAsync();
|
||||
var taskInfo = await db.LasaTask.AsQueryable().CountAsync();
|
||||
JObject obj = new JObject
|
||||
|
|
@ -1249,8 +1365,8 @@ namespace OpenAuth.App.ServiceApp
|
|||
};
|
||||
return new Response<JObject> { Result = obj, Message = "获取数据成功" };
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
|
@ -98,13 +98,6 @@ public class ConfigSubscribe : IJob
|
|||
switch (tempStr)
|
||||
{
|
||||
case "thing/product/*/requests":
|
||||
//{"bid":"f936a236-030c-4358-bee9-b5075e1e2ddf",
|
||||
//"data":{"flight_id":"e5ce8433-c264-4357-84d9-b701faf90d9e"},
|
||||
//"method":"flighttask_resource_get",
|
||||
//"tid":"61b6389a-7b72-49ae-bb46-0729e85c95d2",
|
||||
//"timestamp":1750554644321,
|
||||
//"gateway":"8UUXN5400A079H"}
|
||||
// todo 处理资源获取请求
|
||||
switch (method)
|
||||
{
|
||||
// 临时凭证上传
|
||||
|
|
@ -130,14 +123,14 @@ public class ConfigSubscribe : IJob
|
|||
{
|
||||
bucket = "test",
|
||||
endpoint = "http://175.27.168.120:6013",
|
||||
object_key_prefix = $"{Guid.NewGuid().ToString()}", // todo 是否设计任务id ?
|
||||
object_key_prefix = Guid.NewGuid().ToString(), // todo 是否设计任务id ?
|
||||
provider = "minio",
|
||||
region = "linyi",
|
||||
credentials = new
|
||||
{
|
||||
access_key_id = "minioadmin",
|
||||
access_key_secret = "minioadmin",
|
||||
expire = 480,
|
||||
expire = 3600,
|
||||
security_token = ""
|
||||
}
|
||||
}
|
||||
|
|
@ -151,6 +144,12 @@ public class ConfigSubscribe : IJob
|
|||
case "flight_areas_get":
|
||||
//Console.WriteLine("跳过自定义飞行区文件获取");
|
||||
break;
|
||||
//{"bid":"f936a236-030c-4358-bee9-b5075e1e2ddf",
|
||||
//"data":{"flight_id":"e5ce8433-c264-4357-84d9-b701faf90d9e"},
|
||||
//"method":"flighttask_resource_get",
|
||||
//"tid":"61b6389a-7b72-49ae-bb46-0729e85c95d2",
|
||||
//"timestamp":1750554644321,
|
||||
//"gateway":"8UUXN5400A079H"}
|
||||
// 获取航线
|
||||
case "flighttask_resource_get":
|
||||
string flightId = data.flight_id + "";
|
||||
|
|
@ -212,15 +211,66 @@ public class ConfigSubscribe : IJob
|
|||
break;
|
||||
}
|
||||
|
||||
lock (_dockUploadFileLocker)
|
||||
string flightId = data.file.ext.flight_id;
|
||||
var taskAssgin = _manageApp.GetTaskAssignByFlightId(flightId);
|
||||
var taskId = taskAssgin.TaskId;
|
||||
string objectKey = data.file.object_key;
|
||||
var folderKey = ((string)data.file.object_key).Split("/");
|
||||
var parentKey = folderKey[^2];
|
||||
var isExist = await _sqlSugarClient
|
||||
.Queryable<LasaMediaFile>()
|
||||
.Where(x => x.ObjectKey.Equals(parentKey)).CountAsync();
|
||||
if (isExist == 0)
|
||||
{
|
||||
var parents = new List<LasaMediaFile>(3);
|
||||
var parent1 = new LasaMediaFile()
|
||||
{
|
||||
Id = Guid.NewGuid().ToString(),
|
||||
FlightId = flightId,
|
||||
TaskId = taskId,
|
||||
ParentKey = "",
|
||||
ObjectKey = folderKey[0],
|
||||
WorkspaceId = "", // todo 从任务中取来
|
||||
Level = 1,
|
||||
};
|
||||
parents.Add(parent1);
|
||||
parent1 = new LasaMediaFile()
|
||||
{
|
||||
Id = Guid.NewGuid().ToString(),
|
||||
FlightId = flightId,
|
||||
TaskId = taskId,
|
||||
ParentKey = folderKey[0],
|
||||
ObjectKey = folderKey[1],
|
||||
WorkspaceId = "",
|
||||
Level = 2,
|
||||
};
|
||||
parents.Add(parent1);
|
||||
parent1 = new LasaMediaFile()
|
||||
{
|
||||
Id = Guid.NewGuid().ToString(),
|
||||
FlightId = flightId,
|
||||
TaskId = taskId,
|
||||
ParentKey = folderKey[1],
|
||||
ObjectKey = folderKey[2],
|
||||
WorkspaceId = "",
|
||||
Level = 3,
|
||||
};
|
||||
parents.Add(parent1);
|
||||
await _sqlSugarClient.Insertable(parents).ExecuteCommandAsync();
|
||||
}
|
||||
|
||||
// 重复检测
|
||||
var mediaFile = await _sqlSugarClient
|
||||
.Queryable<LasaMediaFile>()
|
||||
.Where(a => a.FlightId.Equals(flightId))
|
||||
.Where(a => a.ObjectKey.Equals(objectKey)).SingleAsync();
|
||||
if (mediaFile == null)
|
||||
{
|
||||
string flightId = data.file.ext.flight_id;
|
||||
string taskId = _manageApp.GetTaskAssignByFlightId(flightId).TaskId;
|
||||
var fileUpload = new LasaMediaFile()
|
||||
{
|
||||
Id = Guid.NewGuid().ToString(),
|
||||
FlightId = flightId, // 计划id
|
||||
TaskId = taskId, // 任务id
|
||||
TaskId = taskAssgin.TaskId, // 任务id
|
||||
DroneModelKey = data.file.ext.drone_model_key, // 无人机型号
|
||||
IsOriginal = data.file.ext.is_original,
|
||||
MediaIndex = data.file.ext.media_index,
|
||||
|
|
@ -234,46 +284,49 @@ public class ConfigSubscribe : IJob
|
|||
ObjectKey = data.file.object_key,
|
||||
Path = data.file.path, // 目前这个好像没有值
|
||||
CreateTime = ((string)data.file.metadata.created_time).ToDateTime(),
|
||||
ParentKey = folderKey[2],
|
||||
Level = 4
|
||||
};
|
||||
// todo 添加事务
|
||||
_sqlSugarClient.Insertable(fileUpload).ExecuteCommand();
|
||||
if (result.need_reply.Equals(1))
|
||||
{
|
||||
var fileUploadCallbackEventReply = new FileUploadCallbackEventReply<object>()
|
||||
{
|
||||
bid = result.bid,
|
||||
tid = result.tid,
|
||||
method = "file_upload_callback",
|
||||
gateway = sn,
|
||||
data = new
|
||||
{
|
||||
result = 0
|
||||
},
|
||||
timestamp = DateTimeOffset.Now.ToUnixTimeMilliseconds(),
|
||||
};
|
||||
_ = _mqttClientManager.PublishAsync($"thing/product/{sn}/events_reply",
|
||||
JsonConvert.SerializeObject(fileUploadCallbackEventReply));
|
||||
}
|
||||
|
||||
var expectFileCount = data.flight_task.expected_file_count;
|
||||
var uploadedFileCount = data.flight_task.uploaded_file_count;
|
||||
|
||||
var taskRecord = new LasaTask()
|
||||
{
|
||||
Id = taskId,
|
||||
ExpectedFileCount = expectFileCount, // 期望文件数量
|
||||
UploadedFileCount = uploadedFileCount // 已上传文件数量
|
||||
};
|
||||
// 当expectFileCount 等于uploadedFileCount时,则表示航线执行完成
|
||||
if (uploadedFileCount.Equals(expectFileCount))
|
||||
{
|
||||
taskRecord.Status = 5; // 成功状态
|
||||
}
|
||||
|
||||
_sqlSugarClient.Updateable(taskRecord)
|
||||
.IgnoreNullColumns().ExecuteCommand();
|
||||
await _sqlSugarClient.Insertable(fileUpload).ExecuteCommandAsync();
|
||||
}
|
||||
|
||||
if (result.need_reply.Equals(1))
|
||||
{
|
||||
var fileUploadCallbackEventReply = new FileUploadCallbackEventReply<object>()
|
||||
{
|
||||
bid = result.bid,
|
||||
tid = result.tid,
|
||||
method = "file_upload_callback",
|
||||
gateway = sn,
|
||||
data = new
|
||||
{
|
||||
result = 0
|
||||
},
|
||||
timestamp = DateTimeOffset.Now.ToUnixTimeMilliseconds(),
|
||||
};
|
||||
_ = _mqttClientManager.PublishAsync($"thing/product/{sn}/events_reply",
|
||||
JsonConvert.SerializeObject(fileUploadCallbackEventReply));
|
||||
}
|
||||
|
||||
var expectFileCount = data.flight_task.expected_file_count;
|
||||
var uploadedFileCount = data.flight_task.uploaded_file_count;
|
||||
|
||||
var taskRecord = new LasaTask()
|
||||
{
|
||||
Id = taskId,
|
||||
ExpectedFileCount = expectFileCount, // 期望文件数量
|
||||
UploadedFileCount = uploadedFileCount // 已上传文件数量
|
||||
};
|
||||
// 当expectFileCount 等于uploadedFileCount时,则表示航线执行完成
|
||||
if (uploadedFileCount.Equals(expectFileCount))
|
||||
{
|
||||
taskRecord.Status = 5; // 成功状态
|
||||
}
|
||||
|
||||
await _sqlSugarClient.Updateable(taskRecord)
|
||||
.IgnoreNullColumns().ExecuteCommandAsync();
|
||||
|
||||
break;
|
||||
case "release_terminal_control_area":
|
||||
//暂不处理
|
||||
|
|
@ -87,4 +87,20 @@ public class LasaMediaFile
|
|||
public DateTime? CreateTime { get; set; }
|
||||
|
||||
public string TaskId { get; set; }
|
||||
/// <summary>
|
||||
/// 文件夹所属层级
|
||||
/// </summary>
|
||||
public int Level { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 父文件key
|
||||
/// </summary>
|
||||
public string ParentKey { get; set; }
|
||||
public string WorkspaceId { get; set; }
|
||||
|
||||
public int? ShowOnMap { get; set; }
|
||||
|
||||
public int? display { get; set; }
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -24,8 +24,10 @@ namespace OpenAuth.Repository.Domain
|
|||
/// </summary>
|
||||
public string TaskName { get; set; }
|
||||
|
||||
public string CreateUserName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 任务类型
|
||||
/// 任务类型 "0":"立即任务","1":"定时任务"
|
||||
/// </summary>
|
||||
public int TaskType { get; set; }
|
||||
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ namespace OpenAuth.Repository.Domain
|
|||
public string DevicePicUrl { get; set; }
|
||||
public string Did { get; set; }
|
||||
public string PId { get; set; }
|
||||
public DateTime? CreateTime { get; set; }
|
||||
/// <summary>
|
||||
/// Desc:是否删除
|
||||
/// Default:false
|
||||
|
|
|
|||
|
|
@ -81,6 +81,8 @@ namespace OpenAuth.Repository
|
|||
public SugarRepositiry<DroneDocktask> DroneDocktask { get; set; }
|
||||
|
||||
public SugarRepositiry<LasaMediaFile> LasaMediaFile { get; set; }
|
||||
|
||||
public SugarRepositiry<SysOpenJob> SysOpenJob { get; set; }
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -123,6 +123,7 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
|
|||
/// <param name="info"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[AllowAnonymous]
|
||||
public async Task<Response<bool>> AddFirmware(LasaFirmware info)
|
||||
{
|
||||
var result = new Response<bool>();
|
||||
|
|
@ -137,6 +138,41 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
|
|||
}
|
||||
return result;
|
||||
}
|
||||
/// <summary>
|
||||
/// 修改无人机或机场版本
|
||||
/// </summary>
|
||||
/// <param name="info"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[AllowAnonymous]
|
||||
public async Task<Response<bool>> UpdateFirmware(string id, string version, int type)
|
||||
{
|
||||
var result = new Response<bool>();
|
||||
try
|
||||
{
|
||||
result = await _app.UpdateFirmware(id, version, type);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
result.Code = 500;
|
||||
result.Message = ex.Message;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
/// <summary>
|
||||
/// 上传固件文件
|
||||
/// </summary>
|
||||
/// <param name="xmlFile"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost("upload")]
|
||||
[AllowAnonymous]
|
||||
public async Task<IActionResult> UploadFirmwareFile(IFormFile xmlFile)
|
||||
{
|
||||
if (xmlFile == null || xmlFile.Length == 0)
|
||||
return BadRequest("文件为空");
|
||||
var path = await _app.UploadFile(xmlFile);
|
||||
return Ok(new { message = "上传成功", path });
|
||||
}
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
|
|
@ -625,12 +661,47 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
|
|||
|
||||
[HttpGet]
|
||||
[AllowAnonymous]
|
||||
public async Task<Response<PageInfo<List<LasaMediaFile>>>> GetMediaFile(string device,string picname, DateTime startTime, DateTime endTime, int page, int limit)
|
||||
public async Task<Response<PageInfo<List<LasaMediaFile>>>> GetMediaFile(string device,string picname, DateTime startTime, DateTime endTime, int page, int limit,int level,string parentKey)
|
||||
{
|
||||
var result = new Response<PageInfo<List<LasaMediaFile>>>();
|
||||
try
|
||||
{
|
||||
result = await _app.GetMediaFile(device, picname,startTime, endTime, page, limit);
|
||||
result = await _app.GetMediaFile(device, picname,startTime, endTime, page, limit, level,parentKey);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
result.Code = 500;
|
||||
result.Message = ex.Message;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
[HttpGet]
|
||||
[AllowAnonymous]
|
||||
public async Task<Response<string>> UpdatePicStatus(string id, int showOnMap,int display)
|
||||
{
|
||||
var result = new Response<string>();
|
||||
try
|
||||
{
|
||||
result = await _app.UpdatePicStatus(id, showOnMap, display);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
result.Code = 500;
|
||||
result.Message = ex.Message;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
[AllowAnonymous]
|
||||
public async Task<Response<string>> deletepic(string ids)
|
||||
{
|
||||
var result = new Response<string>();
|
||||
try
|
||||
{
|
||||
result = await _app.deletepic(ids);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
using System.Text;
|
||||
using DocumentFormat.OpenXml.Math;
|
||||
using Infrastructure;
|
||||
using Infrastructure.CloudSdk.wayline;
|
||||
using Infrastructure.Extensions;
|
||||
|
|
@ -8,6 +9,7 @@ using Microsoft.AspNetCore.Mvc;
|
|||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using OpenAuth.App.ServiceApp;
|
||||
using OpenAuth.App.ServiceApp.AirLine.Request;
|
||||
using OpenAuth.App.ServiceApp.Request;
|
||||
using OpenAuth.App.ServiceApp.Response;
|
||||
using OpenAuth.Repository.Domain;
|
||||
|
|
@ -37,15 +39,18 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
|
|||
/// </summary>
|
||||
/// <param name="page"></param>
|
||||
/// <param name="limit"></param>
|
||||
/// <param name="key"></param>
|
||||
/// <param name="sn">sn</param>
|
||||
/// <param name="type">类型</param>
|
||||
/// <param name="workspaceid">项目</param>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public async Task<Response<PageInfo<List<LasaDronePort>>>> GetDataList(int page, int limit, string key)
|
||||
public async Task<Response<PageInfo<List<LasaDronePort>>>> GetDataList(int page, int limit, string sn,
|
||||
string type, string workspaceid)
|
||||
{
|
||||
var result = new Response<PageInfo<List<LasaDronePort>>>();
|
||||
try
|
||||
{
|
||||
result = await _app.GetPageList(page, limit, key);
|
||||
result = await _app.GetPageList(page, limit, sn, type, workspaceid);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
|
@ -95,17 +100,20 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
|
|||
/// <summary>
|
||||
/// 获取无人机列表
|
||||
/// </summary>
|
||||
/// <param name="pageIndex"></param>
|
||||
/// <param name="pageSize"></param>
|
||||
/// <param name="key"></param>
|
||||
/// <param name="page"></param>
|
||||
/// <param name="limit"></param>
|
||||
/// <param name="sn">sn</param>
|
||||
/// <param name="type">类型</param>
|
||||
/// <param name="workspaceid">项目</param>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public async Task<Response<PageInfo<List<dynamic>>>> GetUavPageList(int page, int limit, string key)
|
||||
public async Task<Response<PageInfo<List<dynamic>>>> GetUavPageList(int page, int limit, string sn, string type,
|
||||
string workspaceid)
|
||||
{
|
||||
var result = new Response<PageInfo<List<dynamic>>>();
|
||||
try
|
||||
{
|
||||
result = await _app.GetUavPageList(page, limit, key);
|
||||
result = await _app.GetUavPageList(page, limit, sn, type, workspaceid);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
|
@ -147,6 +155,7 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
|
|||
{
|
||||
return await _app.DeleteUav(id);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 根据机场sn获取无人机列表
|
||||
/// </summary>
|
||||
|
|
@ -171,6 +180,19 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
|
|||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 导出无人机信息
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public async Task<IActionResult> ExportDevice()
|
||||
{
|
||||
var content = await _app.GetUavSn();
|
||||
byte[] fileBytes = Encoding.UTF8.GetBytes(content);
|
||||
string fileName = "DeviceSNList_" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
|
||||
return File(fileBytes, "text/plain", fileName);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 任务管理
|
||||
|
|
@ -183,12 +205,13 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
|
|||
/// <param name="key"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public async Task<Response<PageInfo<List<LasaTask>>>> GetTaskPageList(int page, int limit, string key)
|
||||
public async Task<Response<PageInfo<List<LasaTask>>>> GetTaskPageList(int page, int limit, string key,
|
||||
int? status)
|
||||
{
|
||||
var result = new Response<PageInfo<List<LasaTask>>>();
|
||||
try
|
||||
{
|
||||
result = await _app.GetTaskPageList(page, limit, key);
|
||||
result = await _app.GetTaskPageList(page, limit, key, status);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
|
@ -210,10 +233,11 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
/// 编辑任务
|
||||
/// 编辑任务,不再允许编辑任务
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Obsolete]
|
||||
public async Task<Response<bool>> EditTask(LasaTask info)
|
||||
{
|
||||
return await _app.EditTask(info);
|
||||
|
|
@ -241,12 +265,12 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
|
|||
/// <param name="key"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public async Task<Response<PageInfo<List<LasaAirLine>>>> GetAirLineList(int page, int limit, string key)
|
||||
public async Task<Response<PageInfo<List<LasaAirLine>>>> GetAirLineList([FromQuery] AirLineListRequestPage req)
|
||||
{
|
||||
var result = new Response<PageInfo<List<LasaAirLine>>>();
|
||||
try
|
||||
{
|
||||
result = await _app.GetAirLinePageList(page, limit, key);
|
||||
result = await _app.GetAirLinePageList(req);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
|
@ -492,6 +516,7 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
|
|||
{
|
||||
return await _app.GetTAskImageList(taskId);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 开启机场直播(测试使用)
|
||||
/// </summary>
|
||||
|
|
@ -503,6 +528,7 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
|
|||
{
|
||||
return await _app.StartDronePortLive(streamUrl);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 测试使用
|
||||
/// </summary>
|
||||
|
|
@ -739,6 +765,7 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
|
|||
#endregion
|
||||
|
||||
#region 基本信息
|
||||
|
||||
/// <summary>
|
||||
/// 获取基本信息
|
||||
/// </summary>
|
||||
|
|
@ -749,6 +776,7 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
|
|||
{
|
||||
return await _app.GetBasicInfo();
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
|
@ -12,6 +12,7 @@ namespace OpenAuth.WebApi.Model.mqtt
|
|||
private readonly MqttMessageCenter _mqttCenter;
|
||||
private readonly AirportMaintenanceApp _app;
|
||||
|
||||
|
||||
public MqttHostedService(IServiceProvider serviceProvider, MqttMessageCenter mqttCenter, AirportMaintenanceApp app)
|
||||
{
|
||||
_serviceProvider = serviceProvider;
|
||||
|
|
@ -23,14 +24,29 @@ namespace OpenAuth.WebApi.Model.mqtt
|
|||
{
|
||||
using var scope = _serviceProvider.CreateScope();
|
||||
var handlers = scope.ServiceProvider.GetServices<IMqttMessageHandler>();
|
||||
// 创建配置构建器
|
||||
var builder = new ConfigurationBuilder()
|
||||
.SetBasePath(Directory.GetCurrentDirectory())
|
||||
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
|
||||
.AddJsonFile(
|
||||
$"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Development"}.json",
|
||||
optional: true)
|
||||
.AddEnvironmentVariables();
|
||||
// 构建配置
|
||||
var configuration = builder.Build();
|
||||
// 读取连接字符串
|
||||
var serverIp = configuration["MQTT:Server"];
|
||||
var port = configuration["MQTT:Port"];
|
||||
var username = configuration["MQTT:UserName"];
|
||||
var password = configuration["MQTT:Password"];
|
||||
|
||||
await _mqttCenter.InitializeAsync(
|
||||
handlers,
|
||||
server: "175.27.168.120",
|
||||
port: 6011,
|
||||
server: serverIp,
|
||||
port: int.Parse(port),
|
||||
clientId: Guid.NewGuid().ToString(),
|
||||
username: "sdhc",
|
||||
password: ""
|
||||
username: username,
|
||||
password: password
|
||||
);
|
||||
//查询网关,订阅主题
|
||||
var topics = new List<string>();
|
||||
|
|
|
|||
|
|
@ -171,6 +171,7 @@ namespace OpenAuth.WebApi.Model.mqtt
|
|||
lasaUav.IsDelete = false;
|
||||
//lasaUav.TypeId = obj["device_model_key"].ToString();
|
||||
lasaUav.TypeId = "M4TD";
|
||||
lasaUav.CreateTime = DateTime.Now;
|
||||
lasaUav.Sn = obj["sn"].ToString();
|
||||
lasaUav.PId = lasaDronePort.Id;
|
||||
lasaUav.Name = obj["device_callsign"]?.ToString();
|
||||
|
|
|
|||
Loading…
Reference in New Issue