72 lines
2.6 KiB
C#
72 lines
2.6 KiB
C#
|
|
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);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|