20 基于SqlSugar的开发框架循序渐进介绍-- 在基于UniApp+Vue的移动端实现多条件查询的处理( 二 )

这里基类Service层主要处理逻辑部分,而具体的构建精确的查询处理条件,下放在了每个具体业务Service类中进行处理了 。
UserService是具体对应的业务类的逻辑处理层,该类的定义方法如下所示 。
/// <summary>/// 应用层服务接口实现/// </summary>public class UserService : MyCrudService<UserInfo, int, UserPagedDto>, IUserService下放在UserService这个具体业务的Service类中的查询处理逻辑,这部分通过代码生成工具生成即可 。
/// <summary>/// 自定义条件处理/// </summary>/// <param name="input">查询条件Dto</param>/// <returns></returns>protected override ISugarQueryable<UserInfo> CreateFilteredQueryAsync(UserPagedDto input){var query = base.CreateFilteredQueryAsync(input);query = query.WhereIF(input.ExcludeId.HasValue, t => t.Id != input.ExcludeId) //不包含排除ID.WhereIF(input.PID.HasValue, s => s.PID == input.PID).WhereIF(!input.HandNo.IsNullOrWhiteSpace(), t => t.HandNo.Contains(input.HandNo)) //如需要精确匹配则用Equals.WhereIF(!input.Name.IsNullOrWhiteSpace(), t => t.Name.Contains(input.Name)) //如需要精确匹配则用Equals.WhereIF(!input.FullName.IsNullOrWhiteSpace(), t => t.FullName.Contains(input.FullName)) //如需要精确匹配则用Equals.WhereIF(!input.Nickname.IsNullOrWhiteSpace(), t => t.Nickname.Contains(input.Nickname)) //如需要精确匹配则用Equals.WhereIF(input.IsExpire.HasValue, t => t.IsExpire == input.IsExpire) //如需要精确匹配则用Equals//过期时间区间查询.WhereIF(input.ExpireDateStart.HasValue, s => s.ExpireDate >= input.ExpireDateStart.Value).WhereIF(input.ExpireDateEnd.HasValue, s => s.ExpireDate <= input.ExpireDateEnd.Value)

经验总结扩展阅读