// 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);
}
}