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); }
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); }
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)); } }
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); }
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); }