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 } }