优化分页查询
This commit is contained in:
parent
c5c83a0b22
commit
6305fe3164
@ -69,8 +69,15 @@ namespace ZR.Admin.WebApi.Controllers
|
|||||||
public IActionResult FindListTable(string dbName, string tableName, PagerInfo pager)
|
public IActionResult FindListTable(string dbName, string tableName, PagerInfo pager)
|
||||||
{
|
{
|
||||||
List<DbTableInfo> list = _CodeGeneraterService.GetAllTables(dbName, tableName, pager);
|
List<DbTableInfo> list = _CodeGeneraterService.GetAllTables(dbName, tableName, pager);
|
||||||
|
var page = new PagedInfo<DbTableInfo>
|
||||||
return SUCCESS(list.ToPage(pager));
|
{
|
||||||
|
TotalPage = pager.TotalPage,
|
||||||
|
TotalNum = pager.TotalNum,
|
||||||
|
PageSize = pager.PageSize,
|
||||||
|
PageIndex = pager.PageNum,
|
||||||
|
Result = list
|
||||||
|
};
|
||||||
|
return SUCCESS(page);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@ -56,7 +56,7 @@ namespace ZR.Admin.WebApi.Controllers.System
|
|||||||
{
|
{
|
||||||
var list = UserService.SelectUserList(user, pager);
|
var list = UserService.SelectUserList(user, pager);
|
||||||
|
|
||||||
return SUCCESS(list.ToPage(pager), TIME_FORMAT_FULL);
|
return SUCCESS(list, TIME_FORMAT_FULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -218,7 +218,7 @@ namespace ZR.Admin.WebApi.Controllers.System
|
|||||||
var list = UserService.SelectUserList(user, new PagerInfo(1, 10000));
|
var list = UserService.SelectUserList(user, new PagerInfo(1, 10000));
|
||||||
|
|
||||||
//调试模式需要加上
|
//调试模式需要加上
|
||||||
string sFileName = ExportExcel(list, "user", "用户列表");
|
string sFileName = ExportExcel(list.Result, "user", "用户列表");
|
||||||
return SUCCESS(new { path = "/export/" + sFileName, fileName = sFileName });
|
return SUCCESS(new { path = "/export/" + sFileName, fileName = sFileName });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -39,7 +39,7 @@ namespace ZR.Admin.WebApi.Controllers.monitor
|
|||||||
{
|
{
|
||||||
var list = sysLoginService.GetLoginLog(sysLogininfoDto, pagerInfo);
|
var list = sysLoginService.GetLoginLog(sysLogininfoDto, pagerInfo);
|
||||||
|
|
||||||
return ToResponse(ToJson(list.Count, list.ToPage(pagerInfo)), TIME_FORMAT_FULL_2);
|
return SUCCESS(list, TIME_FORMAT_FULL_2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@ -4,6 +4,10 @@
|
|||||||
<TargetFramework>netstandard2.1</TargetFramework>
|
<TargetFramework>netstandard2.1</TargetFramework>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Remove="Extensions\QueryableExtension.cs" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="EPPlus" Version="5.8.3" />
|
<PackageReference Include="EPPlus" Version="5.8.3" />
|
||||||
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
|
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
|
||||||
@ -14,6 +18,7 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Folder Include="Dto\" />
|
<Folder Include="Dto\" />
|
||||||
<Folder Include="Enum\" />
|
<Folder Include="Enum\" />
|
||||||
|
<Folder Include="Extensions\" />
|
||||||
<Folder Include="Vo\" />
|
<Folder Include="Vo\" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
|||||||
@ -379,14 +379,17 @@ namespace ZR.Repository
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 分页查询扩展
|
||||||
|
/// </summary>
|
||||||
public static class QueryableExtension
|
public static class QueryableExtension
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 读取列表
|
/// 读取列表
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <typeparam name="T"></typeparam>
|
/// <typeparam name="T"></typeparam>
|
||||||
/// <param name="source"></param>
|
/// <param name="source">查询表单式</param>
|
||||||
/// <param name="parm"></param>
|
/// <param name="parm">分页参数</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public static PagedInfo<T> ToPage<T>(this ISugarQueryable<T> source, PagerInfo parm)
|
public static PagedInfo<T> ToPage<T>(this ISugarQueryable<T> source, PagerInfo parm)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -4,6 +4,7 @@ using System.Collections.Generic;
|
|||||||
using ZR.Model;
|
using ZR.Model;
|
||||||
using ZR.Model.System.Dto;
|
using ZR.Model.System.Dto;
|
||||||
using ZR.Model.System;
|
using ZR.Model.System;
|
||||||
|
using SqlSugar;
|
||||||
|
|
||||||
namespace ZR.Repository.System
|
namespace ZR.Repository.System
|
||||||
{
|
{
|
||||||
@ -16,19 +17,19 @@ namespace ZR.Repository.System
|
|||||||
/// <param name="logininfoDto"></param>
|
/// <param name="logininfoDto"></param>
|
||||||
/// <param name="pager"></param>
|
/// <param name="pager"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public List<SysLogininfor> GetLoginLog(SysLogininfor logininfoDto, PagerInfo pager)
|
public PagedInfo<SysLogininfor> GetLoginLog(SysLogininfor logininfoDto, PagerInfo pager)
|
||||||
{
|
{
|
||||||
int totalCount = 0;
|
var exp = Expressionable.Create<SysLogininfor>();
|
||||||
var list = Context.Queryable<SysLogininfor>()
|
exp.And(it => it.loginTime >= logininfoDto.BeginTime && it.loginTime <= logininfoDto.EndTime);
|
||||||
.Where(it => it.loginTime >= logininfoDto.BeginTime && it.loginTime <= logininfoDto.EndTime)
|
exp.AndIF(logininfoDto.ipaddr.IfNotEmpty(), f => f.ipaddr == logininfoDto.ipaddr);
|
||||||
.WhereIF(logininfoDto.ipaddr.IfNotEmpty(), f => f.ipaddr == logininfoDto.ipaddr)
|
exp.AndIF(logininfoDto.userName.IfNotEmpty(), f => f.userName.Contains(logininfoDto.userName));
|
||||||
.WhereIF(logininfoDto.userName.IfNotEmpty(), f => f.userName.Contains(logininfoDto.userName))
|
exp.AndIF(logininfoDto.status.IfNotEmpty(), f => f.status == logininfoDto.status);
|
||||||
.WhereIF(logininfoDto.status.IfNotEmpty(), f => f.status == logininfoDto.status)
|
var query = Context.Queryable<SysLogininfor>()
|
||||||
.OrderBy(it => it.infoId, SqlSugar.OrderByType.Desc)
|
.Where(exp.ToExpression())
|
||||||
.IgnoreColumns(it => new { it.Create_by, it.Create_time, it.Update_by, it.Update_time, it.Remark })
|
.OrderBy(it => it.infoId, OrderByType.Desc)
|
||||||
.ToPageList(pager.PageNum, pager.PageSize, ref totalCount);
|
.IgnoreColumns(it => new { it.Create_by, it.Create_time, it.Update_by, it.Update_time, it.Remark });
|
||||||
pager.TotalNum = totalCount;
|
|
||||||
return list;
|
return query.ToPage(pager);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
using Infrastructure.Attribute;
|
using Infrastructure.Attribute;
|
||||||
|
using SqlSugar;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using ZR.Model;
|
using ZR.Model;
|
||||||
@ -18,23 +19,27 @@ namespace ZR.Repository.System
|
|||||||
/// <paramref name="user"/>
|
/// <paramref name="user"/>
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public List<SysUser> SelectUserList(SysUser user, PagerInfo pager)
|
public PagedInfo<SysUser> SelectUserList(SysUser user, PagerInfo pager)
|
||||||
{
|
{
|
||||||
string sql = @"SELECT u.*,d.deptName, d.leader
|
var exp = Expressionable.Create<SysUser>();
|
||||||
FROM sys_user u
|
exp.AndIF(!string.IsNullOrEmpty(user.UserName), it => it.UserName.Contains(user.UserName));
|
||||||
left join sys_dept d on u.deptId = d.deptId
|
exp.AndIF(!string.IsNullOrEmpty(user.Status), it => it.Status == user.Status);
|
||||||
WHERE u.delFlag = '0' ";
|
exp.AndIF(user.BeginTime != DateTime.MinValue && user.BeginTime != null, it => it.Create_time >= user.BeginTime);
|
||||||
int totalCount = 0;
|
exp.AndIF(user.EndTime != DateTime.MinValue && user.BeginTime != null, it => it.Create_time <= user.EndTime);
|
||||||
var list = Context.SqlQueryable<SysUser>(sql)
|
exp.AndIF(user.DeptId != 0, it => it.DeptId == user.DeptId);
|
||||||
.WhereIF(!string.IsNullOrEmpty(user.UserName), it => it.UserName.Contains(user.UserName))
|
exp.And(user => user.DelFlag == "0");
|
||||||
.WhereIF(!string.IsNullOrEmpty(user.Status), it => it.Status == user.Status)
|
|
||||||
.WhereIF(user.BeginTime != DateTime.MinValue && user.BeginTime != null, it => it.Create_time >= user.BeginTime)
|
var query = Context.Queryable<SysUser>()
|
||||||
.WhereIF(user.EndTime != DateTime.MinValue && user.BeginTime != null, it => it.Create_time <= user.EndTime)
|
.LeftJoin<SysDept>((user, dept) => user.DeptId == dept.DeptId)
|
||||||
.WhereIF(user.DeptId != 0, it => it.DeptId == user.DeptId)
|
.Where(exp.ToExpression())
|
||||||
.OrderBy(it => it.UserId)
|
.Select((user, dept) => new SysUser
|
||||||
.ToPageList(pager.PageNum, pager.PageSize, ref totalCount);
|
{
|
||||||
pager.TotalNum = totalCount;
|
UserId = user.UserId.SelectAll(),
|
||||||
return list;
|
DeptName = dept.DeptName,
|
||||||
|
})
|
||||||
|
.OrderBy((user) => user.UserId);
|
||||||
|
|
||||||
|
return query.ToPage(pager);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@ -96,7 +96,7 @@ namespace ZR.Service.System
|
|||||||
var predicate = Expressionable.Create<GenTable>();
|
var predicate = Expressionable.Create<GenTable>();
|
||||||
predicate = predicate.AndIF(genTable.TableName.IfNotEmpty(), it => it.TableName.Contains(genTable.TableName));
|
predicate = predicate.AndIF(genTable.TableName.IfNotEmpty(), it => it.TableName.Contains(genTable.TableName));
|
||||||
|
|
||||||
return GenTableRepository.GetPages(predicate.ToExpression(), pagerInfo);
|
return GenTableRepository.GetPages(predicate.ToExpression(), pagerInfo, x => x.TableId, OrderByType.Desc);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@ -17,7 +17,7 @@ namespace ZR.Service.System.IService
|
|||||||
/// <param name="logininfoDto"></param>
|
/// <param name="logininfoDto"></param>
|
||||||
/// <param name="pager">分页</param>
|
/// <param name="pager">分页</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public List<SysLogininfor> GetLoginLog(SysLogininfor logininfoDto, PagerInfo pager);
|
public PagedInfo<SysLogininfor> GetLoginLog(SysLogininfor logininfoDto, PagerInfo pager);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 记录登录日志
|
/// 记录登录日志
|
||||||
|
|||||||
@ -10,7 +10,7 @@ namespace ZR.Service.System.IService
|
|||||||
{
|
{
|
||||||
public interface ISysUserService : IBaseService<SysUser>
|
public interface ISysUserService : IBaseService<SysUser>
|
||||||
{
|
{
|
||||||
public List<SysUser> SelectUserList(SysUser user, PagerInfo pager);
|
public PagedInfo<SysUser> SelectUserList(SysUser user, PagerInfo pager);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 通过用户ID查询用户
|
/// 通过用户ID查询用户
|
||||||
|
|||||||
@ -66,7 +66,7 @@ namespace ZR.Service.System
|
|||||||
/// <param name="logininfoDto"></param>
|
/// <param name="logininfoDto"></param>
|
||||||
/// <param name="pager">分页</param>
|
/// <param name="pager">分页</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public List<SysLogininfor> GetLoginLog(SysLogininfor logininfoDto, PagerInfo pager)
|
public PagedInfo<SysLogininfor> GetLoginLog(SysLogininfor logininfoDto, PagerInfo pager)
|
||||||
{
|
{
|
||||||
logininfoDto.BeginTime = DateTimeHelper.GetBeginTime(logininfoDto.BeginTime, -1);
|
logininfoDto.BeginTime = DateTimeHelper.GetBeginTime(logininfoDto.BeginTime, -1);
|
||||||
logininfoDto.EndTime = DateTimeHelper.GetBeginTime(logininfoDto.EndTime, 1);
|
logininfoDto.EndTime = DateTimeHelper.GetBeginTime(logininfoDto.EndTime, 1);
|
||||||
|
|||||||
@ -37,7 +37,7 @@ namespace ZR.Service
|
|||||||
/// 根据条件分页查询用户列表
|
/// 根据条件分页查询用户列表
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public List<SysUser> SelectUserList(SysUser user, PagerInfo pager)
|
public PagedInfo<SysUser> SelectUserList(SysUser user, PagerInfo pager)
|
||||||
{
|
{
|
||||||
var list = UserRepository.SelectUserList(user, pager);
|
var list = UserRepository.SelectUserList(user, pager);
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user