Browse Source

提交版本

master
赵新宇 1 week ago
parent
commit
06690c907e
  1. 105
      API/Wood.Service/Controllers/CheryRecurringJobInputPageController.cs
  2. 94
      API/Wood.Service/Controllers/CheryRecurringJobOutPageController.cs
  3. 148
      API/Wood.Service/Controllers/NormalBaseController.cs
  4. 112
      API/Wood.Util/EntityHelper.cs

105
API/Wood.Service/Controllers/CheryRecurringJobInputPageController.cs

@ -19,6 +19,7 @@ using TaskManager.Contracts.Dtos;
using TaskManager.Entity;
using TaskManager.EntityFramework;
using TaskManager.EntityFramework.Repository;
using Wood.Util.Filters;
using static Dapper.SqlMapper;
namespace TaskManager.Controllers
@ -254,54 +255,106 @@ namespace TaskManager.Controllers
await _repository.DeleteAsync(id);
return new JsonResult(new { Code = 200, Message = "删除成功!" }); ;
}
[HttpGet]
public async Task<ActionResult> GetPaged(
[FromQuery] int pageNumber = 1,
[FromQuery] int pageSize = 10,
[FromQuery] string sortBy = "",
[FromQuery] bool isAscending = true,
[FromQuery] Dictionary<string, string> filters = null)
//[HttpGet]
//public async Task<ActionResult> GetPaged(
//[FromQuery] int pageNumber = 1,
//[FromQuery] int pageSize = 10,
//[FromQuery] string sortBy = "",
//[FromQuery] bool isAscending = true,
//[FromQuery] Dictionary<string, string> filters = null)
//{
// var pagingParams = new PagingParams
// {
// PageNumber = pageNumber,
// PageSize = pageSize,
// SortBy = sortBy,
// IsAscending = isAscending,
// Filters = filters
// };
// // 可以在这里构建表达式树过滤条件
// Expression<Func<T, bool>> filter = null;
// var pagedResult = await _repository.GetPagedAsync(filter, pagingParams);
// return Ok(pagedResult);
//}
/// <summary>
/// 分页New
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
public async Task<ActionResult<PagedResult<T>>> GetDataPaged(RequestInputBase input)
{
var pagingParams = new PagingParams
{
PageNumber = pageNumber,
PageSize = pageSize,
SortBy = sortBy,
IsAscending = isAscending,
Filters = filters
PageNumber = input.pageNumber,
PageSize = input.pageSize,
SortBy = input.sortBy,
IsAscending = input.isAscending,
};
// 可以在这里构建表达式树过滤条件
Expression<Func<T, bool>> filter = null;
var pagedResult = await _repository.GetPagedAsync(filter, pagingParams);
var pagedResult = await _repository.GetDataPagedAsync(filter, pagingParams, input.Condition);
return Ok(pagedResult);
}
[HttpGet]
public async Task<FileStreamResult> Export([FromQuery] int pageNumber = 1,
[FromQuery] int pageSize = 10,
[FromQuery] string sortBy = "",
[FromQuery] bool isAscending = true,
[FromQuery] Dictionary<string, string> filters = null)
/// <summary>
/// 导出New
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
public async Task<FileStreamResult> ExportData(RequestInputBase input)
{
var pagingParams = new PagingParams
{
PageNumber = pageNumber,
PageSize = pageSize,
SortBy = sortBy,
IsAscending = isAscending,
Filters = filters
PageNumber = input.pageNumber,
PageSize = input.pageSize,
SortBy = input.sortBy,
IsAscending = input.isAscending,
};
// 可以在这里构建表达式树过滤条件
//Expression<Func<T, bool>> filter = null;
var pagedResult = await _repository.GetPagedAsync(null, pagingParams);
var pagedResult = await _repository.GetDataPagedAsync(null, pagingParams, input.Condition);
return await ExportFile(pagedResult.Data, Guid.NewGuid().ToString() + ".xlsx");
}
}
// [HttpGet]
// public async Task<FileStreamResult> Export([FromQuery] int pageNumber = 1,
//[FromQuery] int pageSize = 10,
//[FromQuery] string sortBy = "",
//[FromQuery] bool isAscending = true,
//[FromQuery] Dictionary<string, string> filters = null)
// {
// var pagingParams = new PagingParams
// {
// PageNumber = pageNumber,
// PageSize = pageSize,
// SortBy = sortBy,
// IsAscending = isAscending,
// Filters = filters
// };
// // 可以在这里构建表达式树过滤条件
// //Expression<Func<T, bool>> filter = null;
// var pagedResult = await _repository.GetPagedAsync(null, pagingParams);
// return await ExportFile(pagedResult.Data, Guid.NewGuid().ToString() + ".xlsx");
// }
protected async Task<FileStreamResult> ExportFile(ICollection<T> dtos, string fileName)
{
var excelExporter = HttpContext.RequestServices.GetRequiredService<IExcelExporter>();

94
API/Wood.Service/Controllers/CheryRecurringJobOutPageController.cs

@ -426,29 +426,29 @@ namespace TaskManager.Controllers
/// <param name="isAscending">正序还是倒序</param>
/// <param name="filters">过滤条件</param>
/// <returns></returns>
[HttpGet]
public async Task<ActionResult> GetPaged(
[FromQuery] int pageNumber = 1,
[FromQuery] int pageSize = 10,
[FromQuery] string sortBy = "",
[FromQuery] bool isAscending = true,
[FromQuery] Dictionary<string, string> filters = null)
{
var pagingParams = new PagingParams
{
PageNumber = pageNumber,
PageSize = pageSize,
SortBy = sortBy,
IsAscending = isAscending,
Filters = filters
};
// 可以在这里构建表达式树过滤条件
Expression<Func<T, bool>> filter = null;
var pagedResult = await _repository.GetPagedAsync(filter, pagingParams);
return Ok(pagedResult);
}
//[HttpGet]
//public async Task<ActionResult> GetPaged(
//[FromQuery] int pageNumber = 1,
//[FromQuery] int pageSize = 10,
//[FromQuery] string sortBy = "",
//[FromQuery] bool isAscending = true,
//[FromQuery] Dictionary<string, string> filters = null)
//{
// var pagingParams = new PagingParams
// {
// PageNumber = pageNumber,
// PageSize = pageSize,
// SortBy = sortBy,
// IsAscending = isAscending,
// Filters = filters
// };
// // 可以在这里构建表达式树过滤条件
// Expression<Func<T, bool>> filter = null;
// var pagedResult = await _repository.GetPagedAsync(filter, pagingParams);
// return Ok(pagedResult);
//}
/// <summary>
/// 分页New
@ -484,30 +484,30 @@ namespace TaskManager.Controllers
/// <param name="filters">过滤条件</param>
/// <returns></returns>
[HttpGet]
public async Task<FileStreamResult> Export([FromQuery] int pageNumber = 1,
[FromQuery] int pageSize = 10,
[FromQuery] string sortBy = "",
[FromQuery] bool isAscending = true,
[FromQuery] Dictionary<string, string> filters = null)
{
var pagingParams = new PagingParams
{
PageNumber = pageNumber,
PageSize = pageSize,
SortBy = sortBy,
IsAscending = isAscending,
Filters = filters
};
// 可以在这里构建表达式树过滤条件
//Expression<Func<T, bool>> filter = null;
var pagedResult = await _repository.GetPagedAsync(null, pagingParams);
return await ExportFile(pagedResult.Data, Guid.NewGuid().ToString() + ".xlsx");
}
// [HttpGet]
// public async Task<FileStreamResult> Export([FromQuery] int pageNumber = 1,
//[FromQuery] int pageSize = 10,
//[FromQuery] string sortBy = "",
//[FromQuery] bool isAscending = true,
//[FromQuery] Dictionary<string, string> filters = null)
// {
// var pagingParams = new PagingParams
// {
// PageNumber = pageNumber,
// PageSize = pageSize,
// SortBy = sortBy,
// IsAscending = isAscending,
// Filters = filters
// };
// // 可以在这里构建表达式树过滤条件
// //Expression<Func<T, bool>> filter = null;
// var pagedResult = await _repository.GetPagedAsync(null, pagingParams);
// return await ExportFile(pagedResult.Data, Guid.NewGuid().ToString() + ".xlsx");
// }
/// <summary>

148
API/Wood.Service/Controllers/NormalBaseController.cs

@ -1,12 +1,4 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Linq.Expressions;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using Magicodes.ExporterAndImporter.Core;
using Magicodes.ExporterAndImporter.Core;
using Magicodes.ExporterAndImporter.Core.Extension;
using Magicodes.ExporterAndImporter.Excel;
using Microsoft.AspNetCore.Authorization;
@ -14,11 +6,20 @@ using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Linq.Expressions;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using TaskManager.Entity;
using TaskManager.EntityFramework;
using TaskManager.EntityFramework.Repository;
using Wood.Entity;
using Wood.Util;
using Wood.Util.Filters;
namespace Wood.Service.Controllers
@ -97,77 +98,126 @@ namespace Wood.Service.Controllers
await _repository.DeleteAsync(id);
return new JsonResult(new { Code = 200, Message = "删除成功!" }); ;
}
///// <summary>
///// 分页
///// </summary>
///// <param name="pageNumber"></param>
///// <param name="pageSize"></param>
///// <param name="sortBy"></param>
///// <param name="isAscending"></param>
///// <param name="filters"></param>
///// <returns></returns>
//[HttpGet]
//public async Task<ActionResult> GetPaged(
//[FromQuery] int pageNumber = 1,
//[FromQuery] int pageSize = 10,
//[FromQuery] string sortBy = "",
//[FromQuery] bool isAscending = true,
//[FromQuery] Dictionary<string, string> filters = null)
//{
// var pagingParams = new PagingParams
// {
// PageNumber = pageNumber,
// PageSize = pageSize,
// SortBy = sortBy,
// IsAscending = isAscending,
// Filters = filters
// };
// // 可以在这里构建表达式树过滤条件
// Expression<Func<T, bool>> filter = null;
// var pagedResult = await _repository.GetPagedAsync(filter, pagingParams);
// return Ok(pagedResult);
//}
/// <summary>
/// 分页
/// 分页New
/// </summary>
/// <param name="pageNumber"></param>
/// <param name="pageSize"></param>
/// <param name="sortBy"></param>
/// <param name="isAscending"></param>
/// <param name="filters"></param>
/// <param name="input"></param>
/// <returns></returns>
[HttpGet]
public async Task<ActionResult> GetPaged(
[FromQuery] int pageNumber = 1,
[FromQuery] int pageSize = 10,
[FromQuery] string sortBy = "",
[FromQuery] bool isAscending = true,
[FromQuery] Dictionary<string, string> filters = null)
[HttpPost]
public async Task<ActionResult<PagedResult<T>>> GetDataPaged(RequestInputBase input)
{
var pagingParams = new PagingParams
{
PageNumber = pageNumber,
PageSize = pageSize,
SortBy = sortBy,
IsAscending = isAscending,
Filters = filters
PageNumber = input.pageNumber,
PageSize = input.pageSize,
SortBy = input.sortBy,
IsAscending = input.isAscending,
};
// 可以在这里构建表达式树过滤条件
Expression<Func<T, bool>> filter = null;
var pagedResult = await _repository.GetPagedAsync(filter, pagingParams);
var pagedResult = await _repository.GetDataPagedAsync(filter, pagingParams, input.Condition);
return Ok(pagedResult);
}
/// <summary>
/// 导出
/// 导出New
/// </summary>
/// <param name="pageNumber"></param>
/// <param name="pageSize"></param>
/// <param name="sortBy"></param>
/// <param name="isAscending"></param>
/// <param name="filters"></param>
/// <param name="input"></param>
/// <returns></returns>
[HttpGet]
public async Task<FileStreamResult> Export([FromQuery] int pageNumber = 1,
[FromQuery] int pageSize = 10,
[FromQuery] string sortBy = "",
[FromQuery] bool isAscending = true,
[FromQuery] Dictionary<string, string> filters = null)
[HttpPost]
public async Task<FileStreamResult> ExportData(RequestInputBase input)
{
var pagingParams = new PagingParams
{
PageNumber = pageNumber,
PageSize = pageSize,
SortBy = sortBy,
IsAscending = isAscending,
Filters = filters
PageNumber = input.pageNumber,
PageSize = input.pageSize,
SortBy = input.sortBy,
IsAscending = input.isAscending,
};
// 可以在这里构建表达式树过滤条件
//Expression<Func<T, bool>> filter = null;
var pagedResult = await _repository.GetPagedAsync(null, pagingParams);
var pagedResult = await _repository.GetDataPagedAsync(null, pagingParams, input.Condition);
return await ExportFile(pagedResult.Data, Guid.NewGuid().ToString() + ".xlsx");
}
}
// /// <summary>
// /// 导出
// /// </summary>
// /// <param name="pageNumber"></param>
// /// <param name="pageSize"></param>
// /// <param name="sortBy"></param>
// /// <param name="isAscending"></param>
// /// <param name="filters"></param>
// /// <returns></returns>
// [HttpGet]
// public async Task<FileStreamResult> Export([FromQuery] int pageNumber = 1,
//[FromQuery] int pageSize = 10,
//[FromQuery] string sortBy = "",
//[FromQuery] bool isAscending = true,
//[FromQuery] Dictionary<string, string> filters = null)
// {
// var pagingParams = new PagingParams
// {
// PageNumber = pageNumber,
// PageSize = pageSize,
// SortBy = sortBy,
// IsAscending = isAscending,
// Filters = filters
// };
// // 可以在这里构建表达式树过滤条件
// //Expression<Func<T, bool>> filter = null;
// var pagedResult = await _repository.GetPagedAsync(null, pagingParams);
// return await ExportFile(pagedResult.Data, Guid.NewGuid().ToString() + ".xlsx");
// }
protected async Task<FileStreamResult> ExportFile(ICollection<T> dtos, string fileName)
{
var excelExporter = HttpContext.RequestServices.GetRequiredService<IExcelExporter>();

112
API/Wood.Util/EntityHelper.cs

@ -13,62 +13,62 @@ using System.Text.RegularExpressions;
namespace Wood.Util
{
public class PagedResult<T>
{
public List<T> Items { get; set; }
public int TotalItems { get; set; }
public int PageNumber { get; set; }
public int PageSize { get; set; }
public int TotalPages => (int)Math.Ceiling(TotalItems / (double)PageSize);
public bool HasPreviousPage => PageNumber > 1;
public bool HasNextPage => PageNumber < TotalPages;
public PagedResult()
{
Items = new List<T>();
}
}
public static class QueryableExtensions
{
public static PagedResult<T> ToPagedResult<T>(this IQueryable<T> query, int pageNumber, int pageSize)
{
var result = new PagedResult<T>
{
PageNumber = pageNumber,
PageSize = pageSize,
TotalItems = query.Count()
};
result.Items = query
.Skip((pageNumber - 1) * pageSize)
.Take(pageSize)
.ToList();
return result;
}
public static IQueryable<T> ApplySorting<T>(this IQueryable<T> query, string sortField, string sortDirection)
{
if (string.IsNullOrEmpty(sortField))
return query;
var parameter = Expression.Parameter(typeof(T), "x");
var property = Expression.Property(parameter, sortField);
var lambda = Expression.Lambda(property, parameter);
string methodName = sortDirection?.ToLower() == "desc" ? "OrderByDescending" : "OrderBy";
var resultExpression = Expression.Call(
typeof(Queryable),
methodName,
new[] { typeof(T), property.Type },
query.Expression,
Expression.Quote(lambda));
return query.Provider.CreateQuery<T>(resultExpression);
}
}
//public class PagedResult<T>
//{
// public List<T> Items { get; set; }
// public int TotalItems { get; set; }
// public int PageNumber { get; set; }
// public int PageSize { get; set; }
// public int TotalPages => (int)Math.Ceiling(TotalItems / (double)PageSize);
// public bool HasPreviousPage => PageNumber > 1;
// public bool HasNextPage => PageNumber < TotalPages;
// public PagedResult()
// {
// Items = new List<T>();
// }
//}
//public static class QueryableExtensions
//{
// public static PagedResult<T> ToPagedResult<T>(this IQueryable<T> query, int pageNumber, int pageSize)
// {
// var result = new PagedResult<T>
// {
// PageNumber = pageNumber,
// PageSize = pageSize,
// TotalItems = query.Count()
// };
// result.Items = query
// .Skip((pageNumber - 1) * pageSize)
// .Take(pageSize)
// .ToList();
// return result;
// }
// public static IQueryable<T> ApplySorting<T>(this IQueryable<T> query, string sortField, string sortDirection)
// {
// if (string.IsNullOrEmpty(sortField))
// return query;
// var parameter = Expression.Parameter(typeof(T), "x");
// var property = Expression.Property(parameter, sortField);
// var lambda = Expression.Lambda(property, parameter);
// string methodName = sortDirection?.ToLower() == "desc" ? "OrderByDescending" : "OrderBy";
// var resultExpression = Expression.Call(
// typeof(Queryable),
// methodName,
// new[] { typeof(T), property.Type },
// query.Expression,
// Expression.Quote(lambda));
// return query.Provider.CreateQuery<T>(resultExpression);
// }
//}
//public static class DataTableHelper

Loading…
Cancel
Save