lg_backend/langguanApi/Service/StatisticsService.cs

72 lines
2.6 KiB
C#
Raw Permalink Normal View History

2024-08-19 12:57:21 +00:00
using langguanApi.Model;
using NPOI.SS.Formula.Functions;
using System.Linq.Expressions;
namespace langguanApi.Service
{
/// <summary>
/// Statistics service
/// </summary>
public class StatisticsService
{
private Hj212Service _hj212Service;
/// <summary>
/// Constructor
/// </summary>
/// <param name="hj212Service"></param>
public StatisticsService(Hj212Service hj212Service)
{
_hj212Service = hj212Service;
}
/// <summary>
/// Get statistics
/// </summary>
/// <param name="type"></param>
/// <param name="Organized"></param>
/// <param name="deviceId"></param>
/// <param name="startTime"></param>
/// <param name="endTime"></param>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <returns></returns>
public async Task<ApiResult> GetStatistics(int type, int Organized, string deviceId, DateTime? startTime, DateTime? endTime, int pageIndex = 1, int pageSize = 10)
{
var result = await GetData(type, Organized, deviceId, startTime, endTime, pageIndex, pageSize);
return new ApiResult()
{
code = 0,
msg = "success",
data = new
{
items = result.Item2,
total = result.Item1
}
};
}
public async Task<ApiResult> ExportGetStatistics(int type, int Organized, string deviceId, DateTime? startTime, DateTime? endTime, int pageIndex = 1, int pageSize = 10)
{
var result = await GetData(type, Organized, deviceId, startTime, endTime, pageIndex, pageSize);
var items = result.Item2;
return new ApiResult()
{
code = 0,
msg = "success",
};
}
private async Task<Tuple<long, List<Model.HJ212>>> GetData(int type, int Organized, string deviceId, DateTime? startTime, DateTime? endTime, int pageIndex = 1, int pageSize = 10)
{
endTime = endTime ?? DateTime.Now;
startTime = startTime ?? DateTime.Now.AddDays(-7);
Expression<Func<Model.HJ212, bool>> exp = filter =>
filter.CreateDateTime >= startTime && filter.CreateDateTime <= endTime && filter.Id == deviceId;
ReqPaing reqPaing = new ReqPaing()
{
pageSize = pageSize,
current = pageIndex
};
return await _hj212Service.GetListByPage(reqPaing, exp);
}
}
}