From 91bebd62f70a33c20a0a8880cfc0b2e99a9cc487 Mon Sep 17 00:00:00 2001 From: sunpengfei <i@angelzzz.com> Date: 星期一, 11 八月 2025 14:16:00 +0800 Subject: [PATCH] feat:开发 --- FlexJobApi.UserServer.Application/Auths/Commands/LoginCommandHandler.cs | 62 ++++++++++++++++++++++-------- 1 files changed, 45 insertions(+), 17 deletions(-) diff --git a/FlexJobApi.UserServer.Application/Auths/Commands/LoginCommandHandler.cs b/FlexJobApi.UserServer.Application/Auths/Commands/LoginCommandHandler.cs index 71a666a..6319fcd 100644 --- a/FlexJobApi.UserServer.Application/Auths/Commands/LoginCommandHandler.cs +++ b/FlexJobApi.UserServer.Application/Auths/Commands/LoginCommandHandler.cs @@ -26,7 +26,8 @@ IRequestHandler<SmsLoginCommand, LoginCommandCallback>, IRequestHandler<WxmpLoginCommand, LoginCommandCallback>, IRequestHandler<BindWxmpUserInfoCommand, LoginCommandCallback>, - IRequestHandler<BindPhoneNumberCommand, bool> + IRequestHandler<ChangePhoneNumberCommand, bool>, + IRequestHandler<RegisterPersonalUserCommand, bool> { private readonly IRepository<User> rep = rep; private readonly SmsUtils smsUtils = smsUtils; @@ -68,19 +69,6 @@ var user = await rep.AsQueryable().AsNoTracking() .Where(it => it.UserName == request.PhoneNumber && it.Type == request.Type) .FirstOrDefaultAsync(cancellationToken); - if (user == null && request.Type == EnumUserType.Personal) - { - user = new User - { - Type = request.Type, - UserName = request.PhoneNumber, - PhoneNumber = request.PhoneNumber, - IsCheckPhoneNumber = true, - Level = 1, - Status = EnumUserStatus.Normal - }; - await rep.InsertAsync(user); - } if (user == null) throw Oops.Oh(EnumUserErrorCodeType.u1000); if (user.Status == EnumUserStatus.Disabled) @@ -120,24 +108,30 @@ } /// <summary> - /// 缁戝畾鎵嬫満鍙� + /// 鏇存崲鎵嬫満鍙� /// </summary> /// <param name="request"></param> /// <param name="cancellationToken"></param> /// <returns></returns> - public async Task<bool> Handle(BindPhoneNumberCommand request, CancellationToken cancellationToken) + public async Task<bool> Handle(ChangePhoneNumberCommand request, CancellationToken cancellationToken) { await smsUtils.CheckVerifyCode(new CheckVerifyCodeModel { PhoneNumber = request.PhoneNumber, VerifyCode = request.VerifyCode, - TemplateCode = EnumSmsTemplateCode.LoginOrRegister + TemplateCode = EnumSmsTemplateCode.UpdateUserPhoneNumber }); var logier = JwtUtils.GetCurrentLogier(); var user = await rep.AsQueryable() .FirstOrDefaultAsync(it => it.Id == logier.Id); if (user == null) throw Oops.Oh(EnumErrorCodeType.s404, "褰撳墠璐﹀彿涓嶅瓨鍦�"); + + var exist = await rep.AsQueryable() + .Where(it => it.Type == logier.Type && it.PhoneNumber == request.PhoneNumber && it.Id != user.Id) + .AnyAsync(cancellationToken); + if (exist) throw Oops.Oh(EnumUserErrorCodeType.u1010); + user.UserName = request.PhoneNumber; user.PhoneNumber = request.PhoneNumber; user.IsCheckPhoneNumber = true; @@ -216,6 +210,39 @@ } /// <summary> + /// 娉ㄥ唽涓汉璐﹀彿 + /// </summary> + /// <param name="request"></param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + public async Task<bool> Handle(RegisterPersonalUserCommand request, CancellationToken cancellationToken) + { + await smsUtils.CheckVerifyCode(new CheckVerifyCodeModel + { + PhoneNumber = request.PhoneNumber, + VerifyCode = request.VerifyCode, + TemplateCode = EnumSmsTemplateCode.LoginOrRegister + }); + var user = await rep.AsQueryable() + .FirstOrDefaultAsync(it => it.Type == EnumUserType.Personal && it.UserName == request.PhoneNumber); + if (user != null) + throw Oops.Oh(EnumUserErrorCodeType.u1010); + + user = new User + { + Type = EnumUserType.Personal, + UserName = request.PhoneNumber, + PhoneNumber = request.PhoneNumber, + IsCheckPhoneNumber = true, + Level = 1, + Status = EnumUserStatus.Normal + }; + await rep.InsertAsync(user); + + return true; + } + + /// <summary> /// 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛 /// </summary> /// <param name="user"></param> @@ -242,6 +269,7 @@ Id = logier.Id, AccessToken = logier.AccessToken, RefreshToken = logier.RefreshToken, + IsBindPhoneNumber = logier.PhoneNumber.IsNotNull() }; } } -- Gitblit v1.9.1