From bcdbd7ec3a6c6072972dd1b9a64760794fde1261 Mon Sep 17 00:00:00 2001 From: AprilWind <2100166581@qq.com> Date: Wed, 18 Mar 2026 13:30:57 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E8=BF=98=E5=8E=9F=E5=9C=A8=E7=BA=BF?= =?UTF-8?q?=E6=97=A5=E5=BF=97=E8=A7=A3=E9=94=81=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../monitor/SysLoginInfoController.java | 25 +++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/monitor/SysLoginInfoController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/monitor/SysLoginInfoController.java index 09df7635c..2db084ba9 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/monitor/SysLoginInfoController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/monitor/SysLoginInfoController.java @@ -4,12 +4,15 @@ import cn.dev33.satoken.annotation.SaCheckPermission; import com.baomidou.lock.annotation.Lock4j; import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; -import org.dromara.common.core.domain.PageResult; +import org.dromara.common.core.constant.CacheConstants; import org.dromara.common.core.domain.R; import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.common.redis.annotation.RepeatSubmit; import org.dromara.common.log.annotation.Log; import org.dromara.common.log.enums.BusinessType; import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.PageResult; +import org.dromara.common.redis.utils.RedisUtils; import org.dromara.common.web.core.BaseController; import org.dromara.system.domain.bo.SysLoginInfoBo; import org.dromara.system.domain.vo.SysLoginInfoVo; @@ -49,7 +52,7 @@ public class SysLoginInfoController extends BaseController { * 导出系统访问记录列表。 * * @param loginInfo 查询条件 - * @param response HTTP 响应 + * @param response HTTP 响应 */ @Log(title = "登录日志", businessType = BusinessType.EXPORT) @SaCheckPermission("monitor:logininfo:export") @@ -86,4 +89,22 @@ public class SysLoginInfoController extends BaseController { return R.ok(); } + /** + * 清除指定用户的登录失败锁定状态。 + * + * @param userName 用户名 + * @return 操作结果 + */ + @SaCheckPermission("monitor:logininfo:unlock") + @Log(title = "账户解锁", businessType = BusinessType.OTHER) + @RepeatSubmit() + @GetMapping("/unlock/{userName}") + public R unlock(@PathVariable("userName") String userName) { + String loginName = CacheConstants.PWD_ERR_CNT_KEY + userName; + if (RedisUtils.hasKey(loginName)) { + RedisUtils.deleteObject(loginName); + } + return R.ok(); + } + }