/// <summary> /// 导出交易日志 /// </summary> public async Task <FileDto> GetTransactionLogsToExcel(GetTransactionLogsInput input) { async Task <List <TransactionLogExportDto> > getListFunc(bool isLoadSoftDeleteData) { var query = CreateTransactionLogsQuery(input); var results = await query .OrderBy(input.Sorting) .ToListAsync(); var exportListDtos = results.MapTo <List <TransactionLogExportDto> >(); if (exportListDtos.Count == 0) { throw new UserFriendlyException(L("NoDataToExport")); } return(exportListDtos); } List <TransactionLogExportDto> exportData = null; exportData = await getListFunc(false); var fileDto = new FileDto(L("TransactionLog") + L("ExportData") + ".xlsx", MimeTypeNames.ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlSheet); var byteArray = await _excelExporter.ExportAsByteArray(exportData); _tempFileCacheManager.SetFile(fileDto.FileToken, byteArray); return(fileDto); }
/// <summary> /// /// </summary> private IQueryable <TransactionLog> CreateTransactionLogsQuery(GetTransactionLogsInput input) { var query = _transactionLogRepository.GetAllIncluding(p => p.Currency); //关键字搜索 query = query .WhereIf( !input.Filter.IsNullOrEmpty(), p => p.Name.Contains(input.Filter) || p.ClientIpAddress.Contains(input.Filter) || p.ClientName.Contains(input.Filter) || p.CustomData.Contains(input.Filter) || p.OutTradeNo.Contains(input.Filter) || p.TransactionId.Contains(input.Filter) || p.Exception.Contains(input.Filter)); //创建时间范围搜索 query = query .WhereIf(input.CreationDateStart.HasValue, t => t.CreationTime >= input.CreationDateStart.Value) .WhereIf(input.CreationDateEnd.HasValue, t => t.CreationTime <= input.CreationDateEnd.Value); return(query); }
/// <summary> /// 获取交易日志列表 /// </summary> public async Task <PagedResultDto <TransactionLogListDto> > GetTransactionLogs(GetTransactionLogsInput input) { async Task <PagedResultDto <TransactionLogListDto> > getListFunc(bool isLoadSoftDeleteData) { var query = CreateTransactionLogsQuery(input); var resultCount = await query.CountAsync(); var results = await query .OrderBy(input.Sorting) .PageBy(input) .Select(i => new TransactionLogListDto { Id = i.Id, ClientName = i.ClientName, ClientIpAddress = i.ClientIpAddress, CustomData = i.CustomData, CreationTime = i.CreationTime, CultureValue = i.Currency.ToString(), PayChannel = i.PayChannel, Exception = i.Exception, IsFreeze = i.IsFreeze, OutTradeNo = i.OutTradeNo, PayTime = i.PayTime, Terminal = i.Terminal, TransactionState = i.TransactionState }) .ToListAsync(); return(new PagedResultDto <TransactionLogListDto>(resultCount, results)); } //是否仅加载回收站数据 if (input.IsOnlyGetRecycleData) { using (UnitOfWorkManager.Current.DisableFilter(AbpDataFilters.SoftDelete)) { return(await getListFunc(true)); } } return(await getListFunc(false)); }