// 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; /// /// 客户控制 /// [ApiDescriptionSettings("FZCAPISYS", Order = 149)] public class CustomerService: IDynamicApiController { private readonly CustomerManagerS _customerManager; private readonly SysCacheService _sysCacheService; private readonly SqlSugarRepository _fBS_ExRoleRep; private readonly SqlSugarRepository _fBS_EnterpriseTypeRep; private readonly SqlSugarRepository _fBS_CustomerRep; /// /// 用户扩展 /// private readonly SqlSugarRepository _fBS_CusExtendRep; private IMapper _mapper; /// /// /// public CustomerService(SysCacheService cacheService, CustomerManagerS managerS,SqlSugarRepository repository , SqlSugarRepository fbsenrep,IMapper mapper,SqlSugarRepository exroles , SqlSugarRepository cusrep) { _sysCacheService= cacheService; _customerManager = managerS; _fBS_CustomerRep = repository; _fBS_EnterpriseTypeRep = fbsenrep; _fBS_ExRoleRep = exroles; _fBS_CusExtendRep = cusrep; _mapper = mapper; } /// /// 用户注册 /// /// [AllowAnonymous] [HttpPost] public async Task 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($"{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(); 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() { new FBS_CoutomerExRole { ExRoleId= ExRole?.Id??0 } }; await _fBS_CustomerRep.AsSugarClient().InsertNav(dd).Include(x=>x.CoutomerExRols).ExecuteCommandAsync(); return true; } /// /// 注册登录可选角色 /// /// [AllowAnonymous] public async Task> GetExRole() { return await _customerManager.GetExRole(); } /// /// 获取企业类型 /// /// [AllowAnonymous] public async Task> EnterpriseTypes() { return await _fBS_EnterpriseTypeRep.AsQueryable().Select().ToTreeAsync(x=>x.Child,x=>x.ParentId,null,x=>x.Id); } /// /// 注册角色用户资料 /// /// [HttpPost] public async Task 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)==true) { throw Oops.Oh("用户已经注册了该主体"); } var data= cusExtend.Adapt(); 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); } /// /// 获取 个人中心数据? /// [HttpPost] public async Task 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(); if(tab==null) { throw Oops.Oh("没有完成信息录入"); } return tab; } /// /// 修改个人中心数据 /// [HttpPost] public async Task 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); } }