分页参数时间范围处理

This commit is contained in:
陈淳
2022-09-09 15:53:11 +08:00
parent 43120b0017
commit 5d738d99fe
27 changed files with 326 additions and 54 deletions

View File

@@ -224,11 +224,25 @@
</summary>
<returns></returns>
</member>
<member name="M:Yi.Framework.ApiMicroservice.Controllers.TestController.TreeTest">
<summary>
树形结构构建测试
</summary>
<returns></returns>
</member>
<member name="T:Yi.Framework.ApiMicroservice.Controllers.UserController">
<summary>
用户管理
</summary>
</member>
<member name="M:Yi.Framework.ApiMicroservice.Controllers.UserController.PageList(Yi.Framework.Model.Models.UserEntity,Yi.Framework.Common.Models.PageParModel)">
<summary>
动态条件分页查询
</summary>
<param name="user"></param>
<param name="page"></param>
<returns></returns>
</member>
<member name="M:Yi.Framework.ApiMicroservice.Controllers.UserController.UpdateStatus(System.Int64,System.Boolean)">
<summary>
更改用户状态

View File

@@ -35,10 +35,10 @@ namespace Yi.Framework.ApiMicroservice.Controllers
{
Random random = new Random();
var logList = new List<LogEntity>() {
new LogEntity() { LogCreateTime = Convert.ToDateTime("2019-12-1"), Message = "jack"+random.Next() } ,
new LogEntity() { LogCreateTime = Convert.ToDateTime("2022-02-1"), Message = "jack"+random.Next() },
new LogEntity() { LogCreateTime = Convert.ToDateTime("2020-02-1"), Message = "jack"+random.Next() },
new LogEntity() { LogCreateTime = Convert.ToDateTime("2021-12-1"), Message = "jack"+random.Next() } };
new LogEntity() { CreateTime = Convert.ToDateTime("2019-12-1"), Message = "jack"+random.Next() } ,
new LogEntity() { CreateTime = Convert.ToDateTime("2022-02-1"), Message = "jack"+random.Next() },
new LogEntity() { CreateTime = Convert.ToDateTime("2020-02-1"), Message = "jack"+random.Next() },
new LogEntity() { CreateTime = Convert.ToDateTime("2021-12-1"), Message = "jack"+random.Next() } };
return Result.Success().SetData(await _iLogService.AddListTest(logList));
}

View File

@@ -29,10 +29,16 @@ namespace Yi.Framework.ApiMicroservice.Controllers
_iUserService = iUserService;
}
/// <summary>
/// 动态条件分页查询
/// </summary>
/// <param name="user"></param>
/// <param name="page"></param>
/// <returns></returns>
[HttpGet]
public async Task<Result> PageList([FromQuery]UserEntity user, [FromQuery] PageParModel page)
public async Task<Result> PageList([FromQuery] UserEntity user, [FromQuery] PageParModel page)
{
return Result.Success().SetData(new PageModel(await _iUserService._repository.GetListAsync(),100) );
return Result.Success().SetData(await _iUserService.SelctPageList(user, page));
}
/// <summary>
@@ -42,10 +48,10 @@ namespace Yi.Framework.ApiMicroservice.Controllers
/// <param name="isDel"></param>
/// <returns></returns>
[HttpPut]
public async Task<Result> UpdateStatus(long userId,bool isDel)
public async Task<Result> UpdateStatus(long userId, bool isDel)
{
return Result.Success().SetData(await _iUserService._repository.UpdateIgnoreNullAsync(new UserEntity() { Id = userId, IsDeleted = isDel }));
}
@@ -56,7 +62,7 @@ namespace Yi.Framework.ApiMicroservice.Controllers
/// <returns></returns>
[Permission($"{nameof(UserEntity)}:add")]
[HttpPost]
public override async Task<Result> Add(UserEntity entity)
public override async Task<Result> Add(UserEntity entity)
{
if (!await _iUserService.Exist(entity.UserName))
{

View File

@@ -11,5 +11,8 @@ namespace Yi.Framework.Common.Models
{
public int PageNum { get; set; }
public int PageSize { get; set; }
public DateTime? StartTime {get;set;}
public DateTime? EndTime { get; set; }
}
}

View File

@@ -0,0 +1,9 @@
using Yi.Framework.Model.Models;
using Yi.Framework.Repository;
namespace Yi.Framework.Interface
{
public partial interface IDictionaryInfoService:IBaseService<DictionaryInfoEntity>
{
}
}

View File

@@ -1,12 +1,9 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using Yi.Framework.Model.Models;
using Yi.Framework.Model.Models;
using Yi.Framework.Repository;
namespace Yi.Framework.Interface
{
public partial interface ILogService : IBaseService<LogEntity>
{
public partial interface ILogService:IBaseService<LogEntity>
{
}
}

View File

@@ -0,0 +1,9 @@
using Yi.Framework.Model.Models;
using Yi.Framework.Repository;
namespace Yi.Framework.Interface
{
public partial interface IRoleMenuService:IBaseService<RoleMenuEntity>
{
}
}

View File

@@ -0,0 +1,9 @@
using Yi.Framework.Model.Models;
using Yi.Framework.Repository;
namespace Yi.Framework.Interface
{
public partial interface ITenantService:IBaseService<TenantEntity>
{
}
}

View File

@@ -0,0 +1,9 @@
using Yi.Framework.Model.Models;
using Yi.Framework.Repository;
namespace Yi.Framework.Interface
{
public partial interface IUserRoleService:IBaseService<UserRoleEntity>
{
}
}

View File

@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Yi.Framework.Common.Models;
using Yi.Framework.DTOModel;
using Yi.Framework.Model.Models;
using Yi.Framework.Repository;
@@ -75,5 +76,13 @@ namespace Yi.Framework.Interface
/// <param name="password"></param>
/// <returns></returns>
bool JudgePassword(UserEntity user, string password);
/// <summary>
/// 动态条件分页查询
/// </summary>
/// <param name="user"></param>
/// <param name="page"></param>
/// <returns></returns>
Task<PageModel<List<UserEntity>>> SelctPageList(UserEntity user, PageParModel page);
}
}

View File

@@ -12,7 +12,11 @@ namespace Yi.Framework.Model.Models
public partial class LogEntity
{
[SplitField] //分表字段 在插入的时候会根据这个字段插入哪个表,在更新删除的时候用这个字段找出相关表
public DateTime? LogCreateTime { get; set; }
/// <summary>
/// 创建时间
///</summary>
[SugarColumn(ColumnName = "CreateTime")]
public DateTime? CreateTime { get; set; }
}
}

View File

@@ -20,26 +20,16 @@ namespace Yi.Framework.Model.Models
[SugarColumn(ColumnName="Id" ,IsPrimaryKey = true )]
public long Id { get; set; }
/// <summary>
/// 字典名称
///</summary>
[SugarColumn(ColumnName="DicName" )]
public string DicName { get; set; }
/// <summary>
/// 字典类型
///</summary>
[SugarColumn(ColumnName="DictType" )]
public string DictType { get; set; }
/// <summary>
/// 字典标签
///</summary>
[SugarColumn(ColumnName="DictLabel" )]
public string DictLabel { get; set; }
/// <summary>
/// 字典值
///</summary>
[SugarColumn(ColumnName="DictValue" )]
public string DictValue { get; set; }
/// <summary>
/// 是否为该类型的默认值
///</summary>
[SugarColumn(ColumnName="IsDefault" )]
public bool? IsDefault { get; set; }
/// <summary>
/// 创建者
///</summary>
[SugarColumn(ColumnName="CreateUser" )]
@@ -69,5 +59,15 @@ namespace Yi.Framework.Model.Models
///</summary>
[SugarColumn(ColumnName="TenantId" )]
public long? TenantId { get; set; }
/// <summary>
/// 排序字段
///</summary>
[SugarColumn(ColumnName="OrderNum" )]
public int? OrderNum { get; set; }
/// <summary>
/// 描述
///</summary>
[SugarColumn(ColumnName="Remark" )]
public string Remark { get; set; }
}
}

View File

@@ -0,0 +1,83 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.Json.Serialization;
using SqlSugar;
namespace Yi.Framework.Model.Models
{
/// <summary>
/// 字典信息表
///</summary>
[SugarTable("DictionaryInfo")]
public partial class DictionaryInfoEntity:IBaseModelEntity
{
public DictionaryInfoEntity()
{
this.IsDeleted = false;
this.CreateTime = DateTime.Now;
}
[JsonConverter(typeof(ValueToStringConverter))]
[SugarColumn(ColumnName="Id" ,IsPrimaryKey = true )]
public long Id { get; set; }
/// <summary>
/// 字典类型
///</summary>
[SugarColumn(ColumnName="DictType" )]
public string DictType { get; set; }
/// <summary>
/// 字典标签
///</summary>
[SugarColumn(ColumnName="DictLabel" )]
public string DictLabel { get; set; }
/// <summary>
/// 字典值
///</summary>
[SugarColumn(ColumnName="DictValue" )]
public string DictValue { get; set; }
/// <summary>
/// 是否为该类型的默认值
///</summary>
[SugarColumn(ColumnName="IsDefault" )]
public bool? IsDefault { get; set; }
/// <summary>
/// 创建者
///</summary>
[SugarColumn(ColumnName="CreateUser" )]
public long? CreateUser { get; set; }
/// <summary>
/// 创建时间
///</summary>
[SugarColumn(ColumnName="CreateTime" )]
public DateTime? CreateTime { get; set; }
/// <summary>
/// 修改者
///</summary>
[SugarColumn(ColumnName="ModifyUser" )]
public long? ModifyUser { get; set; }
/// <summary>
/// 修改时间
///</summary>
[SugarColumn(ColumnName="ModifyTime" )]
public DateTime? ModifyTime { get; set; }
/// <summary>
/// 是否删除
///</summary>
[SugarColumn(ColumnName="IsDeleted" )]
public bool? IsDeleted { get; set; }
/// <summary>
/// 租户Id
///</summary>
[SugarColumn(ColumnName="TenantId" )]
public long? TenantId { get; set; }
/// <summary>
/// 排序字段
///</summary>
[SugarColumn(ColumnName="OrderNum" )]
public int? OrderNum { get; set; }
/// <summary>
/// 描述
///</summary>
[SugarColumn(ColumnName="Remark" )]
public string Remark { get; set; }
}
}

View File

@@ -1,12 +1,14 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.Json.Serialization;
using SqlSugar;
namespace Yi.Framework.Model.Models
{
/// <summary>
/// 日志表
///</summary>
public partial class LogEntity:IBaseModelEntity
{
public LogEntity()
@@ -14,22 +16,15 @@ namespace Yi.Framework.Model.Models
this.IsDeleted = false;
this.CreateTime = DateTime.Now;
}
/// <summary>
/// 1
///</summary>
[SugarColumn(ColumnName="Id" ,IsPrimaryKey = true )]
[JsonConverter(typeof(ValueToStringConverter))]
[SugarColumn(ColumnName="Id" ,IsPrimaryKey = true )]
public long Id { get; set; }
/// <summary>
/// 创建者
///</summary>
[SugarColumn(ColumnName="CreateUser" )]
public long? CreateUser { get; set; }
/// <summary>
/// 创建时间
///</summary>
[SugarColumn(ColumnName="CreateTime" )]
public DateTime? CreateTime { get; set; }
/// <summary>
/// 修改者
///</summary>
@@ -55,5 +50,15 @@ namespace Yi.Framework.Model.Models
///</summary>
[SugarColumn(ColumnName="Message" )]
public string Message { get; set; }
/// <summary>
/// 排序字段
///</summary>
[SugarColumn(ColumnName="OrderNum" )]
public int? OrderNum { get; set; }
/// <summary>
/// 描述
///</summary>
[SugarColumn(ColumnName="Remark" )]
public string Remark { get; set; }
}
}

View File

@@ -94,5 +94,15 @@ namespace Yi.Framework.Model.Models
///</summary>
[SugarColumn(ColumnName="IsShow" )]
public bool? IsShow { get; set; }
/// <summary>
/// 排序字段
///</summary>
[SugarColumn(ColumnName="OrderNum" )]
public int? OrderNum { get; set; }
/// <summary>
/// 描述
///</summary>
[SugarColumn(ColumnName="Remark" )]
public string Remark { get; set; }
}
}

View File

@@ -59,5 +59,15 @@ namespace Yi.Framework.Model.Models
///</summary>
[SugarColumn(ColumnName="RoleCode" )]
public string RoleCode { get; set; }
/// <summary>
/// 排序字段
///</summary>
[SugarColumn(ColumnName="OrderNum" )]
public int? OrderNum { get; set; }
/// <summary>
/// 描述
///</summary>
[SugarColumn(ColumnName="Remark" )]
public string Remark { get; set; }
}
}

View File

@@ -54,5 +54,15 @@ namespace Yi.Framework.Model.Models
///</summary>
[SugarColumn(ColumnName="TenantId" )]
public long? TenantId { get; set; }
/// <summary>
/// 排序字段
///</summary>
[SugarColumn(ColumnName="OrderNum" )]
public int? OrderNum { get; set; }
/// <summary>
/// 描述
///</summary>
[SugarColumn(ColumnName="Remark" )]
public string Remark { get; set; }
}
}

View File

@@ -109,5 +109,15 @@ namespace Yi.Framework.Model.Models
///</summary>
[SugarColumn(ColumnName="Introduction" )]
public string Introduction { get; set; }
/// <summary>
/// 排序字段
///</summary>
[SugarColumn(ColumnName="OrderNum" )]
public int? OrderNum { get; set; }
/// <summary>
/// 描述
///</summary>
[SugarColumn(ColumnName="Remark" )]
public string Remark { get; set; }
}
}

