Files
java-template/docs/bigscreen-api-interface-analysis.md
T
2025-09-09 16:30:41 +08:00

8.5 KiB

BigScreen 系统 API 接口完整分析报告

概述

本文档详细分析了 ljwx-bigscreen 系统中所有模板文件的 API 接口调用情况,为系统重构和优化提供技术支持。

分析范围

  • *_view.html 文件: 10个专门的视图文件
  • bigscreen_main.html: 主界面文件
  • personal.html: 个人健康大屏文件

API 接口分类与汇总

1. 数据获取类接口 (Data Retrieval APIs)

1.1 组织用户数据接口

GET /get_users_by_orgIdAndUserId?orgId={orgId}&userId={userId}
GET /get_devices_by_orgIdAndUserId?orgId={orgId}&userId={userId}
GET /get_health_data_by_orgIdAndUserId?orgId={orgId}&userId={userId}
GET /get_messages_by_orgIdAndUserId?orgId={orgId}&userId={userId}
GET /get_alerts_by_orgIdAndUserId?orgId={orgId}&userId={userId}

使用文件: alert_view.html, device_view.html, health_view.html, message_view.html, user_view.html 参数模式: 统一的 orgId + userId 过滤模式 响应处理: 更新相应的数据表格和统计图表

1.2 组织架构接口

GET /get_departments?orgId={orgId}&customerId={customerId}
GET /fetch_users?orgId={deptId}

使用文件: message_view.html, bigscreen_main.html 用途: 获取部门列表和用户列表,支持级联选择

1.3 个人详细数据接口

GET /get_health_data_by_deviceSn?deviceSn={deviceSn}
GET /get_personal_info?deviceSn={deviceSn}
GET /personal?deviceSn={deviceSn}

使用文件: health_view.html, user_view.html, personal.html 用途: 获取特定设备/用户的详细信息

2. 健康数据分析接口 (Health Analysis APIs)

2.1 健康评分接口

GET /api/health/score/comprehensive?orgId={orgId}&startDate={startDate}&endDate={endDate}&includeFactors=true
GET /api/health/score/comprehensive?days=7
GET /api/health/score/comprehensive?deviceSns[]={deviceSns}&includeDeviceBreakdown=true

使用文件: bigscreen_main.html 参数特点: 支持多种查询模式(时间范围、天数、设备列表) 功能: 综合健康评分计算和分析

2.2 健康基线接口

GET /health_data/chart/baseline?orgId={orgId}&startDate={startDate}&endDate={endDate}
POST /api/baseline/generate

使用文件: bigscreen_main.html 功能: 健康基线数据获取和生成

2.3 健康分析接口

GET /api/health/trends/analysis?deviceSn={deviceSn}&timeRange={timeRange}
GET /api/health/analysis/comprehensive?deviceSn={deviceSn}&days=30
GET /api/health/recommendations?analysisType=comprehensive
GET /api/health/recommendations?deviceSn={deviceSn}&analysisType=comprehensive

使用文件: bigscreen_main.html, personal.html 功能: 健康趋势分析、综合分析、健康建议生成

3. 实时数据接口 (Real-time Data APIs)

3.1 统计概览接口

GET /api/statistics/overview?orgId={orgId}&date={date}
GET /api/realtime_stats?customerId={customerId}&date={date}
GET /get_total_info

使用文件: bigscreen_main.html 功能: 实时统计数据获取,支持按日期和组织过滤

3.2 个人实时数据接口

GET /api/personal/realtime-health?userId={userId}&cardType={cardType}&deviceSn={deviceSn}
GET /api/personal/history-health?userId={userId}&cardType={cardType}&days=7
GET /api/personal/ai-analysis?userId={userId}&cardType={cardType}&analysisType=comprehensive
GET /api/personal/alerts?deviceSn={deviceSn}

使用文件: personal.html 功能: 个人健康数据的实时获取和AI分析

4. 设备管理接口 (Device Management APIs)

4.1 设备信息接口

GET /api/device/info?deviceSn={deviceSn}
GET /api/device/user_org?deviceSn={deviceSn}
GET /api/health_data/latest?deviceSn={deviceSn}

使用文件: personal.html 功能: 设备基本信息、用户组织关联、最新健康数据

4.2 设备分析接口

GET /api/device/history/trends?orgId={orgId}&userId={userId}&days={days}
GET /api/device/battery/prediction?orgId={orgId}&userId={userId}&days={days}
GET /api/device/analysis/comprehensive?orgId={orgId}&userId={userId}&days={days}

使用文件: device_view.html 功能: 设备历史趋势、电池预测、综合分析

5. 告警处理接口 (Alert Management APIs)

