using Infrastructure;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using OpenAuth.App.Response;
using OpenAuth.App.ServiceApp.FireManagement;
using OpenAuth.App.ServiceApp.FireManagement.Request;
using OpenAuth.App.ServiceApp.FmFireSiteManage;
using OpenAuth.App.ServiceApp.FmFireSiteManage.Response;
using OpenAuth.Repository.Domain.FireManagement;
namespace OpenAuth.WebApi.Controllers.ServiceControllers.FireManagement
{
///
/// 防火站点管理模块
///
[Route("api/[controller]/[action]")]
[ApiController]
public class FmFireSiteController : ControllerBase
{
private readonly FmFireSiteApp _app;
public FmFireSiteController(FmFireSiteApp app)
{
_app = app;
}
#region 站点管理
///
/// 查询所有站点
///
/// 站点名称
///
///
/// 状态(0-未审核,1-审核通过,2-未通过)
///
[HttpGet]
public async Task>>> LoadAllSite(string siteName, int pageIndex, int pageSize, int? state)
{
Response>> response = new Response>>();
try
{
return await _app.LoadAllSite(siteName,pageIndex,pageSize,state);
}
catch (Exception ex)
{
response.Code = 500;
response.Message = ex.InnerException?.Message ?? ex.Message;
}
return response;
}
///
/// 导出所有站点
///
///
[HttpGet]
public IActionResult ExportSite(int? state)
{
var res = new Response();
var excelRes = _app.ExportSite(state);
if (excelRes.Code == 200)
{
return File(excelRes.Result.ToArray(),
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
"数据导出" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls");
}
else
{
res.Code = excelRes.Code;
res.Message = "导出失败";
}
return Ok(res);
}
///
/// 站点审核
///
/// 站点id
/// 要修改的状态
/// 审核说明
///
[HttpPost]
public async Task> AuditSite(long siteId, int state, string content)
{
Response response = new();
try
{
return await _app.AuditSite(siteId,state,content);
}
catch (Exception ex)
{
response.Code = 500;
response.Message = ex.InnerException?.Message ?? ex.Message;
}
return response;
}
///
/// 获取站点管理人员及消息接收人员
///
/// 站点id
/// 角色id(站点管理人员角色的id)
/// 页码
/// 页面大小
///
[HttpGet]
public async Task>>> LoadSiteUser(long siteId, long? roleid, int pageIndex, int pageSize)
{
Response>> response = new Response>>();
try
{
return await _app.LoadSiteUser(siteId, roleid,pageIndex, pageSize);
}
catch (Exception ex)
{
response.Code = 500;
response.Message = ex.InnerException?.Message ?? ex.Message;
}
return response;
}
///
/// 获取所有站点管理人员
///
/// 角色id(站点管理人员角色id)
/// 页码
/// 页面大小
///
[HttpGet]
[AllowAnonymous]
public async Task>>> LoadSiteAllUser(long roleid, int pageIndex, int pageSize)
{
Response>> response = new Response>>();
try
{
return await _app.LoadSiteAllUser(roleid,pageIndex, pageSize);
}
catch (Exception ex)
{
response.Code = 500;
response.Message = ex.InnerException?.Message ?? ex.Message;
}
return response;
}
///
/// 根据管理员获取站点列表
///
///
///
///
///
[HttpGet]
[AllowAnonymous]
public async Task>>> LoadSiteByUserId(string userId, int pageIndex, int pageSize)
{
Response>> response = new Response>>();
try
{
return await _app.LoadSiteByUserId(userId, pageIndex, pageSize);
}
catch (Exception ex)
{
response.Code = 500;
response.Message = ex.InnerException?.Message ?? ex.Message;
}
return response;
}
///
/// 注册站点信息
///
/// 站点数据
///
[HttpPost]
[AllowAnonymous]
public async Task> AddSiteInfo(FmSiteInfo fmSite)
{
Response response = new();
try
{
return await _app.AddSite(fmSite);
}
catch (Exception ex)
{
response.Code = 500;
response.Message = ex.InnerException?.Message ?? ex.Message;
}
return response;
}
///
/// 站点编辑
///
/// 站点编辑
///
[HttpPost]
[AllowAnonymous]
public async Task> EditSiteInfo(FmSiteInfo fmSite)
{
Response response = new();
try
{
return await _app.EditSite(fmSite);
}
catch (Exception ex)
{
response.Code = 500;
response.Message = ex.InnerException?.Message ?? ex.Message;
}
return response;
}
///
/// 获取站点详情
///
/// 站点id
///
[HttpGet]
public async Task> GetSiteInfo(long siteId)
{
Response response = new Response();
try
{
return await _app.GetSiteInfo(siteId);
}
catch (Exception ex)
{
response.Code = 500;
response.Message = ex.InnerException?.Message ?? ex.Message;
}
return response;
}
#endregion
#region
///
/// 进出山类型
///
///
[HttpGet]
[AllowAnonymous]
public Response> InTypes()
{
Response> response = new Response>();
try
{
return _app.InTypes();
}
catch (Exception ex)
{
response.Code = 500;
response.Message = ex.InnerException?.Message ?? ex.Message;
}
return response;
}
///
/// 获取进出山人员
///
/// 用户名
/// 身份证号
/// 站点id
/// 当前页
/// 每页条数
/// 开始时间
/// 结束时间
///
[HttpGet]
[AllowAnonymous]
public async Task>>> LoadInUser(string userName, string cardNo, long? siteId, int pageIndex, int pageSize, DateTime startTime, DateTime endTime)
{
Response>> response = new Response>>();
try
{
return await _app.LoadInUser(userName,cardNo,siteId, pageIndex, pageSize,startTime,endTime);
}
catch (Exception ex)
{
response.Code = 500;
response.Message = ex.InnerException?.Message ?? ex.Message;
}
return response;
}
///
/// 导出进出山人员
///
/// 站点id
/// 开始时间
/// 结束时间
///
[HttpGet]
[AllowAnonymous]
public IActionResult ExportInUser(long? siteId, DateTime startTime, DateTime endTime)
{
var res = new Response();
var excelRes = _app.ExportInUser(siteId,startTime,endTime);
if (excelRes.Code == 200)
{
return File(excelRes.Result.ToArray(),
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
"进出山人员" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls");
}
else
{
res.Code = excelRes.Code;
res.Message = "导出失败";
}
return Ok(res);
}
#endregion
}
}