96 lines
3.3 KiB
C#
96 lines
3.3 KiB
C#
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);
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
}
|