using Azure; using FastEndpoints; using Microsoft.Extensions.Logging; using MoviconWebApi.Common; namespace MoviconWebApi.API.ClearStaticApi { /// /// 获取清洗统计数据端点 /// public class Endpoint : Endpoint> { private readonly IFreeSql _freeSql; /// /// 构造函数,注入FreeSql实例 /// /// FreeSql实例 public Endpoint(IFreeSql freeSql) { _freeSql = freeSql; } public override void Configure() { // 配置路由,支持GET方式 Get("/clearstatic/summary"); // 允许匿名访问(根据实际需求可以改为需要认证) AllowAnonymous(); // 配置摘要信息(用于Swagger文档) Summary(s => { s.Summary = "获取清洗统计数据"; s.Description = "根据设备编号获取清洗统计数据,包括作业数量、作业时长等"; s.Response>(200, "成功返回清洗统计数据"); s.Response(404, "未找到数据"); s.Response(500, "服务器内部错误"); }); } public override async Task HandleAsync(ClearStaticRequest request, CancellationToken ct) { try { // 调用Data层方法获取数据 var staticData = await Data.GetClearStatic(request, _freeSql); if (staticData == null) { // 未找到数据,返回空数据但状态码200 Response = ApiResponse.Success( new ClearStaticResponse(), "暂无数据" ); } else { // 返回统计数据 Response = ApiResponse.Success( staticData, "查询成功" ); } } catch (Exception ex) { // 记录错误日志 Logger.LogError(ex, "获取清洗统计数据失败"); // 返回错误响应 Response = ApiResponse.Error( "500", "服务器内部错误" ); } } } }