using Infrastructure; using Infrastructure.Extensions; using Microsoft.AspNetCore.Mvc; using OpenAuth.App.BaseApp.Shape; using OpenAuth.App.BaseApp.Shape.Request; using OpenAuth.App.Request; using OpenAuth.App.ServiceApp.ShpGeo.Request; using OpenAuth.App.ServiceApp.ShpGeo; using OpenAuth.App.Shape.Request; using OpenAuth.Repository.Domain; namespace OpenAuth.WebApi.Controllers.BaseControllers; [Route("api/[controller]/[action]")] [ApiController] public class ShpLayerSourceController : ControllerBase { private readonly ShpLayerSourceApp _shpLayerSourceApp; public ShpLayerSourceController(ShpLayerSourceApp shpLayerSourceApp) { this._shpLayerSourceApp = shpLayerSourceApp; } // 添加图层 [Obsolete("废弃")] [HttpPost] public async Task> Add(ShpLayerSource obj) { var result = new Response(); try { result = await _shpLayerSourceApp.Add(obj); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } [HttpGet] public async Task>>> LoadPage([FromQuery] ShpLayerSourceReq req) { return await _shpLayerSourceApp.LoadPage(req); } [HttpGet] public Response Get(string id) { var result = new Response(); try { result.Result = _shpLayerSourceApp.Get(id); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } /// /// 解析shp文件 /// /// zip文件相对路径 /// 服务名称 /// 表名 /// 空间参考 /// [HttpPost] public async Task> ParseShpInfo(string zipFilePath, string serviceName, string tableName, string srid) { var result = new Response(); if (string.IsNullOrEmpty(zipFilePath)) { result.Code = 500; result.Message = "未传文件路径"; return result; } try { result = await _shpLayerSourceApp.ParseShpInfo(zipFilePath, serviceName, tableName, srid); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } [HttpPost] public async Task> CreateDataTable(ShpInfo shpInfo) { var result = new Response(); try { result = await _shpLayerSourceApp.CreateDataTable(shpInfo); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } /// /// /// /// shp文件路径 /// 表名 /// 空间参考 /// // POST: api/ [Obsolete("不再使用,替换为ParseShpInfo")] [HttpPost] public Task CreateGISLayer(string filePath, string tableName, string srid, string serverName) { if (string.IsNullOrEmpty(tableName)) { throw new ArgumentNullException("未传表名"); } return _shpLayerSourceApp.CreateGISLayer(filePath, tableName, srid, serverName); } /// /// 取得矢量切片 /// /// /// // GET api//5 [HttpGet] public IActionResult GetMapbox([FromQuery] QueryMapboxReq req) { // 根据serviceId取得服务信息,得到图斑表,查询 // TODO: 图层相关接口 1. 图层列表;2. 新建图层 // 上传shp, 根据前端参数,新建指定空间参数的表, // 上传图层步骤,上传shp建的表,如何与之关联?在服务资源对应的表中,存储表名? // 传serviceId ,还是tableName ? var result = _shpLayerSourceApp.QueryMapbox(req); return File(result, "application/octet-stream"); } [HttpGet] [Obsolete("不再使用")] public Task test() { return _shpLayerSourceApp.TestReadShpFeature("20240528\\2024052816004685980256.zip"); } /// /// 发布图层 /// /// /// /// [HttpPost] public async Task> PublishLayer(PublishLayerReq publishLayerReq) { if (publishLayerReq.Name.IsNullOrEmpty()) { throw new ArgumentNullException("未传图层名称"); } if (publishLayerReq.Description.IsNullOrEmpty()) { throw new ArgumentNullException("未传图层描述"); } var result = new Response(); try { result = await _shpLayerSourceApp.PublishLayer(publishLayerReq); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } /// /// 更新图层 /// /// /// [HttpPost] public async Task> UpdateLayer(UpdateLayerReq updateLayerReq) { var result = new Response(); try { result = await _shpLayerSourceApp.UpdateLayer(updateLayerReq); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } /// /// 删除图层 /// /// /// [HttpDelete("{id}")] public async Task> DeleteLayer(string id) { var result = new Response(); try { result = await _shpLayerSourceApp.DeleteLayer(id); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } /// ///查询图斑数据 /// /// /// [HttpPost] public async Task>>> GetShapeData([FromBody] ShapePageReq req) { var result = new Response>>(); try { result = await _shpLayerSourceApp.GetShapeData(req); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } /// /// 违法处理图斑查询(扩展到已有专题) /// /// /// [HttpGet] public async Task>> GetIllegalShapeData(string caseid, string category) { var result = new Response>(); try { result = await _shpLayerSourceApp.GetIllegalShapeData(caseid,category); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } /// /// 保存图斑数据 /// /// [HttpPost] public async Task>> SaveShapeData([FromBody] ShapeDataForm req) { var result = new Response>(); try { result = await _shpLayerSourceApp.SaveShapeData(req); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } #region 地图配置 /// /// 查询配置 /// /// /// [HttpGet] public async Task> LoadSettingConfig(string code) { var result = new Response(); try { result = await _shpLayerSourceApp.LoadSettingConfig(code); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } /// /// 添加配置 /// [HttpPost] public async Task> AddSettingConfig(FrontendSettingConfig obj) { var result = new Response(); try { result = await _shpLayerSourceApp.AddSettingConfig(obj); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } /// /// 修改配置 /// /// /// [HttpPost] public async Task> UpdateSettingConfig(FrontendSettingConfig obj) { var result = new Response(); try { result = await _shpLayerSourceApp.UpdateSettingConfig(obj); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } /// /// 删除配置 /// /// /// [HttpPost] public async Task> DeleteSettingConfig(string code) { var result = new Response(); try { result = await _shpLayerSourceApp.DeleteSettingConfig(code); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } #endregion #region shp导入 /// /// 违法用地 /// /// /// [HttpPost] public async Task> UpdateCaseInfoShpData(string zipFilePath, string srid) { var result = new Response(); try { result = await _shpLayerSourceApp.UpdateCaseInfoShpData(zipFilePath,srid); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } /// /// 非粮化 /// /// /// [HttpPost] public async Task> UpdateCaseInfoShpDataFLH(string zipFilePath, string srid) { var result = new Response(); try { result = await _shpLayerSourceApp.UpdateCaseInfoShpDataFLH(zipFilePath, srid); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } /// /// 重点问题1 /// /// /// [HttpPost] public async Task> UpdateCaseInfoShpDataZDWT1(string zipFilePath, string srid) { var result = new Response(); try { result = await _shpLayerSourceApp.UpdateCaseInfoShpDataZDWT1(zipFilePath, srid); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } /// /// 重点问题2 /// /// /// [HttpPost] public async Task> UpdateCaseInfoShpDataZDWT2(string zipFilePath, string srid) { var result = new Response(); try { result = await _shpLayerSourceApp.UpdateCaseInfoShpDataZDWT2(zipFilePath, srid); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } /// /// 巡查审计 /// /// /// [HttpPost] public async Task> UpdateCaseInfoShpDataXCSJ(string zipFilePath, string srid) { var result = new Response(); try { result = await _shpLayerSourceApp.UpdateCaseInfoShpDataXCSJ(zipFilePath, srid); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } /// /// 卫片下发 /// /// /// [HttpPost] public async Task> UpdateCaseInfoShpDataWPXF(string zipFilePath, string srid) { var result = new Response(); try { result = await _shpLayerSourceApp.UpdateCaseInfoShpDataWPXF(zipFilePath, srid); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } /// /// 矿产导入 /// /// /// [HttpPost] public async Task> UpdateCaseInfoShpDataMinerals(string zipFilePath, string srid) { var result = new Response(); try { result = await _shpLayerSourceApp.UpdateCaseInfoShpDataMinerals(zipFilePath, srid); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } #endregion }