### 问题分析
当前的`dns/server.go`文件被误删了很多内容，导致编译失败。从编译错误可以看出，`http/server.go`文件中引用了`dns.Stats`结构体中的一些字段，如`QueryTypes`、`SourceIPs`、`AvgResponseTime`、`DNSSECQueries`等，但这些字段在当前的`dns/server.go`文件中都不存在。

### 恢复方案
1. **恢复完整的结构体定义**：
   - `BlockedDomain`结构体中添加`DNSSEC`字段
   - `Stats`结构体中添加所有缺失的字段
   - `Server`结构体中添加所有缺失的字段
   - `StatsData`结构体中添加所有缺失的字段

2. **恢复所有缺失的方法**：
   - `updateClientStats`
   - `updateResolvedDomainStatsWithDNSSEC`
   - `updateDomainDNSSECStatus`
   - `addQueryLog`
   - `GetStartTime`
   - `GetQueryLogs`
   - `GetQueryLogsCount`
   - `GetQueryStats`
   - `GetTopClients`
   - `GetDailyStats`
   - `GetMonthlyStats`
   - `getIpGeolocation`
   - `fetchIpGeolocationFromAPI`
   - `loadQueryLogs`
   - `saveQueryLogs`
   - `startCpuUsageMonitor`
   - `getSystemCpuUsage`

3. **恢复DNSSEC相关功能**：
   - 恢复`forwardDNSRequestWithCache`函数，替代当前的`forwardDNSRequest`函数
   - 恢复DNSSEC验证逻辑
   - 恢复DNS缓存功能

### 具体修改
1. 替换整个`dns/server.go`文件，恢复完整的内容
2. 确保所有结构体字段和方法都完整存在
3. 确保DNSSEC功能正常工作

### 测试计划
1. 编译恢复后的代码
2. 启动DNS服务器并启用DNSSEC
3. 使用dig命令测试DNSSEC记录查询
4. 检查HTTP控制台是否正常工作
5. 检查日志中是否有DNSSEC验证相关的记录