From aeb0696f457ca85b62d15ab6586c5779cf5cd97b Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Fri, 31 Jul 2026 16:56:21 +0800
Subject: [PATCH] feat(firewall): 添加访问日志功能
---
src/main/java/cc/mrbird/febs/firewall/service/impl/FirewallRuleServiceImpl.java | 22 ++++++++++++++++++++++
1 files changed, 22 insertions(+), 0 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/firewall/service/impl/FirewallRuleServiceImpl.java b/src/main/java/cc/mrbird/febs/firewall/service/impl/FirewallRuleServiceImpl.java
index bfddd0e..af37bcf 100644
--- a/src/main/java/cc/mrbird/febs/firewall/service/impl/FirewallRuleServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/firewall/service/impl/FirewallRuleServiceImpl.java
@@ -4,9 +4,11 @@
import cc.mrbird.febs.common.entity.QueryRequest;
import cc.mrbird.febs.common.utils.RedisUtils;
import cc.mrbird.febs.firewall.dto.CountryVo;
+import cc.mrbird.febs.firewall.entity.FirewallAccessLog;
import cc.mrbird.febs.firewall.entity.FirewallCountryRule;
import cc.mrbird.febs.firewall.entity.FirewallIpWhite;
import cc.mrbird.febs.firewall.entity.FirewallSite;
+import cc.mrbird.febs.firewall.mapper.FirewallAccessLogMapper;
import cc.mrbird.febs.firewall.mapper.FirewallCountryRuleMapper;
import cc.mrbird.febs.firewall.mapper.FirewallIpWhiteMapper;
import cc.mrbird.febs.firewall.mapper.FirewallSiteMapper;
@@ -38,6 +40,7 @@
private final FirewallCountryRuleMapper countryRuleMapper;
private final FirewallIpWhiteMapper ipWhiteMapper;
+ private final FirewallAccessLogMapper accessLogMapper;
private final FirewallSiteMapper siteMapper;
private final NginxConfigGenerator generator;
private final IpWhitelistNginxConfigGenerator ipWhitelistGenerator;
@@ -298,4 +301,23 @@
redisUtils.lSet(NGINX_RELOAD_QUEUE_KEY, String.valueOf(siteId));
return new FebsResponse().success().message("删除成功,Nginx 配置已更新");
}
+
+ // ==================== 访问日志 ====================
+
+ @Override
+ public void recordAccess(FirewallAccessLog accessLog) {
+ accessLogMapper.insert(accessLog);
+ }
+
+ @Override
+ public IPage<FirewallAccessLog> accessLogList(FirewallAccessLog log, QueryRequest request) {
+ Page<FirewallAccessLog> page = new Page<>(request.getPageNum(), request.getPageSize());
+ LambdaQueryWrapper<FirewallAccessLog> wrapper = new LambdaQueryWrapper<FirewallAccessLog>()
+ .eq(log.getSiteId() != null, FirewallAccessLog::getSiteId, log.getSiteId())
+ .eq(log.getIsBlocked() != null, FirewallAccessLog::getIsBlocked, log.getIsBlocked())
+ .eq(StrUtil.isNotBlank(log.getCountryCode()), FirewallAccessLog::getCountryCode, log.getCountryCode())
+ .like(StrUtil.isNotBlank(log.getIp()), FirewallAccessLog::getIp, log.getIp())
+ .orderByDesc(FirewallAccessLog::getCreatedTime);
+ return accessLogMapper.selectPage(page, wrapper);
+ }
}
--
Gitblit v1.9.1