// Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。 // // 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。 // // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! using Admin.NET.Core.Service; using Microsoft.AspNetCore.Http; using Furion.DatabaseAccessor; using Furion.FriendlyException; using Mapster; using SqlSugar; using System.ComponentModel; using System.ComponentModel.DataAnnotations; using Microsoft.AspNetCore.Mvc; using Furion.DynamicApiController; using Furion.DependencyInjection; using Admin.NET.Core; using FZCZTB.NET.MD.CutomerMd.Extend; using cylsg.utility; using FZCZTB.NET.MD.CutomerMd; using Furion.Logging.Extensions; using FZCZTB.Net.CustomerSYSTem.Service.FBS_ExRole.Dto; using MapsterMapper; using System.Runtime.ConstrainedExecution; using Microsoft.AspNetCore.Authorization; namespace FZCZTB.Net.CustomerSYSTem; /// /// 企业资料服务 🧩 /// [ApiDescriptionSettings(CustomerSYSTemConst.GroupName, Order = 100)] public class FBS_CusExtendService : IDynamicApiController, ITransient { private readonly SqlSugarRepository _fBS_CusExtendRep; private readonly SqlSugarRepository _fBS_CoutomerExRoleRep; private readonly ISqlSugarClient _sqlSugarClient; private readonly SysDictTypeService _sysDictTypeService; private readonly FBS_EnterpriseTypeService _EnterpriseTypeService; public readonly SqlSugarRepository _fBS_CustormerUsersRep; private readonly IMapper _mapper; public FBS_CusExtendService(SqlSugarRepository fBS_CusExtendRep, ISqlSugarClient sqlSugarClient, SysDictTypeService sysDictTypeService, FBS_EnterpriseTypeService fBS_EnterpriseTypeService, SqlSugarRepository cerRep, IMapper mapper, SqlSugarRepository fbscu) { _fBS_CusExtendRep = fBS_CusExtendRep; _sqlSugarClient = sqlSugarClient; _sysDictTypeService = sysDictTypeService; _EnterpriseTypeService = fBS_EnterpriseTypeService; _fBS_CoutomerExRoleRep = cerRep; _mapper = mapper; _fBS_CustormerUsersRep = fbscu; } /// /// /// /// [DisplayName("页面其他初始化资料")] [ApiDescriptionSettings(Name = "GetParam"), HttpGet] public async Task GetParam() { return new FBS_CusExtendParam() { EnterpriseTypes = await _EnterpriseTypeService.GetTreeData(), StepsTypeItems = CommonHelper.GetEnumItemsWithAttributes() }; } /// /// 分页查询企业资料 🔖 /// /// /// [DisplayName("分页查询企业资料")] [ApiDescriptionSettings(Name = "Page"), HttpPost] public async Task> Page(PageFBS_CusExtendInput input) { //var data = await _fBS_CusExtendRep.AsQueryable().Includes(u => u.ExRoles, y => y.ExRole).Includes(u => u.CustormerUsers).ToListAsync(); input.Keyword = input.Keyword?.Trim(); var query = _fBS_CusExtendRep.AsQueryable().Includes(u => u.ExRoles, y => y.ExRole).Includes(u => u.CustormerUsers) .WhereIF(!string.IsNullOrWhiteSpace(input.Keyword), u => u.EnterpriseType.Contains(input.Keyword) || u.BusinessLicense.Contains(input.Keyword) || u.EnterpriseName.Contains(input.Keyword) || u.UnifiedSocialCreditCode.Contains(input.Keyword) || u.RegisteredCapital.Contains(input.Keyword) || u.LegalRepresentativeName.Contains(input.Keyword) || u.LegalRepresentativeIdCard.Contains(input.Keyword) || u.LegalRepresentativeIdNumber.Contains(input.Keyword) || u.LegalRepresentativePhone.Contains(input.Keyword) || u.Residence.Contains(input.Keyword) || u.EnterprisePhone.Contains(input.Keyword) || u.MainBusiness.Contains(input.Keyword) || u.EnterpriseEmail.Contains(input.Keyword) || u.OperatorName.Contains(input.Keyword) || u.OperatorIdCard.Contains(input.Keyword) || u.OperatorIdNumber.Contains(input.Keyword) || u.OperatorPhone.Contains(input.Keyword) || u.BankName.Contains(input.Keyword) || u.BankAccount.Contains(input.Keyword)) .WhereIF(!string.IsNullOrWhiteSpace(input.EnterpriseType), u => u.EnterpriseType.Contains(input.EnterpriseType.Trim())) .WhereIF(!string.IsNullOrWhiteSpace(input.TransactionCode), u => u.ExRoles.Any(x => x.ExRole.Code == input.TransactionCode)) .WhereIF(!string.IsNullOrWhiteSpace(input.BusinessLicense), u => u.BusinessLicense.Contains(input.BusinessLicense.Trim())) .WhereIF(!string.IsNullOrWhiteSpace(input.EnterpriseName), u => u.EnterpriseName.Contains(input.EnterpriseName.Trim())) .WhereIF(!string.IsNullOrWhiteSpace(input.UnifiedSocialCreditCode), u => u.UnifiedSocialCreditCode.Contains(input.UnifiedSocialCreditCode.Trim())) .WhereIF(!string.IsNullOrWhiteSpace(input.RegisteredCapital), u => u.RegisteredCapital.Contains(input.RegisteredCapital.Trim())) .WhereIF(!string.IsNullOrWhiteSpace(input.LegalRepresentativeName), u => u.LegalRepresentativeName.Contains(input.LegalRepresentativeName.Trim())) .WhereIF(!string.IsNullOrWhiteSpace(input.LegalRepresentativeIdCard), u => u.LegalRepresentativeIdCard.Contains(input.LegalRepresentativeIdCard.Trim())) .WhereIF(!string.IsNullOrWhiteSpace(input.LegalRepresentativeIdNumber), u => u.LegalRepresentativeIdNumber.Contains(input.LegalRepresentativeIdNumber.Trim())) .WhereIF(!string.IsNullOrWhiteSpace(input.LegalRepresentativePhone), u => u.LegalRepresentativePhone.Contains(input.LegalRepresentativePhone.Trim())) .WhereIF(!string.IsNullOrWhiteSpace(input.Residence), u => u.Residence.Contains(input.Residence.Trim())) .WhereIF(!string.IsNullOrWhiteSpace(input.EnterprisePhone), u => u.EnterprisePhone.Contains(input.EnterprisePhone.Trim())) .WhereIF(!string.IsNullOrWhiteSpace(input.MainBusiness), u => u.MainBusiness.Contains(input.MainBusiness.Trim())) .WhereIF(!string.IsNullOrWhiteSpace(input.EnterpriseEmail), u => u.EnterpriseEmail.Contains(input.EnterpriseEmail.Trim())) .WhereIF(!string.IsNullOrWhiteSpace(input.OperatorName), u => u.OperatorName.Contains(input.OperatorName.Trim())) .WhereIF(!string.IsNullOrWhiteSpace(input.OperatorIdCard), u => u.OperatorIdCard.Contains(input.OperatorIdCard.Trim())) .WhereIF(!string.IsNullOrWhiteSpace(input.OperatorIdNumber), u => u.OperatorIdNumber.Contains(input.OperatorIdNumber.Trim())) .WhereIF(!string.IsNullOrWhiteSpace(input.OperatorPhone), u => u.OperatorPhone.Contains(input.OperatorPhone.Trim())) .WhereIF(!string.IsNullOrWhiteSpace(input.BankName), u => u.BankName.Contains(input.BankName.Trim())) .WhereIF(!string.IsNullOrWhiteSpace(input.BankAccount), u => u.BankAccount.Contains(input.BankAccount.Trim())) .WhereIF(input.EstablishmentTimeRange?.Length == 2, u => u.EstablishmentTime >= input.EstablishmentTimeRange[0] && u.EstablishmentTime <= input.EstablishmentTimeRange[1]) .Select(u => new FBS_CusExtendOutput { ExRoles = u.ExRoles.Adapt>(), CustormerUsers = u.CustormerUsers.Adapt>() },true); return await query.OrderBuilder(input).ToPagedListAsync(input.Page, input.PageSize); } /// /// 更改审核状态 /// /// 该ID是用户角色列表中的Id /// 要更改的状态 /// [HttpGet] public async Task ChangeSteps (long CoutomerExRolesId, CusExtendStep step) { var data=await _fBS_CoutomerExRoleRep.AsQueryable().Where(x=>x.Id== CoutomerExRolesId).FirstAsync(); if (data == null) { throw Oops.Oh("数据不存在"); }; if(data.steps== step) { return 1; } data.steps = step; return await _fBS_CoutomerExRoleRep.AsUpdateable(data).ExecuteCommandAsync(); } /// /// 获取企业资料详情 ℹ️ /// /// /// [DisplayName("获取企业资料详情")] [ApiDescriptionSettings(Name = "Detail"), HttpGet] public async Task Detail([FromQuery] QueryByIdFBS_CusExtendInput input) { return await _fBS_CusExtendRep.AsQueryable().Includes(x => x.ExRoles,y=>y.ExRole).Includes(x => x.CustormerUsers).Where(x=>x.Id==input.Id).FirstAsync(); } /// /// 增加企业资料 ➕ /// /// /// [DisplayName("增加企业资料")] [ApiDescriptionSettings(Name = "Add"), HttpPost] public async Task Add(AddFBS_CusExtendInput input) { var entity = input.Adapt(); return await _fBS_CusExtendRep.InsertAsync(entity) ? entity.Id : 0; } /// /// 更新企业资料 ✏️ /// /// /// [DisplayName("更新企业资料")] [ApiDescriptionSettings(Name = "Update"), HttpPost] public async Task Update(UpdateFBS_CusExtendInput input) { var entity = input.Adapt(); await _fBS_CusExtendRep. AsUpdateable(entity) .ExecuteCommandAsync(); } /// /// 删除企业资料 ❌ /// /// /// [DisplayName("删除企业资料")] [ApiDescriptionSettings(Name = "Delete"), HttpPost] public async Task Delete(DeleteFBS_CusExtendInput input) { await _fBS_CusExtendRep.AsTenant().BeginTranAsync(); try { var entity = await _fBS_CusExtendRep.AsQueryable().Where(x => x.Id == input.Id).FirstAsync() ?? throw Oops.Oh(ErrorCodeEnum.D1002); if (entity != null) { await _fBS_CusExtendRep.AsSugarClient().DeleteNav(entity).Include(x=>x.ExRoles).Include(x=>x.CustormerUsers).ExecuteCommandAsync(); //真删除 } await _fBS_CusExtendRep.AsTenant().CommitTranAsync(); } catch (Exception) { await _fBS_CusExtendRep.AsTenant().RollbackTranAsync(); throw; } } /// /// 批量删除企业资料 ❌ /// /// /// [DisplayName("批量删除企业资料")] [ApiDescriptionSettings(Name = "BatchDelete"), HttpPost] public async Task BatchDelete([Required(ErrorMessage = "主键列表不能为空")]List input) { var exp = Expressionable.Create(); foreach (var row in input) exp = exp.Or(it => it.Id == row.Id); var list = await _fBS_CusExtendRep.AsQueryable().Where(exp.ToExpression()).ToListAsync(); return await _fBS_CusExtendRep.AsSugarClient().DeleteNav(list).Include(x => x.ExRoles).Include(x => x.CustormerUsers).ExecuteCommandAsync(); //真删除 // return await _fBS_CusExtendRep.FakeDeleteAsync(list); //假删除 //return await _fBS_CusExtendRep.DeleteAsync(list); //真删除 } /// /// 导出企业资料记录 🔖 /// /// /// [DisplayName("导出企业资料记录")] [ApiDescriptionSettings(Name = "Export"), HttpPost, NonUnify] public async Task Export(PageFBS_CusExtendInput input) { var list = (await Page(input)).Items?.Adapt>() ?? new(); if (input.SelectKeyList?.Count > 0) list = list.Where(x => input.SelectKeyList.Contains(x.Id)).ToList(); //var stepsDictMap = _sysDictTypeService.GetDataList(new GetDataDictTypeInput { Code = "CusExtendStep" }).Result.ToDictionary(x => x.Value, x => x.Label); //list.ForEach(e => { // e.stepsDictLabel = stepsDictMap.GetValueOrDefault(e.steps ?? CusExtendStep.UNExamine, e.steps); //}); return ExcelHelper.ExportTemplate(list, "企业资料导出记录"); } /// /// 下载企业资料数据导入模板 ⬇️ /// /// [DisplayName("下载企业资料数据导入模板")] [ApiDescriptionSettings(Name = "Import"), HttpGet, NonUnify] public IActionResult DownloadTemplate() { return ExcelHelper.ExportTemplate(new List(), "企业资料导入模板"); } private static readonly object _fBS_CusExtendImportLock = new object(); /// /// 导入企业资料记录 💾 /// /// [DisplayName("导入企业资料记录")] [ApiDescriptionSettings(Name = "Import"), HttpPost, NonUnify, UnitOfWork] public IActionResult ImportData([Required] IFormFile file) { lock (_fBS_CusExtendImportLock) { var stepsDictMap = _sysDictTypeService.GetDataList(new GetDataDictTypeInput { Code = "CusExtendStep" }).Result.ToDictionary(x => x.Label!, x => x.Value); var stream = ExcelHelper.ImportData(file, (list, markerErrorAction) => { _sqlSugarClient.Utilities.PageEach(list, 2048, pageItems => { //// 映射字典值 //foreach(var item in pageItems) { // if (string.IsNullOrWhiteSpace(item.stepsDictLabel)) continue; // item.steps = stepsDictMap.GetValueOrDefault(item.stepsDictLabel); // if (item.steps == null) item.Error = "审核步骤字典映射失败"; //} // 校验并过滤必填基本类型为null的字段 var rows = pageItems.Where(x => { if (!string.IsNullOrWhiteSpace(x.Error)) return false; //if (x.CustomerId == null){ // x.Error = "用户ID不能为空"; // return false; //} //if (!string.IsNullOrWhiteSpace(x.Error)) return false; //if (x.steps == null){ // x.Error = "审核步骤不能为空"; // return false; //} return true; }).Adapt>(); var storageable = _fBS_CusExtendRep.Context.Storageable(rows) .SplitError(it => string.IsNullOrWhiteSpace(it.Item.EnterpriseType), "企业类型 不能为空") .SplitError(it => it.Item.EnterpriseType?.Length > 255, "企业类型 长度不能超过255个字符") .SplitError(it => string.IsNullOrWhiteSpace(it.Item.TransactionCode), "交易主体code不能为空") .SplitError(it => it.Item.TransactionCode?.Length > 255, "交易主体code长度不能超过255个字符") .SplitError(it => string.IsNullOrWhiteSpace(it.Item.BusinessLicense), "营业执照文件路径不能为空") .SplitError(it => it.Item.BusinessLicense?.Length > 255, "营业执照文件路径长度不能超过255个字符") .SplitError(it => string.IsNullOrWhiteSpace(it.Item.EnterpriseName), "企业名称不能为空") .SplitError(it => it.Item.EnterpriseName?.Length > 255, "企业名称长度不能超过255个字符") .SplitError(it => string.IsNullOrWhiteSpace(it.Item.UnifiedSocialCreditCode), "统一社会信用代码不能为空") .SplitError(it => it.Item.UnifiedSocialCreditCode?.Length > 255, "统一社会信用代码长度不能超过255个字符") .SplitError(it => string.IsNullOrWhiteSpace(it.Item.RegisteredCapital), "注册资金不能为空") .SplitError(it => it.Item.RegisteredCapital?.Length > 255, "注册资金长度不能超过255个字符") .SplitError(it => string.IsNullOrWhiteSpace(it.Item.LegalRepresentativeName), "法定代表人姓名不能为空") .SplitError(it => it.Item.LegalRepresentativeName?.Length > 255, "法定代表人姓名长度不能超过255个字符") .SplitError(it => string.IsNullOrWhiteSpace(it.Item.LegalRepresentativeIdCard), "法定代表人身份证文件路径不能为空") .SplitError(it => it.Item.LegalRepresentativeIdCard?.Length > 255, "法定代表人身份证文件路径长度不能超过255个字符") .SplitError(it => string.IsNullOrWhiteSpace(it.Item.LegalRepresentativeIdNumber), "法定代表人姓名不能为空") .SplitError(it => it.Item.LegalRepresentativeIdNumber?.Length > 255, "法定代表人姓名长度不能超过255个字符") .SplitError(it => string.IsNullOrWhiteSpace(it.Item.LegalRepresentativePhone), "法定代表人姓名不能为空") .SplitError(it => it.Item.LegalRepresentativePhone?.Length > 255, "法定代表人姓名长度不能超过255个字符") .SplitError(it => string.IsNullOrWhiteSpace(it.Item.Residence), "企业住所不能为空") .SplitError(it => it.Item.Residence?.Length > 255, "企业住所长度不能超过255个字符") .SplitError(it => string.IsNullOrWhiteSpace(it.Item.EnterprisePhone), "企业联系电话不能为空") .SplitError(it => it.Item.EnterprisePhone?.Length > 255, "企业联系电话长度不能超过255个字符") .SplitError(it => string.IsNullOrWhiteSpace(it.Item.EnterpriseEmail), "企业邮箱不能为空") .SplitError(it => it.Item.EnterpriseEmail?.Length > 255, "企业邮箱长度不能超过255个字符") .SplitError(it => it.Item.OperatorName?.Length > 255, "业务经办人姓名长度不能超过255个字符") .SplitError(it => it.Item.OperatorIdCard?.Length > 255, "业务经办人身份证文件路径或标识长度不能超过255个字符") .SplitError(it => it.Item.OperatorIdNumber?.Length > 255, "法定代表人姓名长度不能超过255个字符") .SplitError(it => it.Item.OperatorPhone?.Length > 255, "法定代表人姓名长度不能超过255个字符") .SplitError(it => string.IsNullOrWhiteSpace(it.Item.BankName), "法定代表人姓名不能为空") .SplitError(it => it.Item.BankName?.Length > 255, "法定代表人姓名长度不能超过255个字符") .SplitError(it => string.IsNullOrWhiteSpace(it.Item.BankAccount), "法定代表人姓名不能为空") .SplitError(it => it.Item.BankAccount?.Length > 255, "法定代表人姓名长度不能超过255个字符") .SplitInsert(_ => true) .ToStorage(); storageable.AsInsertable.ExecuteCommand();// 不存在插入 storageable.AsUpdateable.ExecuteCommand();// 存在更新 // 标记错误信息 markerErrorAction.Invoke(storageable, pageItems, rows); }); }); return stream; } } /// /// 修改用户 /// /// /// [HttpPost] public async Task UpDataCustormerUser(FBS_CustormerUsersInPut Param) { if(Param.Id==null) { throw Oops.Oh("Id为空"); } var Data= await _fBS_CustormerUsersRep.GetFirstAsync(x => x.Id == Param.Id && x.CusExtendId == Param.CusExtendId); if(Data==null) { throw Oops.Oh("数据不存在"); } Data = _mapper.Map(Param, Data); return await _fBS_CustormerUsersRep.AsUpdateable(Data).ExecuteCommandAsync(); } /// /// 获取用户信息 /// /// 这个是列表中袁弘用户表中的Id /// [HttpGet] public async Task GetCustormerUserInfo(long CustormerUserId) { if (CustormerUserId == null) { throw Oops.Oh("Id为空"); } var Data = await _fBS_CustormerUsersRep.GetFirstAsync(x => x.Id == CustormerUserId ); if (Data == null) { throw Oops.Oh("数据不存在"); } return Data.Adapt(); } /// /// 修改用户 /// /// /// [HttpPost] public async Task CareCustormerUser(FBS_CustormerUsersInPut Param) { if(Param.CusExtendId<=0) throw Oops.Oh("CusExtendId 无效"); var Ex = await _fBS_CusExtendRep.GetByIdAsync(Param.CusExtendId); if(Ex==null) throw Oops.Oh("组织机构不存在或者异常"); var Data = await _fBS_CustormerUsersRep.GetFirstAsync(x => x.CusExtendId == Param.CusExtendId && x.PhoneNumber == Param.PhoneNumber); if (Data != null) { throw Oops.Oh("同一个公司下手机号不能重复"); } Data = Param.Adapt(); var id= await _fBS_CustormerUsersRep.AsInsertable(Data).ExecuteReturnEntityAsync(); return id.Id; } /// /// 获取组织机构的用户列表 /// /// /// [HttpGet] public async Task> GetCustormerUserList(long CusExtendId) { if (CusExtendId <= 0) throw Oops.Oh("CusExtendId 无效"); return (await _fBS_CustormerUsersRep.GetListAsync(x => x.CusExtendId == CusExtendId)).Adapt>(); } /// /// 删除一个用户员工 /// /// 这个是列表中袁弘用户表中的Id /// [HttpDelete] public async Task DelCustormerUser(long CustormerUserId) { return await _fBS_CustormerUsersRep.DeleteByIdAsync(CustormerUserId); } /// /// 分页查询待审企业角色🔖 /// /// /// [DisplayName("分页查询待审企业角色")] [ApiDescriptionSettings(Name = "GetReviewPage"), HttpPost] public async Task> GetReviewPage(BasePageInput input) { //var data = await _fBS_CusExtendRep.AsQueryable().Includes(u => u.ExRoles, y => y.ExRole).Includes(u => u.CustormerUsers).ToListAsync(); input.Keyword = input.Keyword?.Trim(); var querlist1 = await _fBS_CusExtendRep.AsQueryable().RightJoin((ce, cer) => cer.CusExtendId == ce.Id).Where((ce, cer) => cer.steps == CusExtendStep.UNExamine || cer.steps == CusExtendStep.Change).Select((ce, cer) => new FBS_CusExtendOutput { steps = cer.steps, ExRole = SqlFunc.Subqueryable().Where(x => x.Id == cer.ExRoleId).First(), EnterpriseName = ce.EnterpriseName, CoutomerExRoleId = cer.Id, Id = ce.Id, CreateTime = SqlFunc.IsNullOrEmpty(cer.UpdateTime) == true ? cer.CreateTime:cer.UpdateTime }, true).OrderBy(ce => ce.CreateTime) .ToPagedListAsync(input.Page, input.PageSize); return querlist1; //var querlist = _fBS_CusExtendRep.AsQueryable().RightJoin((ce, cer) => cer.CusExtendId == ce.Id).Where((ce, cer) => cer.steps == CusExtendStep.UNExamine) // .Select((ce, cer) => new FBS_CusExtendOutput // { // steps = cer.steps, // ExRole = SqlFunc.Subqueryable().Where(x => x.Id == cer.ExRoleId).First(), // EnterpriseName=ce.EnterpriseName, // CoutomerExRoleId= cer.Id, // Id= ce.Id // },true); //var query = _fBS_CusExtendRep.AsQueryable().Includes(u => u.ExRoles, y => y.ExRole).Includes(u => u.CustormerUsers) // .WhereIF(!string.IsNullOrWhiteSpace(input.Keyword), u => u.EnterpriseType.Contains(input.Keyword) || u.BusinessLicense.Contains(input.Keyword) || u.EnterpriseName.Contains(input.Keyword) || u.UnifiedSocialCreditCode.Contains(input.Keyword) || u.RegisteredCapital.Contains(input.Keyword) || u.LegalRepresentativeName.Contains(input.Keyword) || u.LegalRepresentativeIdCard.Contains(input.Keyword) || u.LegalRepresentativeIdNumber.Contains(input.Keyword) || u.LegalRepresentativePhone.Contains(input.Keyword) || u.Residence.Contains(input.Keyword) || u.EnterprisePhone.Contains(input.Keyword) || u.MainBusiness.Contains(input.Keyword) || u.EnterpriseEmail.Contains(input.Keyword) || u.OperatorName.Contains(input.Keyword) || u.OperatorIdCard.Contains(input.Keyword) || u.OperatorIdNumber.Contains(input.Keyword) || u.OperatorPhone.Contains(input.Keyword) || u.BankName.Contains(input.Keyword) || u.BankAccount.Contains(input.Keyword)) // .WhereIF(!string.IsNullOrWhiteSpace(input.EnterpriseType), u => u.EnterpriseType.Contains(input.EnterpriseType.Trim())) // .WhereIF(!string.IsNullOrWhiteSpace(input.TransactionCode), u => u.ExRoles.Any(x => x.ExRole.Code == input.TransactionCode)) // .WhereIF(!string.IsNullOrWhiteSpace(input.BusinessLicense), u => u.BusinessLicense.Contains(input.BusinessLicense.Trim())) // .WhereIF(!string.IsNullOrWhiteSpace(input.EnterpriseName), u => u.EnterpriseName.Contains(input.EnterpriseName.Trim())) // .WhereIF(!string.IsNullOrWhiteSpace(input.UnifiedSocialCreditCode), u => u.UnifiedSocialCreditCode.Contains(input.UnifiedSocialCreditCode.Trim())) // .WhereIF(!string.IsNullOrWhiteSpace(input.RegisteredCapital), u => u.RegisteredCapital.Contains(input.RegisteredCapital.Trim())) // .WhereIF(!string.IsNullOrWhiteSpace(input.LegalRepresentativeName), u => u.LegalRepresentativeName.Contains(input.LegalRepresentativeName.Trim())) // .WhereIF(!string.IsNullOrWhiteSpace(input.LegalRepresentativeIdCard), u => u.LegalRepresentativeIdCard.Contains(input.LegalRepresentativeIdCard.Trim())) // .WhereIF(!string.IsNullOrWhiteSpace(input.LegalRepresentativeIdNumber), u => u.LegalRepresentativeIdNumber.Contains(input.LegalRepresentativeIdNumber.Trim())) // .WhereIF(!string.IsNullOrWhiteSpace(input.LegalRepresentativePhone), u => u.LegalRepresentativePhone.Contains(input.LegalRepresentativePhone.Trim())) // .WhereIF(!string.IsNullOrWhiteSpace(input.Residence), u => u.Residence.Contains(input.Residence.Trim())) // .WhereIF(!string.IsNullOrWhiteSpace(input.EnterprisePhone), u => u.EnterprisePhone.Contains(input.EnterprisePhone.Trim())) // .WhereIF(!string.IsNullOrWhiteSpace(input.MainBusiness), u => u.MainBusiness.Contains(input.MainBusiness.Trim())) // .WhereIF(!string.IsNullOrWhiteSpace(input.EnterpriseEmail), u => u.EnterpriseEmail.Contains(input.EnterpriseEmail.Trim())) // .WhereIF(!string.IsNullOrWhiteSpace(input.OperatorName), u => u.OperatorName.Contains(input.OperatorName.Trim())) // .WhereIF(!string.IsNullOrWhiteSpace(input.OperatorIdCard), u => u.OperatorIdCard.Contains(input.OperatorIdCard.Trim())) // .WhereIF(!string.IsNullOrWhiteSpace(input.OperatorIdNumber), u => u.OperatorIdNumber.Contains(input.OperatorIdNumber.Trim())) // .WhereIF(!string.IsNullOrWhiteSpace(input.OperatorPhone), u => u.OperatorPhone.Contains(input.OperatorPhone.Trim())) // .WhereIF(!string.IsNullOrWhiteSpace(input.BankName), u => u.BankName.Contains(input.BankName.Trim())) // .WhereIF(!string.IsNullOrWhiteSpace(input.BankAccount), u => u.BankAccount.Contains(input.BankAccount.Trim())) // .WhereIF(input.EstablishmentTimeRange?.Length == 2, u => u.EstablishmentTime >= input.EstablishmentTimeRange[0] && u.EstablishmentTime <= input.EstablishmentTimeRange[1]) // .Select(u => new FBS_CusExtendOutput // { // ExRoles = u.ExRoles.Adapt>(), // CustormerUsers = u.CustormerUsers.Adapt>() // }, true); //return await querlist.OrderBuilder(input).ToPagedListAsync(input.Page, input.PageSize); } }