From 399e7bdd90637efececa44b2cbe46d7b27fad393 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B4=81=20=E4=BB=BB?= Date: Thu, 12 Jun 2025 11:26:59 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E6=B7=BB=E5=8A=A0=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E6=9F=A5=E8=AF=A2=E7=AD=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BaseApp/UserManager/UserManagerApp.cs | 6 +- OpenAuth.App/ServiceApp/ManageApp.cs | 91 ++++- OpenAuth.App/ServiceApp/Request/WorkSpace.cs | 1 + .../ServiceApp/Response/WorkSpaceRes.cs | 17 + .../Domain/LasaSpaceLockFly.cs | 63 ++++ OpenAuth.Repository/Domain/LasaWorkspace.cs | 349 ++++++++++-------- OpenAuth.Repository/SugarDbContext.cs | 1 + .../ServiceControllers/ManageController.cs | 49 ++- 8 files changed, 406 insertions(+), 171 deletions(-) create mode 100644 OpenAuth.App/ServiceApp/Response/WorkSpaceRes.cs create mode 100644 OpenAuth.Repository/Domain/LasaSpaceLockFly.cs diff --git a/OpenAuth.App/BaseApp/UserManager/UserManagerApp.cs b/OpenAuth.App/BaseApp/UserManager/UserManagerApp.cs index 34b0a79..cd32da2 100644 --- a/OpenAuth.App/BaseApp/UserManager/UserManagerApp.cs +++ b/OpenAuth.App/BaseApp/UserManager/UserManagerApp.cs @@ -512,17 +512,17 @@ namespace OpenAuth.App { using (var uow = base.UnitWork.CreateContext()) { - foreach (var item in uow.Db.DbMaintenance.GetTableInfoList().Where(r => r.Name.ToLower().StartsWith("lasa_workspace"))) + foreach (var item in uow.Db.DbMaintenance.GetTableInfoList().Where(r => r.Name.ToLower().StartsWith("lasa_spacelockfly"))) { //string entityName = item.Name.Substring(0, 1).ToUpper() + item.Name.Substring(1, 7).ToLower() + item.Name.Substring(9, 1).ToUpper() + item.Name.Substring(10).ToLower();/*实体名大写*/ - string entityName = "LasaWorkspace1"; + string entityName = "LasaSpaceLockFly"; uow.Db.MappingTables.Add(entityName, item.Name); //foreach (var col in db.DbMaintenance.GetColumnInfosByTableName(item.Name)) //{ // db.MappingColumns.Add(col.DbColumnName.ToUpper() /*类的属性大写*/, col.DbColumnName, entityName); //} } - uow.Db.DbFirst.Where(r => r.ToLower().StartsWith("lasa_workspace")).IsCreateAttribute().CreateClassFile("E:\\低空态势感知\\code\\OpenAuth.Repository\\Domain", "OpenAuth.Repository.Domain"); + uow.Db.DbFirst.Where(r => r.ToLower().StartsWith("lasa_spacelockfly")).IsCreateAttribute().CreateClassFile("E:\\低空态势感知\\code\\OpenAuth.Repository\\Domain", "OpenAuth.Repository.Domain"); uow.Commit(); } return "更新实体成功"; diff --git a/OpenAuth.App/ServiceApp/ManageApp.cs b/OpenAuth.App/ServiceApp/ManageApp.cs index 0a43a04..141fab5 100644 --- a/OpenAuth.App/ServiceApp/ManageApp.cs +++ b/OpenAuth.App/ServiceApp/ManageApp.cs @@ -1,7 +1,9 @@ -using Infrastructure; +using DocumentFormat.OpenXml.Wordprocessing; +using Infrastructure; using OpenAuth.App.BaseApp.Base; using OpenAuth.App.Interface; using OpenAuth.App.ServiceApp.Request; +using OpenAuth.App.ServiceApp.Response; using OpenAuth.Repository; using OpenAuth.Repository.Domain; using SqlSugar; @@ -187,15 +189,27 @@ namespace OpenAuth.App.ServiceApp /// /// /// - public async Task>> GetWorkspaceList(string key) + public async Task>> GetWorkspaceList(string key) { RefAsync totalCount = 0; using (var db = UnitWork.CreateContext()) { var list = await db.LasaWorkspace.AsQueryable() .WhereIF(!string.IsNullOrEmpty(key), a => a.WorkspaceName.Contains(key)) + .LeftJoin((a,u)=>a.CreateId==u.Id) + .Select((a, u) => new + { + a.Id, + a.WorkspaceName, + a.WorkspaceDesc, + a.Sate, + a.CreateTime, + a.CreateId, + u.Account, + u.Name + }) .ToListAsync(); - return new Response> + return new Response> { Result = list }; @@ -228,6 +242,13 @@ namespace OpenAuth.App.ServiceApp sd.UserId = item; users.Add(sd); } + + foreach (var item in info.Lockfly) + { + item.Id = Guid.NewGuid().ToString(); + item.WorkSpaceId= lasaWorkspace.Id; + await db.LasaSpaceLockFly.InsertAsync(item); + } await db.LasaWorkspace.InsertAsync(lasaWorkspace); await db.LasaSpaceDevice.InsertRangeAsync(devices); await db.LasaSpaceUser.InsertRangeAsync(users); @@ -261,6 +282,20 @@ namespace OpenAuth.App.ServiceApp sd.UserId = item; users.Add(sd); } + foreach (var item in info.Lockfly) + { + if (!string.IsNullOrEmpty(item.Id)) + { + await db.LasaSpaceLockFly.UpdateAsync(item); + } + else + { + item.Id = Guid.NewGuid().ToString(); + item.WorkSpaceId = lasaWorkspace.Id; + await db.LasaSpaceLockFly.InsertAsync(item); + } + } + await db.LasaSpaceDevice.DeleteAsync(r=>r.WorkSpaceId == lasaWorkspace.Id); await db.LasaSpaceDevice.InsertRangeAsync(devices); await db.LasaSpaceUser.DeleteAsync(r=>r.WorkSpaceId==lasaWorkspace.Id); @@ -271,6 +306,56 @@ namespace OpenAuth.App.ServiceApp return new Response { Result = false, Message = "编辑失败" }; } } + //获取无人机信息 + public async Task>> GetUavList() + { + + using (var db = UnitWork.CreateContext()) + { + var list=db.LasaSpaceDevice.AsQueryable()?.Select(r=>r.DeviceId).ToList(); + + var uavlist = await db.LasaUav.AsQueryable() + .Where(r=>!list.Contains(r.Id)) + .ToListAsync(); + return new Response> + { + Result=uavlist + }; + } + } + + /// + /// 根据项目id获取项目信息 + /// + /// + /// + public async Task> GetWorkSpaceById(string id) + { + using (var db = UnitWork.CreateContext()) + { + WorkSpaceRes res=new WorkSpaceRes(); + var workspace= await db.LasaWorkspace.AsQueryable().Where(r=>r.Id==id).FirstAsync(); + var sysuser = db.User.AsQueryable() + .LeftJoin((r, a) => r.Id == a.UserId) + .Where((r, a) => a.WorkSpaceId == id) + .Select((r, a) => r).ToList(); + var uav=db.LasaUav.AsQueryable() + .LeftJoin((r,a)=>r.Id==a.DeviceId) + .Where((r,a)=>a.WorkSpaceId==id) + .Select((r,a)=>r).ToList(); + var lockfly=db.LasaSpaceLockFly.AsQueryable().Where(r=>r.WorkSpaceId==id).ToList(); + res.users = sysuser; + res.lasaUavs = uav; + res.lasaSpaceLockFlies = lockfly; + res.workspace = workspace; + + return new Response + { + Result = res + }; + } + } + //删除项目 public async Task> DeleteWorkspace(string id) { diff --git a/OpenAuth.App/ServiceApp/Request/WorkSpace.cs b/OpenAuth.App/ServiceApp/Request/WorkSpace.cs index f7a969a..3f2cd18 100644 --- a/OpenAuth.App/ServiceApp/Request/WorkSpace.cs +++ b/OpenAuth.App/ServiceApp/Request/WorkSpace.cs @@ -12,5 +12,6 @@ namespace OpenAuth.App.ServiceApp.Request public LasaWorkspace LasaWorkspace { get; set; } public List UserIds { get; set; } public List DeviceIds { get; set; } + public List Lockfly { get; set; } } } diff --git a/OpenAuth.App/ServiceApp/Response/WorkSpaceRes.cs b/OpenAuth.App/ServiceApp/Response/WorkSpaceRes.cs new file mode 100644 index 0000000..b573054 --- /dev/null +++ b/OpenAuth.App/ServiceApp/Response/WorkSpaceRes.cs @@ -0,0 +1,17 @@ +using OpenAuth.Repository.Domain; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace OpenAuth.App.ServiceApp.Response +{ + public class WorkSpaceRes + { + public LasaWorkspace workspace { get; set; } + public List users { get; set; } + public List lasaUavs { get; set; } + public List lasaSpaceLockFlies { get; set; } + } +} diff --git a/OpenAuth.Repository/Domain/LasaSpaceLockFly.cs b/OpenAuth.Repository/Domain/LasaSpaceLockFly.cs new file mode 100644 index 0000000..de1fab7 --- /dev/null +++ b/OpenAuth.Repository/Domain/LasaSpaceLockFly.cs @@ -0,0 +1,63 @@ +using System; +using System.Linq; +using System.Text; +using SqlSugar; + +namespace OpenAuth.Repository.Domain +{ + /// + ///项目阻飞参数表 + /// + [SugarTable("lasa_spacelockfly")] + public partial class LasaSpaceLockFly + { + public LasaSpaceLockFly(){ + + WindSpeed = 0; + WeatherWindSpeed=0; + } + /// + /// Desc:主键 + /// Default: + /// Nullable:False + /// + [SugarColumn(IsPrimaryKey=true)] + public string Id {get;set;} + + /// + /// Desc:名称 + /// Default: + /// Nullable:True + /// + public string Name {get;set;} + + /// + /// Desc:风速 + /// Default: + /// Nullable:True + /// + public int WindSpeed {get;set;} + + /// + /// Desc:天气预报风速 + /// Default: + /// Nullable:True + /// + public int WeatherWindSpeed {get;set;} + + /// + /// Desc:雨量 + /// Default: + /// Nullable:True + /// + public string RainFall {get;set;} + + /// + /// Desc:雨量 + /// Default: + /// Nullable:True + /// + public string WorkSpaceId { get; set; } + + } +} diff --git a/OpenAuth.Repository/Domain/LasaWorkspace.cs b/OpenAuth.Repository/Domain/LasaWorkspace.cs index d884c78..f73d197 100644 --- a/OpenAuth.Repository/Domain/LasaWorkspace.cs +++ b/OpenAuth.Repository/Domain/LasaWorkspace.cs @@ -11,171 +11,194 @@ namespace OpenAuth.Repository.Domain [SugarTable("lasa_workspace")] public partial class LasaWorkspace { - public LasaWorkspace(){ + public LasaWorkspace() + { + // 初始化所有bool字段为false + IsAllowRequestCode = false; + IsCloudBlockFlight = false; + IsWeatherBlockFlight = false; + IsMultipleAircraft = false; + IsAirportRecord = false; + IsAircraftRecord = false; + IsLiveShare = false; + IsMediaShare = false; + IsDeviceTrans = false; + IsDeicePlaneTrans = false; + IsDelete = false; + } + /// + /// Desc:标识 + /// Default: + /// Nullable:False + /// + [SugarColumn(IsPrimaryKey = true)] + public string Id { get; set; } + + /// + /// Desc:项目名称 + /// Default: + /// Nullable:False + /// + public string WorkspaceName { get; set; } + + /// + /// Desc:项目描述 + /// Default: + /// Nullable:False + /// + public string WorkspaceDesc { get; set; } + + /// + /// Desc:平台名称 + /// Default: + /// Nullable:True + /// + public string PlatformName { get; set; } + + /// + /// Desc:创建时间 + /// Default: + /// Nullable:True + /// + public DateTime? CreateTime { get; set; } + + /// + /// Desc:创建人 + /// Default: + /// Nullable:True + /// + public long? CreateId { get; set; } + + /// + /// Desc:绑定码 + /// Default: + /// Nullable:True + /// + public string BindCode { get; set; } + + /// + /// Desc:作业中心点经度 + /// Default:0 + /// Nullable:True + /// + public decimal? CenterLng { get; set; } + + /// + /// Desc:作业中心点维度 + /// Default: + /// Nullable:True + /// + public decimal? CenterLat { get; set; } + + /// + /// Desc:是否允许申请码加入项目 + /// Default:false + /// Nullable:True + /// + [SugarColumn(DefaultValue = "false")] + public bool IsAllowRequestCode { get; set; } + + /// + /// Desc:申请码 + /// Default: + /// Nullable:True + /// + public string RequestCode { get; set; } + + /// + /// Desc:申请码截止时间 + /// Default: + /// Nullable:True + /// + public DateTime? RequestCodeCutOffTime { get; set; } + + /// + /// Desc:云端阻飞 + /// Default:false + /// Nullable:True + /// + [SugarColumn(DefaultValue = "false")] + public bool IsCloudBlockFlight { get; set; } + + /// + /// Desc:天气预报阻飞 + /// Default:false + /// Nullable:True + /// + [SugarColumn(DefaultValue = "false")] + public bool IsWeatherBlockFlight { get; set; } + + /// + /// Desc:多机安全起降 + /// Default:false + /// Nullable:True + /// + [SugarColumn(DefaultValue = "false")] + public bool IsMultipleAircraft { get; set; } + + /// + /// Desc:机场自动录制 + /// Default:false + /// Nullable:True + /// + [SugarColumn(DefaultValue = "false")] + public bool IsAirportRecord { get; set; } + + /// + /// Desc:飞行器自动录制 + /// Default:false + /// Nullable:True + /// + [SugarColumn(DefaultValue = "false")] + public bool IsAircraftRecord { get; set; } + + /// + /// Desc:直播分享 + /// Default:false + /// Nullable:True + /// + [SugarColumn(DefaultValue = "false")] + public bool IsLiveShare { get; set; } + + /// + /// Desc:媒体分享 + /// Default:false + /// Nullable:True + /// + [SugarColumn(DefaultValue = "false")] + public bool IsMediaShare { get; set; } + + /// + /// Desc:设备直传 + /// Default:false + /// Nullable:True + /// + [SugarColumn(DefaultValue = "false")] + public bool IsDeviceTrans { get; set; } + + /// + /// Desc:设备直传--计划设置 + /// Default:false + /// Nullable:True + /// + [SugarColumn(DefaultValue = "false")] + public bool IsDeicePlaneTrans { get; set; } + + /// + /// Desc:项目状态(0进行中,1已归档) + /// Default: + /// Nullable:True + /// + public short Sate { get; set; } - } - /// - /// Desc:标识 - /// Default: - /// Nullable:False - /// - [SugarColumn(IsPrimaryKey=true)] - public string Id {get;set;} - - /// - /// Desc:项目名称 - /// Default: - /// Nullable:False - /// - public string WorkspaceName {get;set;} - - /// - /// Desc:项目描述 - /// Default: - /// Nullable:False - /// - public string WorkspaceDesc {get;set;} - - /// - /// Desc:平台名称 - /// Default: - /// Nullable:True - /// - public string PlatformName {get;set;} - - /// - /// Desc:创建时间 - /// Default: - /// Nullable:True - /// - public DateTime? CreateTime {get;set;} - - /// - /// Desc:创建人 - /// Default: - /// Nullable:True - /// - public long? CreateId {get;set;} - - /// - /// Desc:绑定码 - /// Default: - /// Nullable:True - /// - public string BindCode {get;set;} - - /// - /// Desc:作业中心点经度 - /// Default:0 - /// Nullable:True - /// - public decimal? CenterLng {get;set;} - - /// - /// Desc:作业中心点维度 - /// Default: - /// Nullable:True - /// - public decimal? CenterLat {get;set;} - - /// - /// Desc:是否允许申请码加入项目 - /// Default:false - /// Nullable:True - /// - public bool IsAllowRequestCode {get;set;} - - /// - /// Desc:申请码 - /// Default: - /// Nullable:True - /// - public string RequestCode {get;set;} - - /// - /// Desc:申请码截止时间 - /// Default: - /// Nullable:True - /// - public DateTime? RequestCodeCutOffTime {get;set;} - - /// - /// Desc:云端阻飞 - /// Default:false - /// Nullable:True - /// - public bool IsCloudBlockFlight {get;set;} - - /// - /// Desc:天气预报阻飞 - /// Default:false - /// Nullable:True - /// - public bool IsWeatherBlockFlight {get;set;} - - /// - /// Desc:多机安全起降 - /// Default:false - /// Nullable:True - /// - public bool IsMultipleAircraft {get;set;} - - /// - /// Desc:机场自动录制 - /// Default:false - /// Nullable:True - /// - public bool IsAirportRecord {get;set;} - - /// - /// Desc:飞行器自动录制 - /// Default:false - /// Nullable:True - /// - public bool IsAircraftRecord {get;set;} - - /// - /// Desc:直播分享 - /// Default:false - /// Nullable:True - /// - public bool IsLiveShare {get;set;} - - /// - /// Desc:媒体分享 - /// Default:false - /// Nullable:True - /// - public bool IsMediaShare {get;set;} - - /// - /// Desc:设备直传 - /// Default:false - /// Nullable:True - /// - public bool IsDeviceTrans {get;set;} - - /// - /// Desc:设备直传--计划设置 - /// Default:false - /// Nullable:True - /// - public bool IsDeicePlaneTrans {get;set;} - - /// - /// Desc:项目状态(0进行中,1已归档) - /// Default: - /// Nullable:True - /// - public short Sate {get;set;} - - /// - /// Desc:是否删除 - /// Default:false - /// Nullable:True - /// - public bool IsDelete {get;set;} + /// + /// Desc:是否删除 + /// Default:false + /// Nullable:True + /// + [SugarColumn(DefaultValue = "false")] + public bool IsDelete { get; set; } } } diff --git a/OpenAuth.Repository/SugarDbContext.cs b/OpenAuth.Repository/SugarDbContext.cs index 91340a4..a94e1f7 100644 --- a/OpenAuth.Repository/SugarDbContext.cs +++ b/OpenAuth.Repository/SugarDbContext.cs @@ -67,6 +67,7 @@ namespace OpenAuth.Repository public SugarRepositiry LasaWorkspace { get; set; } public SugarRepositiry LasaSpaceUser { get; set; } public SugarRepositiry LasaSpaceDevice { get; set; } + public SugarRepositiry LasaSpaceLockFly { get; set; } #endregion } } diff --git a/OpenAuth.WebApi/Controllers/ServiceControllers/ManageController.cs b/OpenAuth.WebApi/Controllers/ServiceControllers/ManageController.cs index e8cd5a0..5cd2052 100644 --- a/OpenAuth.WebApi/Controllers/ServiceControllers/ManageController.cs +++ b/OpenAuth.WebApi/Controllers/ServiceControllers/ManageController.cs @@ -6,6 +6,7 @@ using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using OpenAuth.App.ServiceApp; using OpenAuth.App.ServiceApp.Request; +using OpenAuth.App.ServiceApp.Response; using OpenAuth.Repository.Domain; namespace OpenAuth.WebApi.Controllers.ServiceControllers @@ -252,9 +253,9 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers /// /// [HttpGet] - public async Task>> GetWorkspaceList(string key) + public async Task>> GetWorkspaceList(string key) { - var result = new Response>(); + var result = new Response>(); try { result = await _app.GetWorkspaceList(key); @@ -298,6 +299,50 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers return await _app.DeleteWorkspace(id); } + /// + /// 获取无人机列表,添加项目使用 + /// + /// + /// + [HttpGet] + public async Task>> GetUavList() + { + var result = new Response>(); + try + { + result = await _app.GetUavList(); + } + catch (Exception ex) + { + result.Code = 500; + result.Message = ex.Message; + } + + return result; + } + + /// + /// 根据项目id获取项目信息,编辑项目使用 + /// + /// 项目id + /// + [HttpGet] + public async Task> GetWorkSpaceById(string id) + { + var result = new Response(); + try + { + result = await _app.GetWorkSpaceById(id); + } + catch (Exception ex) + { + result.Code = 500; + result.Message = ex.Message; + } + + return result; + } + #endregion // 航线任务在云端的 共享查看、下发执行、取消以及进度上报等功能。