5.1 告警处理接口

GET ./dealAlert?alertId={alertId}
POST ./batchDealAlert
     Body: {alertIds: [...]}
POST /acknowledge_alert
     Body: {alertId, acknowledgedBy, ...}

使用文件: alert_view.html, bigscreen_main.html 功能: 单个告警处理、批量告警处理、告警确认

6. 消息通信接口 (Message Communication APIs)

6.1 消息发送接口

POST /DeviceMessage/save_message
     Content-Type: application/json
     Body: {content, type, receivers, ...}

使用文件: message_view.html 功能: 发送系统消息

7. 轨迹数据接口 (Track Data APIs)

GET /api/tracks

使用文件: track_view.html 功能: 获取轨迹数据用于地图可视化

8. 外部服务接口 (External Service APIs)

8.1 地理编码服务

GET https://restapi.amap.com/v3/geocode/regeo?key={key}&location={lng},{lat}

使用文件: bigscreen_main.html 功能: 高德地图逆地理编码服务

8.2 CDN资源

https://cdnjs.cloudflare.com/ajax/libs/socket.io/4.7.2/socket.io.js
https://webapi.amap.com/maps?v=2.0&key={key}
https://webapi.amap.com/loca?v=2.0.0&key={key}

使用文件: bigscreen_main.html 功能: Socket.IO实时通信、高德地图API

API 接口命名模式分析

当前命名问题

  1. 不一致的命名风格:

    • 旧式: /get_xxx_by_orgIdAndUserId
    • RESTful: /api/xxx/xxx
    • 简化式: ./dealAlert
  2. 参数传递不统一:

    • URL参数: ?orgId={orgId}&userId={userId}
    • 路径参数: /api/device/{deviceSn}
    • 请求体参数: JSON格式
  3. 缺乏版本控制:

    • 大部分接口没有版本标识
    • 新旧接口混用

接口使用模式统计

命名模式 接口数量 使用频率 示例
/get_xxx_by_xxx 8 高 /get_health_data_by_orgIdAndUserId
/api/xxx/xxx 15 中高 /api/health/score/comprehensive
./xxxAction 3 低 ./dealAlert
/fetch_xxx 2 低 /fetch_users

技术特性分析

1. 统一API调用函数

bigscreen_main.html 实现了统一的API调用封装:

function apiCall(url, options = {}) {
    // 自动添加customerId参数
    // 统一错误处理
    // 请求日志记录
    return fetch(urlWithCustomerId, finalOptions);
}

2. 数据缓存机制

所有 *_view.html 文件都实现了数据缓存:

window.addEventListener('message', function(event) {
    if (event.data.type === 'xxxInfo') {
        cachedXxxInfo = event.data.data;
        // 使用缓存避免重复API调用
    }
});

3. 自动刷新机制

大部分页面支持可配置的自动刷新:

  • 刷新间隔: 5-30秒
  • 手动控制: 暂停/恢复
  • 智能暂停: 页面隐藏时自动暂停

4. 错误处理机制

统一的错误处理模式:

  • 网络错误捕获
  • HTTP状态码检查
  • 用户友好的错误提示
  • 自动重试机制

性能优化特性

1. 并行数据加载

多个相关API同时调用以减少加载时间:

Promise.all([
    apiCall('/api/health/score'),
    apiCall('/api/device/info'),
    apiCall('/api/statistics/overview')
]).then(results => {
    // 并行处理结果
});

2. 条件加载

根据用户权限和页面状态条件加载数据:

  • 用户ID存在时才加载个人数据
  • 设备在线时才加载实时数据
  • 权限验证后才显示敏感信息

3. 数据预处理

前端进行数据预处理减少后端压力:

  • 日期格式标准化
  • 参数验证和清理
  • 默认值设置

安全特性

1. 参数验证

所有用户输入都进行前端验证:

  • 必填字段检查
  • 数据格式验证
  • 长度限制检查

2. 权限控制

基于用户角色和组织的访问控制:

  • orgId参数强制传递
  • 用户级别数据过滤
  • 敏感操作二次确认

重构建议概述

基于以上分析,系统需要进行以下重构优化:

  1. 统一API命名规范
  2. 实现RESTful架构
  3. 添加API版本控制
  4. 优化参数传递模式
  5. 增强错误处理机制
  6. 改善数据缓存策略
  7. 提升安全性和性能

详细的重构建议和实施方案将在下一份文档中提供。


本文档生成时间: 2025-09-09 分析范围: ljwx-bigscreen/bigscreen/bigScreen/templates/ 目录 总计分析文件: 12个主要模板文件 发现API接口: 35+个不同的接口端点