根据新需求更改

This commit is contained in:
2025-09-17 17:22:09 +08:00
parent e7adae128e
commit a954427d41
21 changed files with 633 additions and 126 deletions

View File

@@ -1,10 +1,10 @@
using MoviconWebApi.Entities;
using MoviconWebApi.Entities;
namespace MoviconWebApi.API.ClearDataApi
{
public static class Data
{
internal static async Task<List<ClearDataResponse>?> GetClearData(ClearDataRequest request, IFreeSql freeSql)
internal static async Task<(List<ClearDataResponse> Items, long Total)> GetClearData(ClearDataRequest request, IFreeSql freeSql)
{
try
{
@@ -29,11 +29,19 @@ namespace MoviconWebApi.API.ClearDataApi
query = query.Where(x => x.CreateTime <= endTime);
}
// 按创建时间降序排序
query = query.OrderByDescending(x => x.CreateTime);
// 统计总数
var total = await query.CountAsync();
// 执行查询并映射到响应模型
var result = await query.ToListAsync(x => new ClearDataResponse
// 参数兜底与限制
var pageNo = request.PageNo <= 0 ? 1 : request.PageNo;
var pageSize = request.PageSize <= 0 ? 100 : request.PageSize;
if (pageSize > 100) pageSize = 100;
// 按创建时间降序排序 + 分页 + 映射到响应模型
var result = await query
.OrderByDescending(x => x.CreateTime)
.Page(pageNo, pageSize)
.ToListAsync(x => new ClearDataResponse
{
DeviceCode = x.DeviceCode,
DeviceName = x.DeviceName,
@@ -66,13 +74,13 @@ namespace MoviconWebApi.API.ClearDataApi
CreateTime = x.CreateTime.ToString("yyyy-MM-dd HH:mm:ss")
});
return result;
return (result ?? new List<ClearDataResponse>(), total);
}
catch (Exception ex)
{
// 记录异常日志(可以根据实际需求添加日志记录)
Console.WriteLine($"获取清洗数据失败:{ex.Message}");
return null;
throw;
}
}

View File

@@ -1,7 +1,6 @@
using Azure;
using Azure;
using Azure.Core;
using FastEndpoints;
using MoviconWebApi.API.ClearDataQrApi;
using MoviconWebApi.Common;
namespace MoviconWebApi.API.ClearDataApi
@@ -46,35 +45,30 @@ namespace MoviconWebApi.API.ClearDataApi
{
try
{
// 调用Data层方法获取数据
var dataList = await Data.GetClearData(request, _freeSql);
// 参数兜底
if (request.PageNo <= 0) request.PageNo = 1;
if (request.PageSize <= 0) request.PageSize = 100;
if (request.PageSize > 100) request.PageSize = 100;
if (dataList == null || dataList.Count == 0)
// 新的分页数据(使用全限定名避免命名冲突)
(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
{
// 未找到数据返回404
//await Send.NotFoundAsync(ct);
//Response = dataList ?? new List<ClearDataQrResponse>();
total = total,
count = items?.Count ?? 0,
pageNo = request.PageNo,
totalPage = request.PageSize > 0 ? (int)Math.Ceiling((double)total / request.PageSize) : 0,
pageSize = request.PageSize
};
//await Send.OkAsync(new List<ClearDataResponse>(), ct);
// 没有数据
Response = ApiResponse<List<ClearDataResponse>>.Success(
new List<ClearDataResponse>(),
"暂无数据"
);
}
else
{
//await Send.OkAsync(dataList, ct);
// 现在的代码
Response = ApiResponse<List<ClearDataResponse>>.Success(
dataList,
"查询成功"
);
}
Response = resp;
}
catch (Exception ex)
{
@@ -84,7 +78,8 @@ namespace MoviconWebApi.API.ClearDataApi
// 返回错误响应
Response = ApiResponse<List<ClearDataResponse>>.Error(
"500",
"服务器内部错误"
"服务器内部错误",
new List<ClearDataResponse>()
);
//// 记录错误日志

View File

@@ -1,4 +1,4 @@
using Newtonsoft.Json;
using Newtonsoft.Json;
namespace MoviconWebApi.API.ClearDataApi
{
@@ -19,6 +19,16 @@ namespace MoviconWebApi.API.ClearDataApi
/// </summary>
public string? EndTime { get; set; }
/// <summary>
/// 当前页码从1开始
/// </summary>
public int PageNo { get; set; } = 1;
/// <summary>
/// 分页大小
/// </summary>
public int PageSize { get; set; } = 100;
}
public class ClearDataResponse