datai-vue/doc/salesforce/integration/DataiIntegrationMetadataChangeController/0006-trend-statistics.md
Kris 1177dbde35 feat: 添加元数据变更中心和实时同步统计页面
- 新增元数据变更中心页面 (metadatachange/index.vue)
  - 集成统计卡片显示变更数据
  - 支持按变更类型、操作类型、同步状态分组统计
  - 支持趋势统计图表展示
  - 优化查询条件布局,移至页面顶部

- 新增实时同步统计页面 (statistics/realtime/index.vue)
  - 显示实时同步服务状态和控制按钮
  - 统计启用实时同步的对象数量
  - 自动刷新统计数据(30秒间隔)

- 优化数据同步页面 (datasync/index.vue)
  - 修正字段映射以匹配API响应
  - 更新统计卡片显示实际数据

- 优化同步日志统计页面 (statistics/synclog/index.vue)
  - 更新表格列以匹配API响应结构
  - 更新查询参数和映射函数

- 更新导航栏菜单 (Navbar/index.vue)
  - 添加元数据变更中心菜单项

- 新增API接口 (realtimeservice.js)
  - 添加getStatistics函数获取实时同步统计数据

- 新增接口文档
  - DataiIntegrationRealtimeSyncController 接口文档
  - DataiIntegrationRealtimeSyncLogController 接口文档
2026-01-13 13:50:07 +08:00

5.9 KiB
Raw Blame History

接口文档:获取趋势变更统计信息

接口信息

  • 接口名称: 获取趋势变更统计信息
  • 接口路径: /integration/change/statistics/trend
  • 请求方法: GET
  • 模块归属: integration
  • 版本号: v1.0
  • 创建日期: 2026-01-09
  • 最后更新: 2026-01-09

功能描述

获取元数据变更的趋势统计信息支持按天、周、月、季度等时间维度查看变更趋势可根据变更类型、操作类型、对象API名称、同步状态、是否自定义和时间范围等条件进行筛选。

请求参数

查询参数

参数名 类型 必填 描述 示例 默认值
timeUnit String 时间维度支持day, week, month, quarter day
changeType String 变更类型 OBJECT
operationType String 操作类型 CREATE
objectApi String 对象API名称 Account
syncStatus Boolean 同步状态 false
isCustom Boolean 是否自定义 true
startTime String 开始时间格式yyyy-MM-dd HH:mm:ss 或 yyyy-MM-dd 2026-01-01 00:00:00
endTime String 结束时间格式yyyy-MM-dd HH:mm:ss 或 yyyy-MM-dd 2026-01-07 23:59:59

响应数据

成功响应

HTTP 状态码: 200 OK

{
  "code": 200,
  "message": "操作成功",
  "data": {
    "totalCount": 100,
    "timeUnit": "day",
    "trends": [
      {
        "time": "2026-01-01",
        "count": 15
      },
      {
        "time": "2026-01-02",
        "count": 20
      },
      {
        "time": "2026-01-03",
        "count": 10
      },
      {
        "time": "2026-01-04",
        "count": 25
      },
      {
        "time": "2026-01-05",
        "count": 30
      }
    ]
  }
}
字段名 类型 描述 示例
totalCount Integer 总变更数 100
timeUnit String 时间维度 day
trends Array 趋势数据 按时间维度统计的变更数据
trends[].time String 时间点 2026-01-01
trends[].count Integer 该时间点的变更数 15

失败响应

HTTP 状态码: 400 Bad Request

{
  "code": 400,
  "message": "时间维度不正确支持的维度day, week, month, quarter",
  "data": null
}
错误码 错误信息 描述
400 时间维度不正确 时间维度参数错误
400 开始时间格式不正确 开始时间格式错误
400 结束时间格式不正确 结束时间格式错误
403 无权限执行此操作 当用户没有integration:change:statistics权限时
500 统计失败 服务器内部错误导致统计失败

接口示例

请求示例

curl -X GET "http://localhost:8080/integration/change/statistics/trend?timeUnit=day&startTime=2026-01-01&endTime=2026-01-05" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer [token]"

响应示例

成功:

{
  "code": 200,
  "message": "操作成功",
  "data": {
    "totalCount": 100,
    "timeUnit": "day",
    "trends": [
      {
        "time": "2026-01-01",
        "count": 15
      },
      {
        "time": "2026-01-02",
        "count": 20
      },
      {
        "time": "2026-01-03",
        "count": 10
      },
      {
        "time": "2026-01-04",
        "count": 25
      },
      {
        "time": "2026-01-05",
        "count": 30
      }
    ]
  }
}

失败:

{
  "code": 400,
  "message": "时间维度不正确支持的维度day, week, month, quarter",
  "data": null
}

错误处理

  • 400 Bad Request: 时间维度错误、时间格式错误或其他参数错误
  • 403 Forbidden: 用户无权限执行此操作
  • 500 Internal Server Error: 服务器内部错误导致统计失败

注意事项

  • 统计操作可能耗时较长,取决于数据量大小
  • timeUnit参数为必填支持的维度day, week, month, quarter
  • 支持多种筛选条件与时间维度组合使用
  • 时间参数支持两种格式yyyy-MM-dd HH:mm:ss 或 yyyy-MM-dd
  • 当未提供时间范围时,会根据时间维度自动选择合适的时间范围

相关接口

实现细节

  • 接口通过构建参数Map调用dataiIntegrationMetadataChangeService.getChangeStatisticsByTrend()方法获取统计信息
  • 服务层会根据传入的时间维度和筛选条件进行趋势统计
  • 支持时间维度验证和时间格式验证
  • 统计结果包括总变更数和按时间维度统计的趋势数据

测试信息

测试环境

  • 环境: 开发环境
  • 版本: v1.0

测试用例

测试场景 输入参数 预期结果 实际结果 状态
按天维度查看趋势 timeUnit=day&startTime=2026-01-01&endTime=2026-01-05 操作成功,返回按天统计的趋势数据 操作成功,返回按天统计的趋势数据 通过
按周维度查看趋势 timeUnit=week&startTime=2025-12-28&endTime=2026-01-10 操作成功,返回按周统计的趋势数据 操作成功,返回按周统计的趋势数据 通过
按月维度查看趋势 timeUnit=month&startTime=2025-12-01&endTime=2026-02-28 操作成功,返回按月统计的趋势数据 操作成功,返回按月统计的趋势数据 通过
无效时间维度 timeUnit=invalid 操作失败,返回时间维度错误信息 操作失败,返回时间维度错误信息 通过
无权限获取统计 任意参数 操作失败返回403错误 操作失败返回403错误 通过