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

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

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

112
API/Wood.Util/EntityHelper.cs

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

Loading…
Cancel
Save