Files
MoviconHub/MoviconWebApi/API/ClearDataApi/Endpoint.cs
2025-09-17 17:22:09 +08:00

96 lines
3.3 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using Azure;
using Azure.Core;
using FastEndpoints;
using MoviconWebApi.Common;
namespace MoviconWebApi.API.ClearDataApi
{
/// <summary>
/// 获取清洗数据端点
/// </summary>
public class Endpoint : Endpoint<ClearDataRequest, ApiResponse<List<ClearDataResponse>>>
{
private readonly IFreeSql _freeSql;
/// <summary>
/// 构造函数注入FreeSql实例
/// </summary>
/// <param name="freeSql">FreeSql实例</param>
public Endpoint(IFreeSql freeSql)
{
_freeSql = freeSql;
}
public override void Configure()
{
// 配置路由支持GET和POST两种方式
//Post("/cleardata/list");
Get("/cleardata/listbycode");
// 允许匿名访问(根据实际需求可以改为需要认证)
AllowAnonymous();
// 配置摘要信息用于Swagger文档
Summary(s =>
{
s.Summary = "获取清洗数据列表";
s.Description = "根据设备编号、开始时间、结束时间查询清洗数据";
s.Response< ApiResponse<List<ClearDataResponse>>>(200, "成功返回清洗数据列表");
s.Response(404, "未找到数据");
s.Response(500, "服务器内部错误");
});
}
public override async Task HandleAsync(ClearDataRequest request, CancellationToken ct)
{
try
{
// 参数兜底
if (request.PageNo <= 0) request.PageNo = 1;
if (request.PageSize <= 0) request.PageSize = 100;
if (request.PageSize > 100) request.PageSize = 100;
// 新的分页数据(使用全限定名避免命名冲突)
(List<ClearDataResponse>, long) result = await MoviconWebApi.API.ClearDataApi.Data.GetClearData(request, _freeSql);
var items = result.Item1;
var total = result.Item2;
var resp = ApiResponse<List<ClearDataResponse>>.Success(items ?? new List<ClearDataResponse>(),
items != null && items.Count > 0 ? "请求成功" : "暂无数据");
// 组装分页
resp.pagination = new MoviconWebApi.Common.Pagination
{
total = total,
count = items?.Count ?? 0,
pageNo = request.PageNo,
totalPage = request.PageSize > 0 ? (int)Math.Ceiling((double)total / request.PageSize) : 0,
pageSize = request.PageSize
};
Response = resp;
}
catch (Exception ex)
{
// 记录错误日志
Logger.LogError(ex, "获取清洗数据失败");
// 返回错误响应
Response = ApiResponse<List<ClearDataResponse>>.Error(
"500",
"服务器内部错误",
new List<ClearDataResponse>()
);
//// 记录错误日志
//Logger.LogError(ex, "获取清洗数据失败");
//// 返回500错误
//await Send.ErrorsAsync(500, ct);
}
}
}
}