From 6e4667475bf2117c11c801c543e7b69465abe201 Mon Sep 17 00:00:00 2001 From: lgd Date: Fri, 13 Jun 2025 09:09:13 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E7=9B=B4=E6=92=AD=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AirportMaintenanceController.cs | 269 ++++++++++++++++++ 1 file changed, 269 insertions(+) diff --git a/OpenAuth.WebApi/Controllers/ServiceControllers/AirportMaintenanceController.cs b/OpenAuth.WebApi/Controllers/ServiceControllers/AirportMaintenanceController.cs index 06bd4fc..58005e0 100644 --- a/OpenAuth.WebApi/Controllers/ServiceControllers/AirportMaintenanceController.cs +++ b/OpenAuth.WebApi/Controllers/ServiceControllers/AirportMaintenanceController.cs @@ -71,5 +71,274 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers return result; } + + /// + /// 切换相机 + /// + /// + [HttpPost] + public async Task> ExchangeCamera(string camera,int position,string videoId) + { + Response response = new Response(); + try + { + + var topicRequest = $"thing/product/8UUXN5400A079H/services"; + var requestData = new + { + bid = Guid.NewGuid().ToString(), + method = "live_camera_change", + tid = Guid.NewGuid().ToString(), + timestamp = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(), + data = new + { + camera_position = position, + video_id = "8UUXN5400A079H/165-0-7/normal-0" + } + }; + string payload = JsonSerializer.Serialize(requestData); + await _mqttClientManager.PublishAsync(topicRequest, payload); + + var topicRequest1 = $"thing/product/8UUXN5400A079H/services_reply"; + var requestData1 = new + { + bid = Guid.NewGuid().ToString(), + method = "live_camera_change", + tid = Guid.NewGuid().ToString(), + timestamp = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(), + data = new + { + result = 0 + } + }; + string payload1 = JsonSerializer.Serialize(requestData1); + await _mqttClientManager.PublishAsync(topicRequest1, payload1); + + response.Result = 1; + + } + catch (Exception ex) + { + response.Code = 500; + response.Message = ex.Message; + } + return response; ; + + } + + + + /// + /// 设置直播镜头 + /// + /// + [HttpPost] + public async Task> SetCamera(string cameraType, string videoId) + { + Response response = new Response(); + try + { + + var topicRequest = $"thing/product/8UUXN5400A079H/services"; + var requestData = new + { + bid = Guid.NewGuid().ToString(), + method = "live_lens_change", + tid = Guid.NewGuid().ToString(), + timestamp = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(), + data = new + { + video_type = cameraType, + video_id = "8UUXN5400A079H/165-0-7/normal-0" + } + }; + string payload = JsonSerializer.Serialize(requestData); + await _mqttClientManager.PublishAsync(topicRequest, payload); + + var topicRequest1 = $"thing/product/8UUXN5400A079H/services_reply"; + var requestData1 = new + { + bid = Guid.NewGuid().ToString(), + method = "live_lens_change", + tid = Guid.NewGuid().ToString(), + timestamp = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(), + data = new + { + result = 0 + } + }; + string payload1 = JsonSerializer.Serialize(requestData1); + await _mqttClientManager.PublishAsync(topicRequest1, payload1); + + response.Result = 1; + + } + catch (Exception ex) + { + response.Code = 500; + response.Message = ex.Message; + } + return response; + + } + + + /// + /// 设置直播清晰度 + /// + /// + [HttpPost] + public async Task> SetCameraVideo(int videoQuality, string videoId) + { + Response response = new Response(); + try + { + + var topicRequest = $"thing/product/8UUXN5400A079H/services"; + var requestData = new + { + bid = Guid.NewGuid().ToString(), + method = "live_set_quality", + tid = Guid.NewGuid().ToString(), + timestamp = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(), + data = new + { + video_quality = videoQuality, + video_id = "8UUXN5400A079H/165-0-7/normal-0" + } + }; + string payload = JsonSerializer.Serialize(requestData); + await _mqttClientManager.PublishAsync(topicRequest, payload); + + var topicRequest1 = $"thing/product/8UUXN5400A079H/services_reply"; + var requestData1 = new + { + bid = Guid.NewGuid().ToString(), + method = "live_set_quality", + tid = Guid.NewGuid().ToString(), + timestamp = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(), + data = new + { + result = 0 + } + }; + string payload1 = JsonSerializer.Serialize(requestData1); + await _mqttClientManager.PublishAsync(topicRequest1, payload1); + + response.Result = 1; + + } + catch (Exception ex) + { + response.Code = 500; + response.Message = ex.Message; + } + return response; + + } + + + /// + /// 停止直播 + /// + /// + [HttpPost] + public async Task> EndLive( string videoId) + { + Response response = new Response(); + try + { + + var topicRequest = $"thing/product/8UUXN5400A079H/services"; + var requestData = new + { + bid = Guid.NewGuid().ToString(), + method = "live_stop_push", + tid = Guid.NewGuid().ToString(), + timestamp = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(), + data = new + { + + video_id = "8UUXN5400A079H/165-0-7/normal-0" + } + }; + string payload = JsonSerializer.Serialize(requestData); + await _mqttClientManager.PublishAsync(topicRequest, payload); + + var topicRequest1 = $"thing/product/8UUXN5400A079H/services_reply"; + var requestData1 = new + { + bid = Guid.NewGuid().ToString(), + method = "live_start_push", + tid = Guid.NewGuid().ToString(), + timestamp = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(), + data = new + { + result = 0 + } + }; + string payload1 = JsonSerializer.Serialize(requestData1); + await _mqttClientManager.PublishAsync(topicRequest1, payload1); + + response.Result = 1; + + + + } + catch (Exception ex) + { + response.Code = 500; + response.Message = ex.Message; + } + return response; + + } + + + + /// + /// 开始直播 + /// + /// + [HttpPost] + public async Task> StartLive(string videoId,int urlType,string url,int quality) + { + Response response = new Response(); + try + { + + var topicRequest = $"thing/product/8UUXN5400A079H/services"; + var requestData = new + { + bid = Guid.NewGuid().ToString(), + method = "live_start_push", + tid = Guid.NewGuid().ToString(), + timestamp = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(), + data = new + { + url_type = urlType, + url = url, + video_quality = quality, + video_id = "8UUXN5400A079H/165-0-7/normal-0" + } + }; + string payload = JsonSerializer.Serialize(requestData); + await _mqttClientManager.PublishAsync(topicRequest, payload); + + + + response.Result = 1; + + + + } + catch (Exception ex) + { + response.Code = 500; + response.Message = ex.Message; + } + return response; + + } } } From a957034cfa8a848efd8544d28aab8657badd585d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B4=81=20=E4=BB=BB?= Date: Fri, 13 Jun 2025 11:39:52 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E4=BF=AE=E6=94=B9=EF=BC=8C=E5=BD=92=E6=A1=A3?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- OpenAuth.App/ServiceApp/ManageApp.cs | 36 ++++++++++++++++--- .../ServiceControllers/ManageController.cs | 18 ++++++++-- 2 files changed, 47 insertions(+), 7 deletions(-) diff --git a/OpenAuth.App/ServiceApp/ManageApp.cs b/OpenAuth.App/ServiceApp/ManageApp.cs index 72b514a..4a4c66d 100644 --- a/OpenAuth.App/ServiceApp/ManageApp.cs +++ b/OpenAuth.App/ServiceApp/ManageApp.cs @@ -192,14 +192,23 @@ namespace OpenAuth.App.ServiceApp /// /// /// - public async Task>> GetWorkspaceList(string key) + public async Task>> GetWorkspaceList(int isjoin,string key,int state,string order= "\"CreateTime\" desc") { RefAsync totalCount = 0; using (var db = UnitWork.CreateContext()) { + var userid = _auth.GetCurrentUser().User.Id; + List ids=new List(); + if (isjoin == 1) + { + ids=db.LasaSpaceUser.AsQueryable().Where(r=>r.UserId== userid)?.Select(r => r.WorkSpaceId).ToList(); + } var list = await db.LasaWorkspace.AsQueryable() .WhereIF(!string.IsNullOrEmpty(key), a => a.WorkspaceName.Contains(key)) - .LeftJoin((a,u)=>a.CreateId==u.Id) + .WhereIF(state != 0, a => a.Sate == state) + .WhereIF(isjoin == 1, a => ids.Contains(a.Id)) + .WhereIF(isjoin == 2, a => !ids.Contains(a.Id)) + .LeftJoin((a, u) => a.CreateId == u.Id) .Select((a, u) => new { a.Id, @@ -209,9 +218,12 @@ namespace OpenAuth.App.ServiceApp a.CreateTime, a.CreateId, u.Account, - u.Name - }) + u.Name, + UserNames = SqlFunc.Subqueryable().Where(r => r.WorkSpaceId == a.Id).LeftJoin((r, s) => r.UserId == s.Id).SelectStringJoin((r, s) => s.Name, ",") + }).MergeTable() + .OrderBy(order) .ToListAsync(); + return new Response> { Result = list @@ -374,6 +386,22 @@ namespace OpenAuth.App.ServiceApp return new Response { Result = false, Message = "删除失败" }; } } + + //归档项目 + public async Task> CompleteWorkspace(string id) + { + using (var db = UnitWork.CreateContext()) + { + await db.LasaWorkspace.UpdateAsync(u => new LasaWorkspace + { + Sate = 2 + }, u => u.Id == id); + if (db.Commit()) + return new Response { Result = true, Message = "归档成功" }; + else + return new Response { Result = false, Message = "归档失败" }; + } + } #endregion public async Task ExecuteFlyTask(string taskId) diff --git a/OpenAuth.WebApi/Controllers/ServiceControllers/ManageController.cs b/OpenAuth.WebApi/Controllers/ServiceControllers/ManageController.cs index de2c14f..5b97d6d 100644 --- a/OpenAuth.WebApi/Controllers/ServiceControllers/ManageController.cs +++ b/OpenAuth.WebApi/Controllers/ServiceControllers/ManageController.cs @@ -258,15 +258,18 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers /// /// 获取项目列表 /// - /// + /// 是否是已加入的项目(0全部,1加入,2未加入) + /// 项目名称筛选 + /// 状态(0全部,1进行中,2已归档) + /// 排序 /// [HttpGet] - public async Task>> GetWorkspaceList(string key) + public async Task>> GetWorkspaceList(int isjoin, string key, int state, string order = "\"CreateTime\" desc") { var result = new Response>(); try { - result = await _app.GetWorkspaceList(key); + result = await _app.GetWorkspaceList(isjoin,key,state,order); } catch (Exception ex) { @@ -307,6 +310,15 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers return await _app.DeleteWorkspace(id); } + /// + /// 归档项目 + /// + /// + [HttpPost] + public async Task> CompleteWorkspace(string id) + { + return await _app.CompleteWorkspace(id); + } /// /// 获取机场列表,添加项目使用 ///