From ad64f9d240fb054856afe4ab9523062b2bc079b9 Mon Sep 17 00:00:00 2001 From: 移动系统liao <liaoxujun@qq.com> Date: 星期三, 20 八月 2025 10:22:08 +0800 Subject: [PATCH] 完成客户企业资料改造和相关表修改和建立,基础APi建立完成 --- Admin.NET/FZCTB.NET.API.Application/User/CustomerService.cs | 448 +++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 363 insertions(+), 85 deletions(-) diff --git a/Admin.NET/FZCTB.NET.API.Application/User/CustomerService.cs b/Admin.NET/FZCTB.NET.API.Application/User/CustomerService.cs index f157c21..d641f88 100644 --- a/Admin.NET/FZCTB.NET.API.Application/User/CustomerService.cs +++ b/Admin.NET/FZCTB.NET.API.Application/User/CustomerService.cs @@ -6,15 +6,21 @@ using Admin.NET.Core; using Admin.NET.Core.Service; +using Aop.Api.Domain; using Dm.util; using Furion; +using Furion.DependencyInjection; using Furion.DynamicApiController; using Furion.FriendlyException; +using FZCTB.NET.API.Application.Auth; +using FZCTB.NET.API.Application.Auth.DTO; using FZCTB.NET.API.Application.User.DTO; +using FZCZTB.Net.CustomerSYSTem; using FZCZTB.NET.MD.ConfigMd; using FZCZTB.NET.MD.CutomerMd; using FZCZTB.NET.MD.CutomerMd.Extend; using FZCZTB.NET.SYSService.CustomerSYS; +using Lazy.Captcha.Core.Generator.Image.Gif; using Mapster; using MapsterMapper; using Microsoft.AspNetCore.Authorization; @@ -34,7 +40,7 @@ /// 瀹㈡埛鎺у埗 /// </summary> [ApiDescriptionSettings("FZCAPISYS", Order = 149)] -public class CustomerService: IDynamicApiController +public class CustomerService: IDynamicApiController,IScoped { private readonly CustomerManagerS _customerManager; @@ -43,6 +49,8 @@ private readonly SqlSugarRepository<FBS_CoutomerExRole> _fBS_CustomerExRoleRep; private readonly SqlSugarRepository<FBS_EnterpriseType> _fBS_EnterpriseTypeRep; private readonly SqlSugarRepository<FBS_Customer> _fBS_CustomerRep; + private readonly SqlSugarRepository<FBS_CustormerUsers> _fBS_CustormerUsersRep; + /// <summary> /// 鐢ㄦ埛鎵╁睍 /// </summary> @@ -53,9 +61,12 @@ /// /// </summary> public CustomerService(SysCacheService cacheService, CustomerManagerS managerS,SqlSugarRepository<FBS_Customer> repository - , SqlSugarRepository<FBS_EnterpriseType> fbsenrep,IMapper mapper,SqlSugarRepository<FBS_ExRole> exroles , + , SqlSugarRepository<FBS_EnterpriseType> fbsenrep,IMapper mapper, + SqlSugarRepository<FBS_ExRole> exroles , SqlSugarRepository<FBS_CusExtend> cusrep, - SqlSugarRepository<FBS_CoutomerExRole> cexrrep) + SqlSugarRepository<FBS_CoutomerExRole> cexrrep + , SqlSugarRepository<FBS_CustormerUsers> cusUser + ) { _sysCacheService= cacheService; _customerManager = managerS; @@ -65,6 +76,8 @@ _fBS_CusExtendRep = cusrep; _mapper = mapper; _fBS_CustomerExRoleRep = cexrrep; + _fBS_CustormerUsersRep = cusUser; + } /// <summary> @@ -73,7 +86,7 @@ /// <returns></returns> [AllowAnonymous] [HttpPost] - public async Task<bool> CustomerRegistration(CustomerRDto param ) + public async Task<string> CustomerRegistration(FBS_CusExtendVm param ) { //_customerManager. var ExRole= (await _customerManager.GetExRole()).Where(x => x.Code == param.ExRoleCode).FirstOrDefault(); @@ -83,68 +96,98 @@ 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("宸茬粡娉ㄥ唽浜嗚瑙掕壊璇峰嬁閲嶅娉ㄥ唽"); - } + // //宸查�夎鑹诧紝璇烽�夋嫨涓�涓敞鍐岃鑹� + //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("璇ョ敤鎴峰悕閲嶅锛屽鏋滈渶瑕佸璇ョ敤鎴锋坊鍔犵浉搴旇鑹诧紝璇风櫥褰曚换鎰忚鑹插悗娣诲姞"); - } + // else + // { + // throw Oops.Oh("璇ョ敤鎴峰悕閲嶅锛屽鏋滈渶瑕佸璇ョ敤鎴锋坊鍔犵浉搴旇鑹诧紝璇风櫥褰曚换鎰忚鑹插悗娣诲姞"); + // } - } - var vcode= _sysCacheService.Get<string>($"{CacheConst.KeyPhoneVerCode}{param.Phone}"); + // } + + + var vcode= _sysCacheService.Get<string>($"{CacheConst.KeyPhoneVerCode}{param.OperatorPhone}"); 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; + _sysCacheService.Remove($"{CacheConst.KeyPhoneVerCode}{param.OperatorPhone}"); + + + var cusex = await _fBS_CusExtendRep.GetFirstAsync(x => x.UnifiedSocialCreditCode == param.UnifiedSocialCreditCode); + if(cusex!=null) + { + throw Oops.Oh("璇ヤ紒涓氬凡缁忔敞鍐�"); + } + var dd = param.Adapt<FBS_CusExtend>(); + + dd.TransactionCode = param.ExRoleCode; + dd.CreateTime = DateTime.Now; dd.CreateUserId = 0; - dd.CreateUserName = dd.NickName; - if(dd.CoutomerExRols==null) + dd.CreateUserName = "鐢ㄦ埛娉ㄥ唽"; + await _fBS_CusExtendRep.AsTenant().BeginTranAsync(); + try { - new List<FBS_CoutomerExRole>() - { - new FBS_CoutomerExRole + dd = await _fBS_CusExtendRep.InsertReturnEntityAsync(dd); + + FBS_CoutomerExRole rulse = new FBS_CoutomerExRole { - ExRoleId= ExRole?.Id??0 + CusExtendId = dd.Id, + ExRoleId = ExRole.Id ?? 0, + steps = CusExtendStep.UNExamine - } + }; + await _fBS_CustomerExRoleRep.InsertAsync(rulse); + + FBS_CustormerUsers user = new FBS_CustormerUsers + { + CusExtendId = dd.Id, + PhoneNumber = dd.OperatorPhone, + IsEn = true, + IsManager = true, + JobTitle = param.JobTitle, + Name = dd.OperatorName, + Nickname = param.Nickname, + CreateTime = dd.CreateTime, + CreateUserId = 0, + CreateUserName = "鐢ㄦ埛娉ㄥ唽", + + }; + await _fBS_CustormerUsersRep.InsertAsync(user); + + await _fBS_CusExtendRep.AsTenant().CommitTranAsync(); + + return "娉ㄥ唽鎴愬姛"; + } + catch (Exception) + { + await _fBS_CusExtendRep.AsTenant().RollbackTranAsync(); + throw; }; - } - else - { - dd.CoutomerExRols.add(new FBS_CoutomerExRole - { - ExRoleId = ExRole?.Id ?? 0 - }); - } - await _fBS_CustomerRep.AsSugarClient().InsertNav(dd).Include(x=>x.CoutomerExRols).ExecuteCommandAsync(); + - return true; + } /// <summary> /// 娉ㄥ唽鐧诲綍鍙�夎鑹� @@ -169,8 +212,8 @@ /// 娉ㄥ唽瑙掕壊鐢ㄦ埛璧勬枡 /// </summary> /// <returns></returns> - [HttpPost] - public async Task<bool> CreaterExRolsInformation(CusExtendDto cusExtend ) + [HttpGet] + public async Task<bool> CreaterExRolsInformation(string RuleCode) { var id = App.User.FindFirst(ClaimConst.UserId)?.Value.ToLong() ?? 0; @@ -184,16 +227,16 @@ { throw Oops.Oh("鐢ㄦ埛涓嶅瓨鍦�"); } - - var rols= await _fBS_ExRoleRep.GetFirstAsync(x => x.Code == cusExtend.TransactionCode && x.Status == StatusEnum.Enable); + var data = await _fBS_ExRoleRep.AsQueryable().ToListAsync(); + var rols= await _fBS_ExRoleRep.GetFirstAsync(x => x.Code == RuleCode && x.Status == StatusEnum.Enable); if(rols==null) { throw Oops.Oh("浜ゆ槗涓讳綋涓嶅瓨鍦�"); } - var ExRoles = await _fBS_CustomerExRoleRep.GetListAsync(x => x.CustomerId == id); + var ExRoles = await _fBS_CustomerExRoleRep.GetListAsync(x => x.CusExtendId == user.CusExtendId); if (ExRoles != null) { - if (ExRoles?.Any(x => x.ExRoleId == rols.Id && x.HasFlsh == true) == true) + if (ExRoles?.Any(x => x.ExRoleId == rols.Id ) == true) { throw Oops.Oh("鐢ㄦ埛宸茬粡娉ㄥ唽浜嗚涓讳綋"); } @@ -204,33 +247,14 @@ await _fBS_CustomerExRoleRep.InsertAsync(new FBS_CoutomerExRole { ExRoleId = rols.Id, - CustomerId = id + CusExtendId = user.CusExtendId, + steps= CusExtendStep.UNExamine, }); - var usdata = await _fBS_CusExtendRep.GetFirstAsync(x => x.CustomerId == id&&x.TransactionCode==cusExtend.TransactionCode); - - if (usdata!=null) - { - if (usdata.steps == CusExtendStep.Pass) - { - throw Oops.Oh("鐢ㄦ埛宸茬粡娉ㄥ唽浜嗚涓讳綋"); - } - 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); + return true; @@ -265,12 +289,12 @@ { throw Oops.Oh("鐧诲綍浜ゆ槗涓讳綋鏃犳晥"); } - var tab= (await _fBS_CusExtendRep.GetFirstAsync(x => x.CustomerId == id && x.TransactionCode == typeCode)).Adapt<CusExtendDto>(); - if(tab==null) + + + return await _fBS_CusExtendRep.AsQueryable().Where(x => x.Id == user.CusExtendId).Includes(x => x.ExRoles, y => y.ExRole).Select(x => new CusExtendDto { - throw Oops.Oh("娌℃湁瀹屾垚淇℃伅褰曞叆"); - } - return tab; + ExRoles = x.ExRoles.Adapt<List<FBS_CoutomerExRoleOutput>>() + }, true).FirstAsync(); } @@ -304,14 +328,14 @@ { throw Oops.Oh("鐧诲綍浜ゆ槗涓讳綋鏃犳晥"); } - var tab = await _fBS_CusExtendRep.GetFirstAsync(x => x.CustomerId == id && x.TransactionCode == typeCode); + var tab = await _fBS_CusExtendRep.GetFirstAsync(x => x.Id == user.CusExtendId ); if (tab == null) { throw Oops.Oh("娌℃湁瀹屾垚淇℃伅褰曞叆"); } - - + bool isChangeData = false; + //娉曚汉 @@ -322,7 +346,7 @@ tab.LegalRepresentativeName = InParam.LegalRepresentativeName; tab.LegalRepresentativePhone = InParam.LegalRepresentativePhone; //閲嶆柊瀹℃牳? - tab.steps = CusExtendStep.Change; + isChangeData=true; } @@ -337,16 +361,33 @@ tab.EnterpriseName = InParam.EnterpriseName; tab.BusinessLicense = InParam.BusinessLicense; //閲嶆柊瀹℃牳? - tab.steps = CusExtendStep.Change; + isChangeData = true; } - tab.EnterpriseType = InParam.EnterpriseType; + if (tab.EnterpriseType != InParam.EnterpriseType) + { + tab.EnterpriseType = InParam.EnterpriseType; + + } //鑱旂郴鐢佃瘽 tab.EnterprisePhone = InParam.EnterprisePhone; tab.EnterpriseEmail = InParam.EnterpriseEmail; + + if (tab.BankAccount != InParam.BankAccount) + { + + tab.BankAccount = InParam.BankAccount; + isChangeData = true; + + } + if (tab.BankName != InParam.BankName) + { + tab.BankName = InParam.BankName; + isChangeData = true; + } //閾惰鏄惁闇�瑕佷慨鏀� - tab.BankAccount = InParam.BankAccount; - tab.BankName = InParam.BankName; + //tab.BankAccount = InParam.BankAccount; + //tab.BankName = InParam.BankName; // 缁忓姙浜� if (tab.OperatorIdCard != InParam.OperatorIdCard) @@ -356,14 +397,251 @@ tab.OperatorIdNumber = InParam.OperatorIdNumber; tab.OperatorName = InParam.OperatorName; tab.OperatorPhone = InParam.OperatorPhone; + isChangeData = true; } - - return await _fBS_CusExtendRep.UpdateAsync(tab); + + await _fBS_CusExtendRep.AsTenant().BeginTranAsync(); + try + { + if(!isChangeData) + { + //鏄洿鏀癸紝闇�瑕佹洿璇ユ墍鏈塺oles鐨勫�� + var exrolerep= await _fBS_CustomerExRoleRep.GetListAsync(x=>x.CusExtendId==user.CusExtendId); + foreach (var item in exrolerep) + { + + item.steps = CusExtendStep.Change; + + + } + await _fBS_CustomerExRoleRep.UpdateRangeAsync(exrolerep); + } + + await _fBS_CusExtendRep.UpdateAsync(tab); + await _fBS_CusExtendRep.AsTenant().CommitTranAsync(); + + } + catch (Exception) + { + await _fBS_CusExtendRep.AsTenant().RollbackTranAsync(); + throw; + } + + return true; } + /// <summary> + /// 鑾峰彇璐︽埛鍒楄〃 + /// </summary> + /// <returns></returns> + [HttpGet] + public async Task<List<FBS_CustormerUsersOutput> > GetCustormerUsersList() + { + var id = App.User.FindFirst(ClaimConst.CustomerExId)?.Value.ToLong() ?? 0; + if (id == 0) + { + throw Oops.Oh("鐢ㄦ埛鍑瘉閿欒"); + + } + if (!await isManger()) + throw Oops.Oh("鐢ㄦ埛娌℃湁鏉冮檺"); + return (await _fBS_CustormerUsersRep.GetListAsync(x => x.CusExtendId == id&&x.IsEn==true)).Adapt<List<FBS_CustormerUsersOutput>>(); + } + public FBS_CustormerUsers? ThisUser { get; set; } + /// <summary> + /// 鏂板缓鍛樺伐鏁版嵁 + /// </summary> + /// <returns></returns> + [HttpPost] + public async Task<bool> CreatCustormerUsers(FBS_CustormerUsersVM param) + { + if (!await isManger()) + throw Oops.Oh("鐢ㄦ埛娌℃湁鏉冮檺"); + var cid = App.User.FindFirst(ClaimConst.CustomerExId)?.Value.ToLong() ?? 0; + if (cid == 0) + { + throw Oops.Oh("鐢ㄦ埛鍑瘉閿欒"); + + } + var count = await _fBS_CustormerUsersRep.CountAsync(x=>x.CusExtendId== cid); + if(count>10) + { + throw Oops.Oh("鍚屼竴缁勭粐鏈烘瀯鏈�澶氬彲浠ュ缓绔�10涓敤鎴�"); + } + + var User = await _fBS_CustormerUsersRep.GetFirstAsync(x => x.CusExtendId == cid && x.PhoneNumber == param.PhoneNumber); + if(User!=null) + { + throw Oops.Oh("鍚屼竴瀹跺叕鍙歌处鎴蜂笉鑳藉悓鏃跺嚭鐜扮浉鍚岀殑鐢佃瘽鍙风爜"); + } + + User = param.Adapt<FBS_CustormerUsers>(); + User.CusExtendId = cid; + User.IsManager = false; + User.CreateTime = DateTime.Now; + User.CreateUserName ="浼佷笟鐢ㄦ埛:"+ ThisUser?.Name; + User.CreateUserId = ThisUser?.Id; + return await _fBS_CustormerUsersRep.InsertAsync(User); + + + } + /// <summary> + /// 鏇存敼绠$悊鍛� + /// </summary> + /// <param name="CustormerUserId"> UserList 鐨処D</param> + /// <returns></returns> + [HttpGet] + public async Task<bool> ChangeManager(long CustormerUserId ) + { + if (!await isManger()) + throw Oops.Oh("鐢ㄦ埛娌℃湁鏉冮檺"); + var cid = App.User.FindFirst(ClaimConst.CustomerExId)?.Value.ToLong() ?? 0; + if (cid == 0) + { + throw Oops.Oh("鐢ㄦ埛鍑瘉閿欒"); + + } + var uid = App.User.FindFirst(ClaimConst.UserId)?.Value.ToLong() ?? 0; + if (uid == 0) + { + throw Oops.Oh("鐢ㄦ埛鍑瘉閿欒"); + + } + if(CustormerUserId== uid) + return true; + if (ThisUser==null) + { + + ThisUser = await _fBS_CustormerUsersRep.GetFirstAsync(x => x.Id == uid && x.CusExtendId == cid && x.IsEn == true); + + } + var User = await _fBS_CustormerUsersRep.GetFirstAsync(x =>x.CusExtendId==ThisUser.CusExtendId &&x.Id== CustormerUserId); + if (User != null) + { + throw Oops.Oh("鐢ㄦ埛涓嶅瓨鍦�"); + } + if(User.IsEn==false) + throw Oops.Oh("鏃犳晥鐢ㄦ埛涓嶅彲璁剧疆涓虹鐞嗗憳"); + + User.IsManager = true; + User.UpdateTime = DateTime.Now; + User.UpdateUserName= "浼佷笟鐢ㄦ埛:" + ThisUser?.Name; + User.UpdateUserId = ThisUser.Id; + + //ThisUser.IsManager = false; + //ThisUser.UpdateTime = DateTime.Now; + //ThisUser.UpdateUserName = "浼佷笟鐢ㄦ埛:" + ThisUser?.Name; //涓嶄簰鏂� + //ThisUser.UpdateUserId = ThisUser.Id; + await _fBS_CustormerUsersRep.AsTenant().BeginTranAsync(); + try + { + await _fBS_CustormerUsersRep.UpdateAsync(User); + //await _fBS_CustormerUsersRep.UpdateAsync(ThisUser); //涓嶄簰鏂� + await _fBS_CustormerUsersRep.AsTenant().CommitTranAsync(); + return false; + + } + catch (Exception) + { + await _fBS_CustormerUsersRep.AsTenant().RollbackTranAsync(); + throw; + } + + + } + + /// <summary> + /// 鏇存敼鍛樺伐淇℃伅 + /// </summary> + /// <param name="CustormerUserId"> UserList 鐨処D</param> + /// <returns></returns> + [HttpPost] + public async Task<bool> UpdataCustormerUsers( FBS_CustormerUsersVM Param) + { + if (!await isManger()) + throw Oops.Oh("鐢ㄦ埛娌℃湁鏉冮檺"); + var cid = App.User.FindFirst(ClaimConst.CustomerExId)?.Value.ToLong() ?? 0; + if (cid == 0) + { + throw Oops.Oh("鐢ㄦ埛鍑瘉閿欒"); + + } + var uid = App.User.FindFirst(ClaimConst.UserId)?.Value.ToLong() ?? 0; + if (uid == 0) + { + throw Oops.Oh("鐢ㄦ埛鍑瘉閿欒"); + + } + if(Param.Id==null) + { + throw Oops.Oh("Id閿欒"); + } + if(Param.CusExtendId!=Param.Id) + { + throw Oops.Oh("缁勭粐鏈烘瀯涓嶅悓涓嶅彲淇敼"); + } + + var User = await _fBS_CustormerUsersRep.GetFirstAsync(x => x.CusExtendId == Param.CusExtendId && x.Id == Param.Id); + if (User != null) + { + throw Oops.Oh("鐢ㄦ埛涓嶅瓨鍦�"); + } + User = _mapper.Map(Param, User); + + User.CreateTime = DateTime.Now; + User.CreateUserName = "浼佷笟鐢ㄦ埛:" + ThisUser?.Name; + User.CreateUserId = ThisUser?.Id; + + return await _fBS_CustormerUsersRep.UpdateAsync(User); + + + + } + /// <summary> + /// 鏉冮檺楠岃瘉鏄惁鏄鐞嗗憳 + /// </summary> + /// <returns></returns> + [NonAction] + public async Task< bool> isManger() + { + + if (ThisUser != null) + return ThisUser.IsManager; + //鐢ㄦ埛ID + + var id = App.User.FindFirst(ClaimConst.UserId)?.Value.ToLong() ?? 0; + if (id == 0) + { + throw Oops.Oh("鐢ㄦ埛鍑瘉閿欒"); + + } + //浼佷笟ID + var CExid = App.User.FindFirst(ClaimConst.CustomerExId)?.Value.ToLong() ?? 0; + if (id == 0) + { + throw Oops.Oh("浼佷笟璧勬枡涓嶅尮閰�"); + + } + + + var user= await _fBS_CustormerUsersRep.GetFirstAsync(x => x.Id == id && x.CusExtendId == CExid && x.IsEn == true); + if(user==null) + { + throw Oops.Oh("鐢ㄦ埛涓嶅尮閰�"); + } + ThisUser = user; + if (user.IsManager) + + return true; + + else return false; + + + + } } -- Gitblit v1.9.1