From 2d8739b04f86ab5e73ec7b0d3152e702a90a450b Mon Sep 17 00:00:00 2001
From: 移动系统liao <liaoxujun@qq.com>
Date: 星期一, 14 七月 2025 16:34:49 +0800
Subject: [PATCH] 修改用户扩展资料

---
 Admin.NET/FZCTB.NET.API.Application/User/CustomerService.cs |  289 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 285 insertions(+), 4 deletions(-)

diff --git a/Admin.NET/FZCTB.NET.API.Application/User/CustomerService.cs b/Admin.NET/FZCTB.NET.API.Application/User/CustomerService.cs
index baef9bb..d25ca52 100644
--- a/Admin.NET/FZCTB.NET.API.Application/User/CustomerService.cs
+++ b/Admin.NET/FZCTB.NET.API.Application/User/CustomerService.cs
@@ -4,44 +4,325 @@
 //
 // 涓嶅緱鍒╃敤鏈」鐩粠浜嬪嵄瀹冲浗瀹跺畨鍏ㄣ�佹壈涔辩ぞ浼氱З搴忋�佷镜鐘粬浜哄悎娉曟潈鐩婄瓑娉曞緥娉曡绂佹鐨勬椿鍔紒浠讳綍鍩轰簬鏈」鐩簩娆″紑鍙戣�屼骇鐢熺殑涓�鍒囨硶寰嬬籂绾峰拰璐d换锛屾垜浠笉鎵挎媴浠讳綍璐d换锛�
 
+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)
+    public CustomerService(SysCacheService cacheService, CustomerManagerS managerS,SqlSugarRepository<FBS_Customer>  repository
+        , SqlSugarRepository<FBS_EnterpriseType> fbsenrep,IMapper mapper,SqlSugarRepository<FBS_ExRole> exroles , SqlSugarRepository<FBS_CusExtend> cusrep)
     {
         _sysCacheService= cacheService;
          _customerManager = managerS;
+        _fBS_CustomerRep = repository;
+        _fBS_EnterpriseTypeRep = fbsenrep;
+        _fBS_ExRoleRep = exroles;
+        _fBS_CusExtendRep = cusrep;
+        _mapper = mapper;
     }
 
     /// <summary>
     /// 鐢ㄦ埛娉ㄥ唽
     /// </summary>
     /// <returns></returns>
-    public async Task<bool>  CustomerRegistration(CustomerDto param )
+    [AllowAnonymous]
+    [HttpPost]
+    public async Task<bool>  CustomerRegistration(CustomerRDto param )
     {
         //_customerManager.
-         await Task.CompletedTask;
+        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)==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);
+
+    }
+
+
 
 
 }

--
Gitblit v1.9.1