New file |
| | |
| | | // Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。 |
| | | // |
| | | // 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。 |
| | | // |
| | | // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! |
| | | |
| | | using Admin.NET.Core; |
| | | using Admin.NET.Core.Service; |
| | | using Furion; |
| | | using Furion.DynamicApiController; |
| | | using Furion.FriendlyException; |
| | | using FZCTB.NET.API.Application.User.DTO; |
| | | using FZCZTB.NET.MD.ConfigMd; |
| | | using FZCZTB.NET.MD.CutomerMd; |
| | | using FZCZTB.NET.MD.CutomerMd.Extend; |
| | | using FZCZTB.NET.SYSService.CustomerSYS; |
| | | using Mapster; |
| | | using MapsterMapper; |
| | | using Microsoft.AspNetCore.Authorization; |
| | | using Microsoft.AspNetCore.Mvc; |
| | | using Microsoft.AspNetCore.Mvc.ViewComponents; |
| | | using NewLife; |
| | | using OfficeOpenXml.FormulaParsing.ExpressionGraph.FunctionCompilers; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using static QRCoder.PayloadGenerator; |
| | | |
| | | namespace FZCTB.NET.API.Application.User; |
| | | /// <summary> |
| | | /// 客户控制 |
| | | /// </summary> |
| | | [ApiDescriptionSettings("FZCAPISYS", Order = 149)] |
| | | public class CustomerService: IDynamicApiController |
| | | { |
| | | private readonly CustomerManagerS _customerManager; |
| | | |
| | | private readonly SysCacheService _sysCacheService; |
| | | private readonly SqlSugarRepository<FBS_ExRole> _fBS_ExRoleRep; |
| | | |
| | | private readonly SqlSugarRepository<FBS_EnterpriseType> _fBS_EnterpriseTypeRep; |
| | | private readonly SqlSugarRepository<FBS_Customer> _fBS_CustomerRep; |
| | | /// <summary> |
| | | /// 用户扩展 |
| | | /// </summary> |
| | | private readonly SqlSugarRepository<FBS_CusExtend> _fBS_CusExtendRep; |
| | | private IMapper _mapper; |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public CustomerService(SysCacheService cacheService, CustomerManagerS managerS,SqlSugarRepository<FBS_Customer> repository |
| | | , SqlSugarRepository<FBS_EnterpriseType> fbsenrep,IMapper mapper ) |
| | | { |
| | | _sysCacheService= cacheService; |
| | | _customerManager = managerS; |
| | | _fBS_CustomerRep = repository; |
| | | _fBS_EnterpriseTypeRep = fbsenrep; |
| | | _mapper = mapper; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 用户注册 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [AllowAnonymous] |
| | | [HttpPost] |
| | | public async Task<bool> CustomerRegistration(CustomerRDto param ) |
| | | { |
| | | //_customerManager. |
| | | var ExRole= (await _customerManager.GetExRole()).Where(x => x.Code == param.ExRoleCode).FirstOrDefault(); |
| | | |
| | | if(ExRole==null) |
| | | { |
| | | throw Oops.Oh("请选择一个有效的角色进行注册"); |
| | | } |
| | | |
| | | //已选角色,请选择一个注册角色 |
| | | var data= await _fBS_CustomerRep.AsQueryable().Includes(X => X.CoutomerExRols,y=>y.ExRole).Where(x => x.Account == param.Account).FirstAsync(); |
| | | if (data != null) |
| | | { |
| | | if (data.CoutomerExRols.Any(x => x.ExRole.Code == param.ExRoleCode)) |
| | | { |
| | | throw Oops.Oh("已经注册了该角色请勿重复注册"); |
| | | } |
| | | |
| | | else |
| | | { |
| | | throw Oops.Oh("该用户名重复,如果需要对该用户添加相应角色,请登录任意角色后添加"); |
| | | } |
| | | |
| | | } |
| | | var vcode= _sysCacheService.Get<string>($"{CacheConst.KeyPhoneVerCode}{param.Phone}"); |
| | | if(param.PhoneVCode!="TEST") |
| | | if(vcode!=param.PhoneVCode) |
| | | { |
| | | //手机验证码错误 |
| | | throw Oops.Oh("手机验证码错误,请输入正确的手机验证码"); |
| | | } |
| | | //使用后立即删除 |
| | | _sysCacheService.Remove($"{CacheConst.KeyPhoneVerCode}{param.Phone}"); |
| | | var dd = param.Adapt<FBS_Customer>(); |
| | | dd.RealName = dd.NickName; |
| | | |
| | | dd.Account = dd.Phone; |
| | | dd.Password = ""; |
| | | dd.TenantId = 1300000000001; |
| | | dd.CreateTime = DateTime.Now; |
| | | dd.CreateUserId = 0; |
| | | dd.CreateUserName = dd.NickName; |
| | | dd.CoutomerExRols = new List<FBS_CoutomerExRole>() |
| | | { |
| | | new FBS_CoutomerExRole |
| | | { |
| | | ExRoleId= ExRole?.Id??0 |
| | | |
| | | |
| | | } |
| | | }; |
| | | |
| | | |
| | | |
| | | |
| | | await _fBS_CustomerRep.AsSugarClient().InsertNav(dd).Include(x=>x.CoutomerExRols).ExecuteCommandAsync(); |
| | | |
| | | |
| | | |
| | | return true; |
| | | } |
| | | /// <summary> |
| | | /// 注册登录可选角色 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [AllowAnonymous] |
| | | public async Task<List< ExRoleVM>> GetExRole() |
| | | { |
| | | return await _customerManager.GetExRole(); |
| | | } |
| | | /// <summary> |
| | | /// 获取企业类型 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [AllowAnonymous] |
| | | public async Task<List<EnterpriseTypeVM>> EnterpriseTypes() |
| | | { |
| | | return await _fBS_EnterpriseTypeRep.AsQueryable().Select<EnterpriseTypeVM>().ToTreeAsync(x=>x.Child,x=>x.ParentId,null,x=>x.Id); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 注册角色用户资料 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [HttpPost] |
| | | public async Task<bool> CreaterExRolsInformation(CusExtendDto cusExtend ) |
| | | { |
| | | |
| | | var id = App.User.FindFirst(ClaimConst.UserId)?.Value.ToLong() ?? 0; |
| | | if (id == 0) |
| | | { |
| | | throw Oops.Oh("用户凭证错误"); |
| | | |
| | | } |
| | | var user=await _customerManager.GetCustomer(id); |
| | | if(user==null) |
| | | { |
| | | throw Oops.Oh("用户不存在"); |
| | | } |
| | | var rols= await _fBS_ExRoleRep.GetFirstAsync(x => x.Code == cusExtend.TransactionCode && x.Status == StatusEnum.Enable); |
| | | if(rols==null) |
| | | { |
| | | throw Oops.Oh("交易主体不存在"); |
| | | } |
| | | |
| | | if(user.CoutomerExRols.Any(x=>x.ExRole.Code==cusExtend.TransactionCode&& x.HasFlsh==true)) |
| | | { |
| | | throw Oops.Oh("用户已经注册了该主体"); |
| | | } |
| | | |
| | | |
| | | var data= cusExtend.Adapt<FBS_CusExtend>(); |
| | | |
| | | data.steps = CusExtendStep.UNExamine; |
| | | data.CustomerId = id; |
| | | data.CreateTime = DateTime.Now; |
| | | |
| | | data.CreateUserName = user.NickName; |
| | | data.TransactionCode = rols.Code; |
| | | |
| | | |
| | | return await _fBS_CusExtendRep.InsertAsync(data); |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | | /// <summary> |
| | | /// 获取 个人中心数据? |
| | | /// </summary> |
| | | [HttpPost] |
| | | public async Task<CusExtendDto> GetCusExtendInfo() |
| | | { |
| | | var id = App.User.FindFirst(ClaimConst.UserId)?.Value.ToLong() ?? 0; |
| | | if (id == 0) |
| | | { |
| | | throw Oops.Oh("用户凭证错误"); |
| | | |
| | | } |
| | | // |
| | | var typeCode = App.User.FindFirst(ClaimConst.CustomerLogoinType)?.Value ; |
| | | if (typeCode == null) |
| | | { |
| | | throw Oops.Oh("登录交易主体错误"); |
| | | |
| | | } |
| | | var user = await _customerManager.GetCustomer(id); |
| | | if (user == null) |
| | | { |
| | | throw Oops.Oh("用户不存在"); |
| | | } |
| | | var rols = await _fBS_ExRoleRep.GetFirstAsync(x => x.Code == typeCode && x.Status == StatusEnum.Enable); |
| | | if (rols == null) |
| | | { |
| | | throw Oops.Oh("登录交易主体无效"); |
| | | } |
| | | var tab= (await _fBS_CusExtendRep.GetFirstAsync(x => x.CustomerId == id && x.TransactionCode == typeCode)).Adapt<CusExtendDto>(); |
| | | if(tab==null) |
| | | { |
| | | throw Oops.Oh("没有完成信息录入"); |
| | | } |
| | | return tab; |
| | | |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 修改个人中心数据 |
| | | /// </summary> |
| | | [HttpPost] |
| | | public async Task<bool> ChangeCusExtend(CusExtendDto InParam) |
| | | { |
| | | var id = App.User.FindFirst(ClaimConst.UserId)?.Value.ToLong() ?? 0; |
| | | if (id == 0) |
| | | { |
| | | throw Oops.Oh("用户凭证错误"); |
| | | |
| | | } |
| | | // |
| | | var typeCode = App.User.FindFirst(ClaimConst.CustomerLogoinType)?.Value; |
| | | if (typeCode == null) |
| | | { |
| | | throw Oops.Oh("登录交易主体错误"); |
| | | |
| | | } |
| | | var user = await _customerManager.GetCustomer(id); |
| | | if (user == null) |
| | | { |
| | | throw Oops.Oh("用户不存在"); |
| | | } |
| | | var rols = await _fBS_ExRoleRep.GetFirstAsync(x => x.Code == typeCode && x.Status == StatusEnum.Enable); |
| | | if (rols == null) |
| | | { |
| | | throw Oops.Oh("登录交易主体无效"); |
| | | } |
| | | var tab = await _fBS_CusExtendRep.GetFirstAsync(x => x.CustomerId == id && x.TransactionCode == typeCode); |
| | | if (tab == null) |
| | | { |
| | | throw Oops.Oh("没有完成信息录入"); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | //法人 |
| | | if (tab.LegalRepresentativeIdCard != InParam.LegalRepresentativeIdCard) |
| | | { |
| | | tab.LegalRepresentativeIdCard = InParam.LegalRepresentativeIdCard; |
| | | tab.LegalRepresentativeIdNumber = InParam.LegalRepresentativeIdNumber; |
| | | tab.LegalRepresentativeName = InParam.LegalRepresentativeName; |
| | | tab.LegalRepresentativePhone = InParam.LegalRepresentativePhone; |
| | | //重新审核? |
| | | tab.steps = CusExtendStep.Change; |
| | | } |
| | | |
| | | |
| | | //企业信息 |
| | | if (tab.BusinessLicense != InParam.BusinessLicense) |
| | | { |
| | | tab.EstablishmentTime = tab.EstablishmentTime; |
| | | tab.RegisteredCapital = tab.RegisteredCapital; |
| | | tab.Residence = tab.Residence; |
| | | tab.MainBusiness = InParam.MainBusiness; |
| | | tab.EnterpriseType = InParam.EnterpriseType; |
| | | tab.EnterpriseName = InParam.EnterpriseName; |
| | | tab.BusinessLicense = InParam.BusinessLicense; |
| | | //重新审核? |
| | | tab.steps = CusExtendStep.Change; |
| | | } |
| | | |
| | | |
| | | //联系电话 |
| | | tab.EnterprisePhone = InParam.EnterprisePhone; |
| | | tab.EnterpriseEmail = InParam.EnterpriseEmail; |
| | | //银行是否需要修改 |
| | | tab.BankAccount = InParam.BankAccount; |
| | | tab.BankName = InParam.BankName; |
| | | |
| | | // 经办人 |
| | | if (tab.OperatorIdCard != InParam.OperatorIdCard) |
| | | { |
| | | tab.OperatorIdCard = InParam.OperatorIdCard; |
| | | |
| | | tab.OperatorIdNumber = InParam.OperatorIdNumber; |
| | | tab.OperatorName = InParam.OperatorName; |
| | | tab.OperatorPhone = InParam.OperatorPhone; |
| | | } |
| | | |
| | | return await _fBS_CusExtendRep.UpdateAsync(tab); |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | } |