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