sunpengfei
2025-08-08 32288af3e5f12bc48d8360114c872fde5d9ff4a8
FlexJobApi.UserServer.Application/Auths/Commands/PasswordLoginCommandHandler.cs
File was renamed from FlexJobApi.User.Application/Auths/Commands/PasswordLoginCommandHandler.cs
@@ -11,52 +11,53 @@
using System.Text;
using System.Threading.Tasks;
namespace FlexJobApi.User.Application
namespace FlexJobApi.UserServer.Application
{
    /// <summary>
    /// 密码登录
    /// </summary>
    public class PasswordLoginCommandHandler(
        IRepository<UserAuth> userAuthRep,
        IRepository<UserInfo> userInfoRep)
        IRepository<User> userInfoRep)
        : IRequestHandler<PasswordLoginCommand, PasswordLoginCommandCallback>
    {
        private readonly IRepository<UserAuth> userAuthRep = userAuthRep;
        private readonly IRepository<UserInfo> userInfoRep = userInfoRep;
        private readonly IRepository<User> userInfoRep = userInfoRep;
        /// <inheritdoc/>
        public async Task<PasswordLoginCommandCallback> Handle(PasswordLoginCommand request, CancellationToken cancellationToken)
        {
            var userInfo = await userInfoRep.AsQueryable().AsNoTracking()
                .Include(it => it.UserAuth)
                .Where(it => it.UserAuth.UserName == request.UserName && it.Type == request.Type)
            var user = await userInfoRep.AsQueryable().AsNoTracking()
                .Where(it => it.UserName == request.UserName && it.Type == request.Type)
                .Select(it => new
                {
                    it.Id,
                    it.Avatar,
                    it.Level,
                    it.EnterpriseId,
                    it.UserAuth.Name,
                    it.UserAuth.UserName,
                    it.UserAuth.PhoneNumber,
                    it.UserAuth.Password
                    it.Name,
                    it.UserName,
                    it.PhoneNumber,
                    it.Password,
                    it.Status
                })
                .FirstOrDefaultAsync(cancellationToken);
            if (userInfo == null
                || !PBKDF2Encryption.Compare(request.Password, userInfo.Password))
            if (user == null
                || !PBKDF2Encryption.Compare(request.Password, user.Password))
                throw Oops.Oh(EnumUserErrorCodeType.u1000);
            if (user.Status == EnumUserStatus.Disabled)
                throw Oops.Oh(EnumUserErrorCodeType.u1001);
            var logier = new CurrentLogier
            {
                UserInfoId = userInfo.Id,
                Avatar = userInfo.Avatar,
                Name = userInfo.Name,
                UserName = userInfo.UserName,
                PhoneNumber = userInfo.PhoneNumber,
                Level = userInfo.Level,
                Id = user.Id,
                Avatar = user.Avatar,
                Name = user.Name,
                UserName = user.UserName,
                PhoneNumber = user.PhoneNumber,
                Level = user.Level,
                Type = request.Type,
                ClientType = request.ClientType,
                EnterpriseId = userInfo.EnterpriseId,
                EnterpriseId = user.EnterpriseId,
            };
            JwtUtils.GenerateToken(logier);