using System.Threading.Tasks; using F9MES.Application.Im; using F9MES.Common.Result; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; namespace F9MES.Api.Controllers; /// IM 系统管理:性能/服务监测、配置界面、系统消息与公告管理 [ApiController] [Route("api/im/admin")] [Authorize] public class ImAdminController : ControllerBase { private readonly ImAdminService _svc; public ImAdminController(ImAdminService svc) { _svc = svc; } /// 性能监测 [HttpGet("performance")] public async Task Performance() { return Ok(ApiResult.Ok(await _svc.PerformanceAsync())); } /// 服务监测 [HttpGet("service")] public async Task Service() { return Ok(ApiResult.Ok(await _svc.ServiceStatusAsync())); } /// 读取 IM 配置 [HttpGet("config")] public async Task Config() { return Ok(ApiResult.Ok(await _svc.GetConfigAsync())); } /// 保存 IM 配置 [HttpPost("config")] public async Task SaveConfig([FromBody] List inputs) { await _svc.SaveConfigAsync(inputs ?? new()); return Ok(ApiResult.Ok(true, "配置已保存")); } /// 系统消息管理分页(msgType=-1 全部) [HttpGet("messages")] public async Task Messages([FromQuery] string? kw, [FromQuery] int msgType = -1, [FromQuery] int page = 1, [FromQuery] int size = 20) { return Ok(ApiResult.Ok(await _svc.GetMessagesAsync(kw, msgType, page, size))); } /// 删除消息 [HttpDelete("messages/{id}")] public async Task DeleteMessage(long id) { await _svc.DeleteMessageAsync(id); return Ok(ApiResult.Ok(true, "已删除")); } }