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.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);
|
}
|