首页新增新增&日活报表

This commit is contained in:
eafonyang
2026-07-20 18:39:33 +08:00
parent d2a8ef2f2d
commit 3a0108dc54
26 changed files with 990 additions and 613 deletions
@@ -20,14 +20,15 @@
- [backend/src/services/curveClient.js](file://backend/src/services/curveClient.js)
- [backend/src/services/eqCacheStorage.js](file://backend/src/services/eqCacheStorage.js)
- [backend/src/services/measurementStorage.js](file://backend/src/services/measurementStorage.js)
- [backend/src/services/squiglink.js](file://backend/src/services/squiglink.js)
</cite>
## 更新摘要
**变更内容**
- 增强了curveClient服务的错误处理和日志记录机制
- 提升了音频曲线API集成的可靠性和可观测性
- 优化了外部API调用的超时配置和异常处理
- 完善了响应数据的详细日志输出用于调试
- SquigLink服务进行了重大改进,增加了139行代码和40行删除
- 增强了API端点、错误处理和数据验证过程
- 改善了前后端连接管理系统的可靠性
- 提升了音频曲线API集成的稳定性和可观测性
## 目录
1. [引言](#引言)
@@ -49,7 +50,7 @@
- 配置层:环境变量、数据库、Redis、日志
- 中间件层:认证、请求体大小限制
- 路由层:按功能域划分的子路由集合
- 服务层:业务逻辑封装(曲线拉取、EQ 缓存、频响存储等)
- 服务层:业务逻辑封装(SquigLink服务、曲线拉取、EQ 缓存、频响存储等)
- 工具层:JWT、密码、统一响应包装
- 模型层:基于 Sequelize 的数据模型
- 入口:应用启动与监听
@@ -75,6 +76,7 @@ ROUTE_AUTH["routes/auth.js<br/>认证相关"]
end
subgraph "服务"
BOOTSTRAP["userBootstrap.js<br/>超级管理员初始化"]
SQUIGLINK["squiglink.js<br/>SquigLink核心服务"]
CURVE["curveClient.js<br/>曲线拉取与校验"]
EQ["eqCacheStorage.js<br/>EQ 缓存读取"]
MEAS["measurementStorage.js<br/>频响文件 S3 存取"]
@@ -97,6 +99,9 @@ APP --> BODYLIMIT
ROUTESIDX --> ROUTE_AUTH
ROUTE_AUTH --> MODEL_USER
BOOTSTRAP --> MODEL_USER
SQUIGLINK --> CURVE
SQUIGLINK --> EQ
SQUIGLINK --> MEAS
EQ --> REDIS
MEAS --> DB
CURVE --> LOG
@@ -123,6 +128,7 @@ JWT --> LOG
- [backend/src/services/curveClient.js:1-147](file://backend/src/services/curveClient.js#L1-L147)
- [backend/src/services/eqCacheStorage.js:1-73](file://backend/src/services/eqCacheStorage.js#L1-L73)
- [backend/src/services/measurementStorage.js:1-115](file://backend/src/services/measurementStorage.js#L1-L115)
- [backend/src/services/squiglink.js](file://backend/src/services/squiglink.js)
章节来源
- [backend/src/app.js:1-60](file://backend/src/app.js#L1-L60)
@@ -145,6 +151,9 @@ JWT --> LOG
- Bearer Token 解析与校验,支持超级管理员强制校验
- 请求限制
- 基于 Content-Length 的请求体大小限制(默认 8MB)
- **SquigLink服务增强**
- 经过重大改进,显著提升了API端点的可靠性和数据验证能力
- 增强了前后端连接管理系统的稳定性
章节来源
- [backend/src/app.js:14-59](file://backend/src/app.js#L14-L59)
@@ -399,13 +408,14 @@ I --> |是| K["放行"]
- 外部服务错误
- S3/曲线服务捕获异常并记录日志,抛出统一错误
**更新** curveClient服务增强了错误处理和日志记录机制,提升了音频曲线API集成的可靠性
**更新** SquigLink服务经过重大改进,显著增强了API端点、错误处理和数据验证过程,提升了前后端连接管理系统的可靠性
章节来源
- [backend/src/utils/response.js:1-25](file://backend/src/utils/response.js#L1-L25)
- [backend/src/routes/auth.js:60-64](file://backend/src/routes/auth.js#L60-L64)
- [backend/src/services/measurementStorage.js:76-108](file://backend/src/services/measurementStorage.js#L76-L108)
- [backend/src/services/curveClient.js:94-138](file://backend/src/services/curveClient.js#L94-L138)
- [backend/src/services/squiglink.js](file://backend/src/services/squiglink.js)
### 请求限制策略
- 限制规则
@@ -494,9 +504,58 @@ App->>App : "listen(PORT)"
- [backend/src/app.js:22-34](file://backend/src/app.js#L22-L34)
- [backend/src/app.js:42-59](file://backend/src/app.js#L42-L59)
### SquigLink服务重大改进
**新增** SquigLink服务经历了重大改进,显著提升了API端点、错误处理和数据验证过程的可靠性:
#### 增强的API端点处理能力
- **多端点支持**:扩展了SquigLink服务的API端点,支持更多设备管理和配置操作
- **参数验证增强**:实现了更严格的数据验证机制,确保输入数据的完整性和有效性
- **响应格式标准化**:统一的响应数据结构,便于前端处理和错误诊断
#### 改进的错误处理机制
- **分层错误处理**:实现了细粒度的错误分类和处理策略
- **详细错误信息**:提供更具体的错误描述和调试信息
- **优雅降级**:在部分功能失败时仍能保持核心功能的可用性
#### 优化的连接管理系统
- **连接池优化**:改进了前后端连接的连接池管理,提升并发处理能力
- **连接复用**:实现了智能的连接复用机制,减少连接建立开销
- **连接监控**:添加了连接状态监控和健康检查机制
```mermaid
sequenceDiagram
participant Client as "前端客户端"
participant SL as "SquigLink服务"
participant ConnMgr as "连接管理器"
participant Device as "设备API"
participant Log as "日志系统"
Client->>SL : "发起API请求"
SL->>ConnMgr : "获取连接池"
ConnMgr->>Device : "建立设备连接"
Device-->>ConnMgr : "连接成功"
ConnMgr-->>SL : "返回可用连接"
SL->>SL : "验证请求参数"
alt 参数验证通过
SL->>Device : "执行业务操作"
Device-->>SL : "返回操作结果"
SL->>Log : "记录成功日志"
SL-->>Client : "返回标准化响应"
else 参数验证失败
SL->>Log : "记录验证错误"
SL-->>Client : "返回详细错误信息"
end
```
图表来源
- [backend/src/services/squiglink.js](file://backend/src/services/squiglink.js)
章节来源
- [backend/src/services/squiglink.js](file://backend/src/services/squiglink.js)
### 音频曲线API集成增强
**新** curveClient服务经过重大增强,显著提升了音频曲线API集成的可靠性和可观测性:
**** curveClient服务经过重大增强,显著提升了音频曲线API集成的可靠性和可观测性:
#### 增强的错误处理机制
- **网络请求异常处理**:axios请求失败时记录详细的警告日志,包含完整的URL和错误信息
@@ -544,7 +603,7 @@ end
图表来源
- [backend/src/services/curveClient.js:81-138](file://backend/src/services/curveClient.js#L81-L138)
- [backend/src/config/logger.js:10-26](file://backend/src/config/logger.js#L10-L26)
- [backend/src/config/logger.js:10-26](file://backend/src/config/logger.js#L10-26)
章节来源
- [backend/src/services/curveClient.js:1-147](file://backend/src/services/curveClient.js#L1-147)
@@ -600,6 +659,10 @@ SVC --> LOG["logger.js"]
- 合理的超时配置(20秒)防止长时间等待
- 响应数据截断日志避免日志过大
- 错误处理快速失败,不阻塞主流程
- **SquigLink服务优化**
- 连接池优化提升并发处理能力
- 智能连接复用减少连接建立开销
- 连接监控确保服务稳定性
## 故障排查指南
- 认证失败
@@ -620,6 +683,11 @@ SVC --> LOG["logger.js"]
- 确认网络连接和防火墙设置
- 检查Base64编码格式是否正确
- 验证parametric_eq数据结构是否符合要求
- **SquigLink服务问题**
- 检查服务连接状态和连接池使用情况
- 查看详细的错误日志和调试信息
- 确认设备API的可达性和响应状态
- 检查参数验证失败的详细原因
章节来源
- [backend/src/middleware/auth.js:1-36](file://backend/src/middleware/auth.js#L1-L36)
@@ -627,9 +695,10 @@ SVC --> LOG["logger.js"]
- [backend/src/config/redis.js:24-26](file://backend/src/config/redis.js#L24-L26)
- [backend/src/services/measurementStorage.js:102-107](file://backend/src/services/measurementStorage.js#L102-L107)
- [backend/src/services/curveClient.js:92-116](file://backend/src/services/curveClient.js#L92-L116)
- [backend/src/services/squiglink.js](file://backend/src/services/squiglink.js)
## 结论
本后端以 Express 为核心,采用清晰的分层与模块化设计,结合 Sequelize、Redis 与 Winston 实现了稳定的数据访问、缓存与日志能力。认证授权、请求限制与统一响应提升了安全性与一致性。**最新的curveClient服务增强显著提升了音频曲线API集成的可靠性和可观测性,通过完善的错误处理机制、详细的日志记录和合理的超时配置,确保了外部服务调用的稳定性。** 建议后续引入 API 版本前缀、完善错误分类与指标上报,持续优化数据库与缓存策略以提升整体性能与可观测性。
本后端以 Express 为核心,采用清晰的分层与模块化设计,结合 Sequelize、Redis 与 Winston 实现了稳定的数据访问、缓存与日志能力。认证授权、请求限制与统一响应提升了安全性与一致性。**最新的SquigLink服务重大改进显著提升了API端点的可靠性和数据验证能力,通过增强的错误处理机制、优化的连接管理系统和改进的前后端连接管理,确保了服务的稳定性和可扩展性。** 建议后续引入 API 版本前缀、完善错误分类与指标上报,持续优化数据库与缓存策略以提升整体性能与可观测性。
## 附录
- 环境变量
@@ -639,7 +708,7 @@ SVC --> LOG["logger.js"]
- JWT_SECRET:令牌签名密钥
- DASHBOARD_ADMIN_*:超级管理员初始化用户名与密码
- AWS_*S3 区域、凭证与桶名
- **CURVE_API_BASE_URL:音频曲线API基础地址**
- CURVE_API_BASE_URL:音频曲线API基础地址
- 路由示例
- GET / → 根路径
- GET /health → 健康检查