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