移动系统liao
2025-08-20 ad64f9d240fb054856afe4ab9523062b2bc079b9
Admin.NET/FZCZTB.Net.CustomerSYSTem/Service/FBS_CusExtend/FBS_CusExtendService.cs
@@ -18,6 +18,10 @@
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;
namespace FZCZTB.Net.CustomerSYSTem;
/// <summary>
@@ -27,19 +31,29 @@
public class FBS_CusExtendService : IDynamicApiController, ITransient
{
    private readonly SqlSugarRepository<FBS_CusExtend> _fBS_CusExtendRep;
    private readonly SqlSugarRepository<FBS_CoutomerExRole> _fBS_CoutomerExRoleRep;
    private readonly ISqlSugarClient _sqlSugarClient;
    private readonly SysDictTypeService _sysDictTypeService;
    private readonly FBS_EnterpriseTypeService _EnterpriseTypeService;
    public readonly SqlSugarRepository<FBS_CustormerUsers> _fBS_CustormerUsersRep;
    private readonly IMapper _mapper;
    public FBS_CusExtendService(SqlSugarRepository<FBS_CusExtend> fBS_CusExtendRep,
        ISqlSugarClient sqlSugarClient,
        SysDictTypeService sysDictTypeService,
        FBS_EnterpriseTypeService fBS_EnterpriseTypeService )
        FBS_EnterpriseTypeService fBS_EnterpriseTypeService,
         SqlSugarRepository<FBS_CoutomerExRole> cerRep,
         IMapper mapper,
         SqlSugarRepository<FBS_CustormerUsers> fbscu)
    {
        _fBS_CusExtendRep = fBS_CusExtendRep;
        _sqlSugarClient = sqlSugarClient;
        _sysDictTypeService = sysDictTypeService;
        _EnterpriseTypeService = fBS_EnterpriseTypeService;
        _fBS_CoutomerExRoleRep = cerRep;
        _mapper = mapper;
        _fBS_CustormerUsersRep = fbscu;
    }
    /// <summary>
    /// 
@@ -55,6 +69,7 @@
            StepsTypeItems = CommonHelper.GetEnumItemsWithAttributes<CusExtendStep>()
        };
    }
    /// <summary>
    /// 分页查询企业资料 🔖
    /// </summary>
@@ -64,11 +79,13 @@
    [ApiDescriptionSettings(Name = "Page"), HttpPost]
    public async Task<SqlSugarPagedList<FBS_CusExtendOutput>> 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()
            .WhereIF(!string.IsNullOrWhiteSpace(input.Keyword), u => u.EnterpriseType.Contains(input.Keyword) || u.TransactionCode.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))
        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.TransactionCode.Contains(input.TransactionCode.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()))
@@ -87,11 +104,37 @@
            .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.CustomerId != null, u => u.CustomerId == input.CustomerId)
            .WhereIF(input.EstablishmentTimeRange?.Length == 2, u => u.EstablishmentTime >= input.EstablishmentTimeRange[0] && u.EstablishmentTime <= input.EstablishmentTimeRange[1])
            .WhereIF(input.steps != null, u => u.steps == input.steps)
            .Select<FBS_CusExtendOutput>();
            .Select(u => new FBS_CusExtendOutput
            {
                ExRoles = u.ExRoles.Adapt<List<FBS_CoutomerExRoleOutput>>(),
                CustormerUsers = u.CustormerUsers.Adapt<List<FBS_CustormerUsersOutput>>()
            },true);
      return await query.OrderBuilder(input).ToPagedListAsync(input.Page, input.PageSize);
    }
    /// <summary>
    /// 更改审核状态
    /// </summary>
    /// <param name="CoutomerExRolesId">该ID是用户角色列表中的Id</param>
    /// <param name="step">要更改的状态</param>
    /// <returns></returns>
    [HttpGet]
    public async  Task<int  > 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();
    }
    /// <summary>
@@ -142,9 +185,31 @@
    [ApiDescriptionSettings(Name = "Delete"), HttpPost]
    public async Task Delete(DeleteFBS_CusExtendInput input)
    {
        var entity = await _fBS_CusExtendRep.GetFirstAsync(u => u.Id == input.Id) ?? throw Oops.Oh(ErrorCodeEnum.D1002);
        //await _fBS_CusExtendRep.FakeDeleteAsync(entity);   //假删除
        await _fBS_CusExtendRep.DeleteAsync(entity);   //真删除
     await    _fBS_CusExtendRep.AsTenant().BeginTranAsync();
        try
        {
            //var entity = await _fBS_CusExtendRep.AsQueryable().Includes(x => x.TransactionRole).Where(x => x.Id == input.Id).FirstAsync() ?? throw Oops.Oh(ErrorCodeEnum.D1002);
            //if (entity != null)
            //{
            //    var exrles = await _fBS_CoutomerExRoleRep.GetFirstAsync(x => x.CustomerId == entity.CustomerId && x.ExRoleId == entity.TransactionRole.Id);
            //    if (exrles != null)
            //    {
            //        await _fBS_CoutomerExRoleRep.DeleteAsync(exrles);
            //    }
            //    //await _fBS_CusExtendRep.FakeDeleteAsync(entity);   //假删除
            //    await _fBS_CusExtendRep.DeleteAsync(entity);   //真删除
            //}
          await   _fBS_CusExtendRep.AsTenant().CommitTranAsync();
        }
        catch (Exception)
        {
            await _fBS_CusExtendRep.AsTenant().RollbackTranAsync();
            throw;
        }
    }
    /// <summary>
@@ -220,15 +285,15 @@
                    // 校验并过滤必填基本类型为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;
                        }
                        //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<List<FBS_CusExtend>>();
                    
@@ -281,4 +346,95 @@
            return stream;
        }
    }
    /// <summary>
    /// 修改用户
    /// </summary>
    /// <param name="Param"></param>
    /// <returns></returns>
    [HttpPost]
    public  async Task<int > 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();
    }
    /// <summary>
    /// 获取用户信息
    /// </summary>
    /// <param name="CustormerUserId">这个是列表中袁弘用户表中的Id</param>
    /// <returns></returns>
    [HttpGet]
    public async Task<FBS_CustormerUsersOutput> 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<FBS_CustormerUsersOutput>();
    }
    /// <summary>
    /// 修改用户
    /// </summary>
    /// <param name="Param"></param>
    /// <returns></returns>
    [HttpPost]
    public async Task<int> CareCustormerUser(FBS_CustormerUsersInPut Param)
    {
        var Data = await _fBS_CustormerUsersRep.GetFirstAsync(x => x.CusExtendId == Param.CusExtendId && x.PhoneNumber == Param.PhoneNumber);
        if (Data != null)
        {
            throw Oops.Oh("同一个公司下手机号不能重复");
        }
        Data = Param.Adapt<FBS_CustormerUsers>();
        return await _fBS_CustormerUsersRep.AsInsertable(Data).ExecuteCommandAsync();
    }
    /// <summary>
    /// 删除一个用户员工
    /// </summary>
    /// <param name="CustormerUserId">这个是列表中袁弘用户表中的Id</param>
    /// <returns></returns>
    [HttpDelete]
    public async Task<bool> DelCustormerUser(long CustormerUserId)
    {
        return await _fBS_CustormerUsersRep.DeleteByIdAsync(CustormerUserId);
    }
}