Example #1
0
        public async Task <PageViewModel <AdminLogViewModel> > QueryAdminLogListAsync(QueryAdminLogList query)
        {
            var sugarQueryable = _adminLogRepository.QueryAsQueryable(a => true);

            sugarQueryable.WhereIF(query.LinkId > 0, a => a.LinkId == query.LinkId);
            sugarQueryable.WhereIF(query.AppId > 0, a => a.AppId == query.AppId);
            sugarQueryable.WhereIF(query.OperationId > 0, a => a.OperationId == query.OperationId);

            //如果不使用时间范围,默认为前三个月
            if (query.BeginUnixTime == 0 && query.EndUnixTime == 0)
            {
                var dateTime      = DateTime.Now;
                var nowUnixTime   = dateTime.ToUnixTime(true);
                var beginUnixTime = dateTime.AddMonths(-3).ToUnixTime(true);

                sugarQueryable.WhereIF(true, a => beginUnixTime <= a.CreateUnixTime && a.CreateUnixTime <= nowUnixTime);
            }
            else
            {
                sugarQueryable.WhereIF(query.BeginUnixTime > 0, a => query.BeginUnixTime <= a.CreateUnixTime);
                sugarQueryable.WhereIF(query.EndUnixTime > 0, a => a.CreateUnixTime <= query.EndUnixTime);
            }

            var pageModel = await _adminLogRepository.QueryPageModel(sugarQueryable);

            var adminLogViewModels = pageModel.Data.MapTo <List <AdminLogViewModel> >();

            return(new PageViewModel <AdminLogViewModel>()
            {
                Data = adminLogViewModels,
                DataCount = pageModel.DataCount,
                Page = pageModel.Page,
                PageCount = pageModel.PageCount,
                PageSize = pageModel.PageSize
            });
        }