Infrastructure/OpenAuth.WebApi/Controllers/ServiceControllers/IdleLandController.cs

142 lines
3.9 KiB
C#

using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using OpenAuth.App.Request;
using OpenAuth.App;
using Infrastructure;
using OpenAuth.Repository.Domain;
using DocumentFormat.OpenXml.Office2010.Excel;
namespace OpenAuth.WebApi.Controllers
{
/// <summary>
/// 土地
/// </summary>
[Route("api/[controller]/[action]")]
[ApiController]
public class IdleLandController : ControllerBase
{
private IdleLandApp app;
public IdleLandController(IdleLandApp _app)
{
app = _app;
}
#region 分页
/// <summary>
/// 分页
/// </summary>
[HttpGet]
public async Task<Response<PageInfo<List<IdleLand>>>> LoadPage([FromQuery] PageReq request)
{
return await app.LoadPage(request);
}
/// <summary>
/// 详情
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpGet]
public async Task<Response<IdleLand>> Detail(string id)
{
var result = new Response<IdleLand>();
try
{
result.Result = await app.Detail(id);
}
catch (Exception ex)
{
result.Code = 500;
result.Message = ex.InnerException?.Message ?? ex.Message;
}
return result;
}
#endregion
/// <summary>
/// 查图层
/// </summary>
/// <param name="req"></param>
/// <returns></returns>
[HttpGet]
[AllowAnonymous]
public IActionResult QueryVectorTileByTable([FromQuery] QueryVectorTileByTableReq req)
{
var model = req.MapTo<VectorTileSearchModel>();
var result = app.VectorTile(model);
return File(result, "application/octet-stream");
}
/// <summary>
/// 图斑中心点
/// </summary>
/// <param name="tablename"></param>
/// <param name="filter"></param>
/// <returns></returns>
[HttpGet]
public Response<dynamic> GetCenterPoints(string tablename, string filter)
{
Response<dynamic> response = new Response<dynamic>();
try
{
response.Result = app.GetCenterPoints(tablename, filter);
}
catch (Exception ex)
{
response.Code = 500;
response.Message = ex.InnerException?.Message ?? ex.Message;
}
return response;
}
/// <summary>
/// 根据坐标获取村编码
/// </summary>
/// <param name="lat"></param>
/// <param name="lng"></param>
/// <returns></returns>
[HttpGet]
[AllowAnonymous]
public async Task<Response<string>> GetRegionNum(decimal lat,decimal lng)
{
var result = new Response<string>();
try
{
result.Result = await app.GetRegionNum(lat, lng);
}
catch (Exception ex)
{
result.Code = 500;
result.Message = ex.InnerException?.Message ?? ex.Message;
}
return result;
}
/// <summary>
/// 获取流水号
/// </summary>
/// <param name="prefix">前置类型</param>
/// <returns></returns>
[HttpGet]
public async Task<Response<string>> GetSequenceGen(string prefix)
{
var result = new Response<string>();
try
{
result.Result = await app.GetSequenceGen(prefix);
}
catch (Exception ex)
{
result.Code = 500;
result.Message = ex.InnerException?.Message ?? ex.Message;
}
return result;
}
}
}