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/IFirewallRuleService.java |   99 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 99 insertions(+), 0 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/firewall/service/IFirewallRuleService.java b/src/main/java/cc/mrbird/febs/firewall/service/IFirewallRuleService.java
new file mode 100644
index 0000000..b278f81
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/firewall/service/IFirewallRuleService.java
@@ -0,0 +1,99 @@
+package cc.mrbird.febs.firewall.service;
+
+import cc.mrbird.febs.common.entity.FebsResponse;
+import cc.mrbird.febs.common.entity.QueryRequest;
+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 com.baomidou.mybatisplus.core.metadata.IPage;
+
+import java.util.List;
+
+/**
+ * 防火墙规则 Service 接口
+ *
+ * @author auto-generated
+ * @date 2026-07-31
+ */
+public interface IFirewallRuleService {
+
+    // ==================== 站点管理 ====================
+
+    /**
+     * 站点分页列表
+     */
+    IPage<FirewallSite> siteList(FirewallSite site, QueryRequest request);
+
+    /**
+     * 站点保存/更新
+     */
+    FebsResponse saveSite(FirewallSite site);
+
+    /**
+     * 站点删除
+     */
+    FebsResponse deleteSite(Long id);
+
+    // ==================== 国家规则管理 ====================
+
+    /**
+     * 国家规则分页列表
+     */
+    IPage<FirewallCountryRule> countryRuleList(FirewallCountryRule rule, QueryRequest request);
+
+    /**
+     * 单个国家规则保存/更新(保存后自动生成Nginx配置)
+     */
+    FebsResponse saveCountryRuleSingle(FirewallCountryRule rule);
+
+    /**
+     * 单个国家规则删除(删除后自动生成Nginx配置)
+     */
+    FebsResponse deleteCountryRule(Long id);
+
+    /**
+     * 查询站点允许的国家列表
+     */
+    List<CountryVo> getCountries(Long siteId);
+
+    /**
+     * 批量保存站点国家白名单规则(删旧→插新→生成配置→reload信号)
+     */
+    void saveCountryRule(Long siteId, List<String> countries);
+
+    /**
+     * 手动触发 Nginx 配置生成 & reload
+     */
+    void triggerNginxReload(Long siteId);
+
+    // ==================== IP白名单管理 ====================
+
+    /**
+     * IP白名单分页列表
+     */
+    IPage<FirewallIpWhite> ipWhiteList(FirewallIpWhite ipWhite, QueryRequest request);
+
+    /**
+     * 保存/更新IP白名单(保存后自动生成Nginx配置)
+     */
+    FebsResponse saveIpWhite(FirewallIpWhite ipWhite);
+
+    /**
+     * 删除IP白名单(删除后自动生成Nginx配置)
+     */
+    FebsResponse deleteIpWhite(Long id);
+
+    // ==================== 访问日志管理 ====================
+
+    /**
+     * 记录一次访问
+     */
+    void recordAccess(FirewallAccessLog log);
+
+    /**
+     * 访问日志分页列表
+     */
+    IPage<FirewallAccessLog> accessLogList(FirewallAccessLog log, QueryRequest request);
+}

--
Gitblit v1.9.1