示例#1
0
            public override async Task <int> Handle(AdminRoleUpdateCommand request, CancellationToken cancellationToken)
            {
                var entity = await db.Context.AdminAuthRole.FirstOrDefaultAsync(c => c.Id == request.Id, cancellationToken);

                if (entity == null)
                {
                    return(0);
                }

                entity = mapper.Map(request, entity);

                //先清空导航集合,确保没有冗余信息
                await db.DeleteAsync <AdminRoleMenuEntity>(c => c.RoleId == entity.Id);

                //保存关联导航
                if (request.MenuIds != null && request.MenuIds.Length > 0)
                {
                    entity.RoleMenus = Array.ConvertAll(request.MenuIds, key => new AdminRoleMenuEntity
                    {
                        RoleId = entity.Id,
                        MenuId = key
                    });
                }

                var res = db.Update(entity);

                if (res > 0)
                {
                    await bus.PublishEvent(new UpdateEvent(entity.Id, entity), cancellationToken);

                    return(res);
                }
                return(res);
            }
示例#2
0
            public override async Task <AdminUserDto> Handle(AdminUserLoginCommand request, CancellationToken cancellationToken)
            {
                var user = default(AdminUserEntity);

                request.Password = Encrypt.Md5By32(request.Password);

                var loginWay = "";

                if (!Valid.IsMobileNumberSimple(request.Account))
                {
                    user = await db.Context.AdminUser.Where(c => c.UserName.Equals(request.Account)).FirstOrDefaultAsync();

                    if (user == null)
                    {
                        Failure.Error("账号不存在");
                    }

                    loginWay = "Mobile";
                }
                else
                {
                    user = await db.Context.AdminUser.Where(c => c.Mobile.Equals(request.Account)).FirstOrDefaultAsync();

                    if (user == null)
                    {
                        Failure.Error("手机号码不存在");
                    }

                    loginWay = "UserName";
                }

                if (!user.Password.Equals(request.Password))
                {
                    Failure.Error("密码错误");
                }
                if (user.Status != Status.Show)
                {
                    Failure.Error("您的帐号禁止登录,请与管理员联系!");
                }


                user.LoginCount   += 1;
                user.LoginLastTime = DateTime.Now;
                user.LoginLastIp   = Web.IP;

                user.LoginRecords.Add(new LoginRecordEntity
                {
                    AdminId   = user.Id,
                    LoginIp   = user.LoginLastIp,
                    LoginTime = user.LoginLastTime,
                    LoginWay  = loginWay
                });

                db.Update(user);

                return(mapper.Map <AdminUserDto>(user));
            }
        public async Task <int> UpdateAsync(AdminUserUpdateInfoCommand request, CancellationToken cancellationToken)
        {
            var entity = await db.Context.AdminUser.FirstOrDefaultAsync(c => c.Id == request.Id, cancellationToken);

            if (entity == null)
            {
                return(0);
            }

            entity = mapper.Map(request, entity);

            var res = db.Update(entity);

            if (res > 0)
            {
                return(res);
            }
            return(res);
        }
示例#4
0
        public async Task <Result <int> > UpdateUserAsync([Required][FromBody] AdminUserUpdateInfoCommand request, CancellationToken cancellationToken = default)
        {
            var entity = await db.Context.AdminUser.FirstOrDefaultAsync(c => c.Id == request.Id, cancellationToken);

            if (entity == null)
            {
                return(RestFull.Fail(data: 0));
            }

            entity = mapper.Map(request, entity);

            var res = db.Update(entity);

            if (res > 0)
            {
                return(RestFull.Success(data: res));
            }
            else
            {
                return(RestFull.Fail(data: res));
            }
        }
示例#5
0
            public override async Task <int> Handle(AdminUserUpdateCommand request, CancellationToken cancellationToken)
            {
                var entity = await db.Context.AdminUser.Where(c => c.Id == request.Id).FirstOrDefaultAsync(cancellationToken);

                if (entity == null)
                {
                    return(0);
                }

                entity = mapper.Map(request, entity);

                var res = db.Update(entity);

                if (res > 0)
                {
                    await bus.PublishEvent(new UpdateEvent(entity.Id, entity), cancellationToken);
                }

                return(res);
            }
示例#6
0
        public async Task <(string, string)> LoginAsync(AdminUserLoginCommand request, CancellationToken cancellationToken = default)
        {
            var user = default(AdminUserEntity);

            request.Password = Encrypt.Md5By32(request.Password);

            var loginWay = "";

            if (!Valid.IsMobileNumberSimple(request.Account))
            {
                user = await db.Context.AdminUser.Where(c => c.UserName.Equals(request.Account)).FirstOrDefaultAsync(cancellationToken);

                if (user == null)
                {
                    Failure.Error("账号不存在");
                }

                loginWay = "Mobile";
            }
            else
            {
                user = await db.Context.AdminUser.Where(c => c.Mobile.Equals(request.Account)).FirstOrDefaultAsync(cancellationToken);

                if (user == null)
                {
                    Failure.Error("手机号码不存在");
                }

                loginWay = "UserName";
            }

            if (!user.Password.Equals(request.Password))
            {
                Failure.Error("密码错误");
            }
            if (user.Status != Status.Show)
            {
                Failure.Error("您的帐号禁止登录,请与管理员联系!");
            }


            user.LoginCount   += 1;
            user.LoginLastTime = DateTime.Now;
            user.LoginLastIp   = Web.IP;

            user.LoginRecords.Add(new LoginRecordEntity
            {
                AdminId   = user.Id,
                LoginIp   = user.LoginLastIp,
                LoginTime = user.LoginLastTime,
                LoginWay  = loginWay
            });

            db.Update(user);

            // 生成 token
            var accessToken = JWTEncryption.Encrypt(new Dictionary <string, object>
            {
                { userId, user.Id },
                { userName, user.UserName }
            });

            // 生成 刷新token
            var refreshToken = JWTEncryption.GenerateRefreshToken(accessToken);

            // 设置 Swagger 自动登录
            Web.HttpContext.SigninToSwagger(accessToken);
            // 设置刷新 token
            Web.HttpContext.Response.Headers["x-access-token"] = refreshToken;

            return(accessToken, refreshToken);
        }