using langguanApi.Model;
using NPOI.SS.Formula.Functions;
using System.Linq.Expressions;
namespace langguanApi.Service
{
///
/// Statistics service
///
public class StatisticsService
{
private Hj212Service _hj212Service;
///
/// Constructor
///
///
public StatisticsService(Hj212Service hj212Service)
{
_hj212Service = hj212Service;
}
///
/// Get statistics
///
///
///
///
///
///
///
///
///
public async Task 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 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>> 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> 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);
}
}
}