From 7c6b0f84ea24adf3b8b258bc1b136cbd88347b36 Mon Sep 17 00:00:00 2001 From: xujun Date: Fri, 7 Aug 2026 15:59:03 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=93=8D=E4=BD=9C=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E6=9F=A5=E8=AF=A2=E6=9D=A1=E4=BB=B6=EF=BC=8C=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E7=99=BB=E5=BD=95=E6=97=A5=E5=BF=97=E9=87=87=E9=9B=86?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/sys/auth/filter/AuthFilter.java | 38 +++++++++++++------ .../app/sys/mapper/SysOptLogMapper.java | 4 +- .../model/dto/req/SysOptLogAccountReq.java | 6 +-- .../service/impl/SysOptLogServiceImpl.java | 23 ++--------- .../main/resources/mapper/SysOptLogMapper.xml | 8 ++-- 5 files changed, 39 insertions(+), 40 deletions(-) diff --git a/xtools-app-sys/xtools-app-sys-auth/src/main/java/xtools/app/sys/auth/filter/AuthFilter.java b/xtools-app-sys/xtools-app-sys-auth/src/main/java/xtools/app/sys/auth/filter/AuthFilter.java index 4f8e327..9098f42 100644 --- a/xtools-app-sys/xtools-app-sys-auth/src/main/java/xtools/app/sys/auth/filter/AuthFilter.java +++ b/xtools-app-sys/xtools-app-sys-auth/src/main/java/xtools/app/sys/auth/filter/AuthFilter.java @@ -40,6 +40,7 @@ import java.util.HashSet; import java.util.Objects; import java.util.Set; +import static xtools.base.config.Constants.CP_LINE; import static xtools.base.config.Constants.CP_NUM1; import static xtools.base.config.Constants.CP_NUM200; @@ -193,18 +194,8 @@ public class AuthFilter extends BaseFilter implements Ordered, BootCommonConstan // 校验登录白名单 if (checkLoginWhiteList(uri)) { filterChain.doFilter(request, response); - // 记录登录日志 - if (LOGIN_URI.contains(uri)) { - LoginUserDto loginUser = AuthUtils.getDefNull(); - if (loginUser == null) { - log.setTitle("系统登录-密码登录失败"); - } else { - log.setAccountId(loginUser.getId()); - log.setAccount(loginUser.getAccount()); - log.setTitle("系统登录-密码登录成功"); - } - saveOptLog(log); - } + // 保存登录日志 + saveLoginLog(uri, log); return; } @@ -244,6 +235,29 @@ public class AuthFilter extends BaseFilter implements Ordered, BootCommonConstan saveOptLog(log); } + /** + * 保存登录日志 + * + * @param uri 访问uri + * @param log 日志 + */ + private void saveLoginLog(String uri, OptLogDto log) { + if (!LOGIN_URI.contains(uri)) { + return; + } + LoginUserDto loginUser = AuthUtils.getDefNull(); + if (loginUser == null) { + log.setAccountId(0L); + log.setAccount(CP_LINE); + log.setTitle("系统登录-登录失败"); + } else { + log.setAccountId(loginUser.getId()); + log.setAccount(loginUser.getAccount()); + log.setTitle("系统登录-登录成功"); + } + saveOptLog(log); + } + /** * 保存操作日志 * diff --git a/xtools-app-sys/xtools-app-sys-biz/src/main/java/xtools/app/sys/mapper/SysOptLogMapper.java b/xtools-app-sys/xtools-app-sys-biz/src/main/java/xtools/app/sys/mapper/SysOptLogMapper.java index 443eca2..7102809 100644 --- a/xtools-app-sys/xtools-app-sys-biz/src/main/java/xtools/app/sys/mapper/SysOptLogMapper.java +++ b/xtools-app-sys/xtools-app-sys-biz/src/main/java/xtools/app/sys/mapper/SysOptLogMapper.java @@ -37,13 +37,13 @@ public interface SysOptLogMapper extends BaseMapper { /** * 获取该账号的操作日志 * - * @param accountId 账号ID + * @param account 账号 * @param startTime 开始时间(包含) * @param endTime 结束时间(包含) * @return 操作日志 */ List getOptCount( - @Param("accountId") Long accountId, + @Param("account") String account, @Param("startTime") Instant startTime, @Param("endTime") Instant endTime ); diff --git a/xtools-app-sys/xtools-app-sys-biz/src/main/java/xtools/app/sys/model/dto/req/SysOptLogAccountReq.java b/xtools-app-sys/xtools-app-sys-biz/src/main/java/xtools/app/sys/model/dto/req/SysOptLogAccountReq.java index 8d3aae3..6e23210 100644 --- a/xtools-app-sys/xtools-app-sys-biz/src/main/java/xtools/app/sys/model/dto/req/SysOptLogAccountReq.java +++ b/xtools-app-sys/xtools-app-sys-biz/src/main/java/xtools/app/sys/model/dto/req/SysOptLogAccountReq.java @@ -24,10 +24,10 @@ import java.time.Instant; public class SysOptLogAccountReq implements Serializable { /** - * 账号ID + * 账号 */ - @Schema(description = "账号ID") - private Long accountId; + @Schema(description = "账号") + private String account; /** * 创建时间范围[开始时间(包含),结束时间(包含)],不能为空且需同时包含开始,结束时间 diff --git a/xtools-app-sys/xtools-app-sys-biz/src/main/java/xtools/app/sys/service/impl/SysOptLogServiceImpl.java b/xtools-app-sys/xtools-app-sys-biz/src/main/java/xtools/app/sys/service/impl/SysOptLogServiceImpl.java index 6c62eff..466d6d7 100644 --- a/xtools-app-sys/xtools-app-sys-biz/src/main/java/xtools/app/sys/service/impl/SysOptLogServiceImpl.java +++ b/xtools-app-sys/xtools-app-sys-biz/src/main/java/xtools/app/sys/service/impl/SysOptLogServiceImpl.java @@ -247,32 +247,17 @@ public class SysOptLogServiceImpl implements SysOptLogService { if (startTime.isAfter(endTime)) { throw new BizWarning("开始时间不能大于结束时间"); } - Long accountId = req.getAccountId(); - if (Objects.isNull(accountId)) { + String account = req.getAccount(); + if (StringUtils.isBlank(account)) { throw new BizWarning("账号ID不能为空"); } // 获取该账号的操作日志 - List list = sysOptLogBaseService.getBaseMapper().getOptCount(accountId, startTime, endTime); + List list = sysOptLogBaseService.getBaseMapper().getOptCount(account, startTime, endTime); SysOptLogTitleTreeResp root = buildOptTree(list); - root.setTitle(getAccount(accountId)); + root.setTitle(account); return Result.ok(root); } - /** - * 查询账号名称 - * - * @param accountId 账号ID - * @return 账号名称 - */ - private String getAccount(Long accountId) { - LambdaQueryWrapper query = new LambdaQueryWrapper<>(); - query.select(SysOptLog::getAccount); - query.eq(SysOptLog::getAccountId, accountId); - query.last("LIMIT 1"); - SysOptLog data = sysOptLogBaseService.getOne(query); - return Objects.isNull(data) ? null : data.getAccount(); - } - /** * 构建操作统计树 * diff --git a/xtools-app-sys/xtools-app-sys-biz/src/main/resources/mapper/SysOptLogMapper.xml b/xtools-app-sys/xtools-app-sys-biz/src/main/resources/mapper/SysOptLogMapper.xml index d12ec38..1109496 100644 --- a/xtools-app-sys/xtools-app-sys-biz/src/main/resources/mapper/SysOptLogMapper.xml +++ b/xtools-app-sys/xtools-app-sys-biz/src/main/resources/mapper/SysOptLogMapper.xml @@ -4,12 +4,12 @@ @@ -18,7 +18,7 @@ SELECT title, COUNT(*) AS `count` FROM sys_opt_log - WHERE account_id = #{accountId} + WHERE account = #{account} AND gmt_create BETWEEN #{startTime} AND #{endTime} GROUP BY title