okvpn/graph-widget-bundle

基于数据库查询构建图库

安装: 403

依赖项: 0

建议者: 0

安全: 0

星标: 0

关注者: 3

分支: 0

开放问题: 0

类型:symfony-bundle

dev-master 2018-07-06 16:31 UTC

This package is auto-updated.

Last update: 2024-08-29 04:54:22 UTC


README

此OroPlatform捆绑包提供基于自定义原生SQL查询构建折线图的功能。

安装

使用composer安装,遵循官方Composer文档

  1. 通过composer安装
composer require okvpn/graph-widget-bundle
  1. 运行oro平台更新
# symfony 3
rm -r var/cache/*
php bin/console oro:platform:update --force

# symfony 2
rm -r app/cache/*
php app/console oro:platform:update --force

配置

  1. 创建数据库集成。

注意:最好创建一个只读数据库用户。仪表板小部件使用单独的数据库连接。

1 img

  1. 将小部件添加到仪表板。

2 img

  1. 更新小部件配置

3 img

SQL格式

您可以构建单行或多行图。数据将从“x”,“y”,“line”列中获取。其中:“x”-x轴,“y”-y轴,“line”-分组列,用于构建多行图。

线图示例。

SELECT avg_status as y, created_at as x
FROM okvpn_radar
WHERE time > extract(epoch from now()) - 86400
ORDER BY id DESC LIMIT 1000;

执行SQL查询的结果

4 img

多行图示例。

SELECT tmp.x, tmp.y, tmp.line FROM (
  SELECT ROUND(AVG(avg_status), 3) AS y, created_at::date AS x, 'AVG' AS line
  FROM okvpn_radar
  WHERE created_at > now() - INTERVAL '50 day' AND type = 'UMMN' GROUP BY x
  UNION ALL (
    SELECT ROUND(MAX(avg_status), 3) AS y, created_at::date AS x, 'MAX' AS line
    FROM okvpn_radar
    WHERE created_at > now() - INTERVAL '50 day' AND type = 'UMMN' GROUP BY x
  )
) tmp ORDER BY tmp.x DESC;

执行SQL查询的结果

5 img

权限

您可以使用ACL权限okvpn_sql_query禁用更新SQL查询。

6 img

许可证

MIT许可证。查看LICENSE