using System.Collections.Generic;
using System.Linq;
using System.Web.Http;
using CncModels.Dto;
using CncModels.Dto.Alert;
using CncService.Interface;
using CncWebApi.Infrastructure;
namespace CncWebApi.Controllers
{
///
/// 告警中心控制器
///
[RoutePrefix("api/admin/alert")]
[JwtAuthFilter]
public class AlertController : ApiController
{
private readonly IAlertService _alertService;
///
/// 构造函数
///
public AlertController(IAlertService alertService)
{
_alertService = alertService;
}
///
/// 告警列表(分页)
/// GET /api/admin/alert
///
[HttpGet]
[Route("")]
public IHttpActionResult GetList([FromUri] AlertQuery query)
{
if (query == null) query = new AlertQuery();
var result = _alertService.GetList(query);
return Ok(ApiResponse>.Success(result));
}
///
/// 告警统计
/// GET /api/admin/alert/statistics
///
[HttpGet]
[Route("statistics")]
public IHttpActionResult GetStatistics()
{
var result = _alertService.GetStatistics();
return Ok(ApiResponse.Success(result));
}
///
/// 处理单条告警
/// PUT /api/admin/alert/{id}/resolve
///
[HttpPut]
[Route("{id:long}/resolve")]
public IHttpActionResult Resolve(long id)
{
var result = _alertService.Resolve(id);
return Ok(ApiResponse