【7.2.3】更新解除冻结功能

pull/30/head
fengshuonan 2022-05-31 14:23:28 +08:00
parent 6e91ba0642
commit 64f9d6d956
4 changed files with 28 additions and 1 deletions

View File

@ -45,6 +45,7 @@ public class LoginRequest extends BaseRequest {
* *
*/ */
@NotBlank(message = "账号不能为空") @NotBlank(message = "账号不能为空")
@NotBlank(message = "账号不能为空", groups = cancelFreeze.class)
@ChineseDescription("账号") @ChineseDescription("账号")
private String account; private String account;
@ -85,4 +86,10 @@ public class LoginRequest extends BaseRequest {
@ChineseDescription("租户编码") @ChineseDescription("租户编码")
private String tenantCode; private String tenantCode;
/**
*
*/
public @interface cancelFreeze {
}
} }

View File

@ -149,4 +149,10 @@ public class SysUserDTO {
@ChineseDescription("是否是超级管理员超级管理员可以拥有所有权限Y-是N-否)") @ChineseDescription("是否是超级管理员超级管理员可以拥有所有权限Y-是N-否)")
private String superAdminFlag; private String superAdminFlag;
/**
* 5
*/
@ChineseDescription("是否密码重试次数过多")
private Boolean loginErrorCountFlag = false;
} }

View File

@ -183,7 +183,7 @@ public class LoginController {
* @date 2022/1/22 16:40 * @date 2022/1/22 16:40
*/ */
@PostResource(name = "取消帐号冻结", path = "/cancelFreeze") @PostResource(name = "取消帐号冻结", path = "/cancelFreeze")
public ResponseData<?> cancelFreeze(@RequestBody LoginRequest loginRequest) { public ResponseData<?> cancelFreeze(@RequestBody @Validated(LoginRequest.cancelFreeze.class) LoginRequest loginRequest) {
authServiceApi.cancelFreeze(loginRequest); authServiceApi.cancelFreeze(loginRequest);
return new SuccessResponseData<>(); return new SuccessResponseData<>();
} }

View File

@ -30,6 +30,7 @@ import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.stylefeng.roses.kernel.auth.api.SessionManagerApi; import cn.stylefeng.roses.kernel.auth.api.SessionManagerApi;
import cn.stylefeng.roses.kernel.auth.api.constants.LoginCacheConstants;
import cn.stylefeng.roses.kernel.auth.api.context.LoginContext; import cn.stylefeng.roses.kernel.auth.api.context.LoginContext;
import cn.stylefeng.roses.kernel.auth.api.enums.DataScopeTypeEnum; import cn.stylefeng.roses.kernel.auth.api.enums.DataScopeTypeEnum;
import cn.stylefeng.roses.kernel.auth.api.exception.enums.AuthExceptionEnum; import cn.stylefeng.roses.kernel.auth.api.exception.enums.AuthExceptionEnum;
@ -149,6 +150,9 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
@Resource @Resource
private ExpandApi expandApi; private ExpandApi expandApi;
@Resource(name = "loginErrorCountCacheApi")
private CacheOperatorApi<Integer> loginErrorCountCacheApi;
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void add(SysUserRequest sysUserRequest) { public void add(SysUserRequest sysUserRequest) {
@ -461,6 +465,16 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
Page<SysUserDTO> userPage = this.baseMapper.findUserPage(PageFactory.defaultPage(), sysUserRequest); Page<SysUserDTO> userPage = this.baseMapper.findUserPage(PageFactory.defaultPage(), sysUserRequest);
// 获取所有被禁用的用户,如果有被禁用的用户,则返回被锁状态
for (SysUserDTO record : userPage.getRecords()) {
if (loginErrorCountCacheApi.contains(record.getAccount())) {
Integer errorCount = loginErrorCountCacheApi.get(record.getAccount());
if (errorCount >= LoginCacheConstants.MAX_ERROR_LOGIN_COUNT) {
record.setLoginErrorCountFlag(true);
}
}
}
return PageResultFactory.createPageResult(userPage); return PageResultFactory.createPageResult(userPage);
} }