using Infrastructure; using Infrastructure.Extensions; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using OpenAuth.App.ServiceApp; using OpenAuth.Repository.Domain; namespace OpenAuth.WebApi.Controllers.ServiceControllers { /// /// 后台管理模块 /// [Route("api/[controller]/[action]")] [ApiController] public class ManageController : ControllerBase { private readonly ManageApp _app; public ManageController(ManageApp app) { _app = app; } #region 机场管理 /// /// 获取机场列表 /// /// /// /// /// [HttpGet] public async Task>>> GetDataList(int page, int limit, string key) { var result = new Response>>(); try { result = await _app.GetPageList(page, limit, key); } catch (Exception ex) { result.Code = 500; result.Message = ex.Message; } return result; } #endregion #region 无人机管理 /// /// 获取无人机列表 /// /// /// /// /// [HttpGet] public async Task>>> GetUavPageList(int page, int limit, string key) { var result = new Response>>(); try { result = await _app.GetUavPageList(page, limit, key); } catch (Exception ex) { result.Code = 500; result.Message = ex.Message; } return result; } #endregion #region 任务管理 /// /// 获取任务列表 /// /// /// /// /// [HttpGet] public async Task>>> GetTaskPageList(int page, int limit, string key) { var result = new Response>>(); try { result = await _app.GetTaskPageList(page, limit, key); } catch (Exception ex) { result.Code = 500; result.Message = ex.Message; } return result; } /// /// 添加任务 /// /// [HttpPost] public async Task> AddTask(LasaTask info) { return await _app.AddTask(info); } /// /// 编辑任务 /// /// [HttpPost] public async Task> EditTask(LasaTask info) { return await _app.EditTask(info); } /// /// 删除任务 /// /// [HttpPost] public async Task> DeleteTask(string id) { return await _app.DeleteTask(id); } #endregion #region 航线管理 /// /// 获取航线列表 /// /// /// /// /// [HttpGet] public async Task>>> GetAirLineList(int page, int limit, string key) { var result = new Response>>(); try { result = await _app.GetAirLinePageList(page, limit, key); } catch (Exception ex) { result.Code = 500; result.Message = ex.Message; } return result; } /// /// 添加航线 /// /// [HttpPost] public async Task> AddAirLine(LasaAirLine info) { return await _app.AddAirLine(info); } /// /// 编辑航线 /// /// [HttpPost] public async Task> EditAirLine(LasaAirLine info) { return await _app.EditAirLine(info); } /// /// 删除航线 /// /// [HttpPost] public async Task> DeleteAirLine(string id) { return await _app.DeleteAirLine(id); } /// /// 上传航线文件 /// /// /// [HttpPost("upload")] public async Task UploadXmlFile(IFormFile xmlFile) { if (xmlFile == null || xmlFile.Length == 0) return BadRequest("文件为空"); var uploadsFolder = Path.Combine(Directory.GetCurrentDirectory(), "Waylines"); if (!Directory.Exists(uploadsFolder)) Directory.CreateDirectory(uploadsFolder); var filePath = Path.Combine(uploadsFolder, "waylines.wpml"); using (var stream = new FileStream(filePath, FileMode.Create)) { await xmlFile.CopyToAsync(stream); } return Ok(new { message = "上传成功", path = filePath }); } [HttpPost("uploadwpmlfile")] [AllowAnonymous] public async Task UploadWpmlFile(IFormFile xmlFile, string id) { if (xmlFile == null || xmlFile.Length == 0) return BadRequest("文件为空"); string baseFolder = "Waylines/" + (string.IsNullOrEmpty(id) ? Guid.NewGuid().ToString() : id); var uploadsFolder = Path.Combine(Directory.GetCurrentDirectory(), baseFolder); if (!Directory.Exists(uploadsFolder)) Directory.CreateDirectory(uploadsFolder); var filePath = Path.Combine(uploadsFolder, "waylines.wpml"); using (var stream = new FileStream(filePath, FileMode.Create)) { await xmlFile.CopyToAsync(stream); } return Ok(new { message = "上传成功", path = filePath }); } #endregion #region 项目管理 /// /// 获取项目列表 /// /// /// [HttpGet] public async Task>> GetWorkspaceList(string key) { var result = new Response>(); try { result = await _app.GetWorkspaceList(key); } catch (Exception ex) { result.Code = 500; result.Message = ex.Message; } return result; } /// /// 添加项目 /// /// [HttpPost] public async Task> AddWorkspace(LasaWorkspace info) { return await _app.AddWorkspace(info); } /// /// 编辑项目 /// /// [HttpPost] public async Task> EditWorkspace(LasaWorkspace info) { return await _app.EditWorkspace(info); } /// /// 删除项目 /// /// [HttpPost] public async Task> DeleteWorkspace(string id) { return await _app.DeleteWorkspace(id); } #endregion } }