View File

@@ -0,0 +1,14 @@
using SqlSugar;
using Yi.Framework.Interface;
using Yi.Framework.Model.Models;
using Yi.Framework.Repository;
namespace Yi.Framework.Service
{
public partial class DictionaryInfoService : BaseService<DictionaryInfoEntity>, IDictionaryInfoService
{
public DictionaryInfoService(IRepository<DictionaryInfoEntity> repository) : base(repository)
{
}
}
}

View File

@@ -0,0 +1,14 @@
using SqlSugar;
using Yi.Framework.Interface;
using Yi.Framework.Model.Models;
using Yi.Framework.Repository;
namespace Yi.Framework.Service
{
public partial class RoleMenuService : BaseService<RoleMenuEntity>, IRoleMenuService
{
public RoleMenuService(IRepository<RoleMenuEntity> repository) : base(repository)
{
}
}
}

View File

@@ -0,0 +1,14 @@
using SqlSugar;
using Yi.Framework.Interface;
using Yi.Framework.Model.Models;
using Yi.Framework.Repository;
namespace Yi.Framework.Service
{
public partial class TenantService : BaseService<TenantEntity>, ITenantService
{
public TenantService(IRepository<TenantEntity> repository) : base(repository)
{
}
}
}

View File

@@ -0,0 +1,14 @@
using SqlSugar;
using Yi.Framework.Interface;
using Yi.Framework.Model.Models;
using Yi.Framework.Repository;
namespace Yi.Framework.Service
{
public partial class UserRoleService : BaseService<UserRoleEntity>, IUserRoleService
{
public UserRoleService(IRepository<UserRoleEntity> repository) : base(repository)
{
}
}
}

View File

@@ -5,6 +5,7 @@ using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using Yi.Framework.Common.Helper;
using Yi.Framework.Common.Models;
using Yi.Framework.DTOModel;
using Yi.Framework.Interface;
using Yi.Framework.Model.Models;
@@ -30,7 +31,7 @@ namespace Yi.Framework.Service
}
public async Task<bool> Exist(string userName, Action<UserEntity> userAction = null)
{
var user = await _repository.GetFirstAsync(u => u.UserName == userName&& u.IsDeleted==false);
var user = await _repository.GetFirstAsync(u => u.UserName == userName && u.IsDeleted == false);
if (userAction != null)
{
userAction.Invoke(user);
@@ -113,7 +114,7 @@ namespace Yi.Framework.Service
//首先获取到该用户全部信息,导航到角色、菜单,(菜单需要去重,完全交给Set来处理即可)
//得到用户
var user = await _repository._Db.Queryable<UserEntity>().Includes(u => u.Roles.Where(r=>r.IsDeleted==false).ToList(), r => r.Menus.Where(m=>m.IsDeleted==false).ToList()).InSingleAsync(userId);
var user = await _repository._Db.Queryable<UserEntity>().Includes(u => u.Roles.Where(r => r.IsDeleted == false).ToList(), r => r.Menus.Where(m => m.IsDeleted == false).ToList()).InSingleAsync(userId);
//得到角色集合
var roleList = user.Roles;
@@ -140,12 +141,12 @@ namespace Yi.Framework.Service
userRoleMenu.User = user;
return userRoleMenu;
}
public bool JudgePassword(UserEntity user,string password)
public bool JudgePassword(UserEntity user, string password)
{
if (user.Password == MD5Helper.SHA2Encode(password, user.Salt))
{
@@ -153,5 +154,21 @@ namespace Yi.Framework.Service
}
return false;
}
public async Task<PageModel<List<UserEntity>>> SelctPageList(UserEntity user, PageParModel page)
{
RefAsync<int> total = 0;
var data = await _repository._Db.Queryable<UserEntity>()
.WhereIF(!string.IsNullOrEmpty(user.UserName), u => u.UserName.Contains(user.UserName))
.WhereIF(!string.IsNullOrEmpty(user.Name), u => u.Name.Contains(user.Name))
.WhereIF(!string.IsNullOrEmpty(user.Phone), u => u.Phone.Contains(user.Phone))
.WhereIF(page.StartTime.IsNotNull() && page.EndTime.IsNotNull(), u => u.CreateTime >= page.StartTime && u.CreateTime <= page.EndTime)
.Where(u => u.IsDeleted == false)
.OrderBy(u => u.OrderNum)
.ToPageListAsync(page.PageNum, page.PageSize, total);
return new PageModel<List<UserEntity>>(data, total);
}
}
}