根据新需求更改
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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>()
|
||||
);
|
||||
|
||||
//// 记录错误日志
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user