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); } } }