using ce.autofac.extension; using Infrastructure; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using OpenAuth.App.Request; using OpenAuth.App.ServiceApp.ShpGeo; using OpenAuth.App.ServiceApp.ShpGeo.Request; using OpenAuth.App.Shape.Request; using OpenAuth.Repository.Domain; namespace OpenAuth.WebApi.Controllers.ServiceControllers; [Route("api/[controller]/[action]")] [ApiController] public class ShpGeoLayerController : ControllerBase { private readonly ShpGeoLayerApp _shpGeoLayerApp; public ShpGeoLayerController(ShpGeoLayerApp shpGeoLayerApp) { this._shpGeoLayerApp = shpGeoLayerApp; } /// /// geo服务添加 / 云查询图层管理 /// /// /// [HttpPost] public async Task> Add(ShpGeoLayerShpReq obj) { var result = new Response(); try { result = await _shpGeoLayerApp.Add(obj); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } /// /// 列表 /// /// /// [HttpGet] public async Task>>> LoadPage([FromQuery] ShpGeoLayerReq req) { return await _shpGeoLayerApp.LoadPage(req); } [HttpGet] public Response Get(string id) { var result = new Response(); try { result.Result = _shpGeoLayerApp.Get(id); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } /// /// 更新图层 /// /// /// [HttpPost] public async Task> UpdateLayer(UpdateGeoLayerShpReq updateLayerReq) { var result = new Response(); try { result = await _shpGeoLayerApp.UpdateLayer(updateLayerReq); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } /// /// 删除图层 /// /// /// [HttpPost("{id}")] public async Task> Delete(string id) { var result = new Response(); try { result = await _shpGeoLayerApp.Delete(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 tableName, string srid) { var result = new Response(); if (string.IsNullOrEmpty(zipFilePath)) { result.Code = 500; result.Message = "未传文件路径"; return result; } try { result = await _shpGeoLayerApp.ParseShpInfo(zipFilePath, tableName, srid); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } /// /// 获取shp数据表中心坐标 /// /// /// [HttpGet] public async Task> GetGeomData(string tableName) { return await _shpGeoLayerApp.GetGeomData(tableName); } [HttpPost] public async Task> Test(string tableName, string serverName, string srid, string shpPath) { return await _shpGeoLayerApp.Test1(tableName, serverName, srid, shpPath); //return await _shpGeoLayerApp.Test( tableName, serverName, srid, shpPath); } [HttpGet] [AllowAnonymous] public IActionResult QueryVectorTileByTable([FromQuery] QueryVectorTileByTableReq req) { var result = _shpGeoLayerApp.QueryVectorTileByTable(req); return File(result, "application/octet-stream"); } [HttpGet] public dynamic GetDataTableRecord(string dataTable, string id) { return _shpGeoLayerApp.GetDataTableRecord(dataTable,id); } }