From d05ee1595c3b22cffb262937c256dd2a729f6185 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Tue, 19 Mar 2024 11:30:20 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20bi=20dataset=20=E8=A1=A8=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/bi/correct.py | 10 ++++++++++ apps/bi/migrations/0004_dataset_test_param.py | 18 ++++++++++++++++++ apps/bi/models.py | 1 + apps/bi/views.py | 6 ++++-- 4 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 apps/bi/correct.py create mode 100644 apps/bi/migrations/0004_dataset_test_param.py diff --git a/apps/bi/correct.py b/apps/bi/correct.py new file mode 100644 index 00000000..9cb4c94f --- /dev/null +++ b/apps/bi/correct.py @@ -0,0 +1,10 @@ +from apps.bi.models import Dataset + + +def correct_bi_test_param(): + dss = Dataset.objects.all() + for ds in dss: + if not ds.test_param and ds.default_param: + ds.test_param = ds.default_param + ds.default_param = {} + ds.save() diff --git a/apps/bi/migrations/0004_dataset_test_param.py b/apps/bi/migrations/0004_dataset_test_param.py new file mode 100644 index 00000000..cc503c26 --- /dev/null +++ b/apps/bi/migrations/0004_dataset_test_param.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.12 on 2024-03-19 03:21 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('bi', '0003_dataset_default_param'), + ] + + operations = [ + migrations.AddField( + model_name='dataset', + name='test_param', + field=models.JSONField(blank=True, default=dict, verbose_name='测试查询参数'), + ), + ] diff --git a/apps/bi/models.py b/apps/bi/models.py index b8f23fd4..b300b234 100644 --- a/apps/bi/models.py +++ b/apps/bi/models.py @@ -9,6 +9,7 @@ class Dataset(CommonBDModel): description = models.TextField('描述说明', default='', blank=True) sql_query = models.TextField('sql查询语句', default='', blank=True) echart_options = models.TextField(default='', blank=True) + test_param = models.JSONField('测试查询参数', default=dict, blank=True) default_param = models.JSONField('默认查询参数', default=dict, blank=True) cache_seconds = models.PositiveIntegerField('缓存秒数', default=10, blank=True) diff --git a/apps/bi/views.py b/apps/bi/views.py index cf528224..e47e265d 100644 --- a/apps/bi/views.py +++ b/apps/bi/views.py @@ -73,10 +73,12 @@ class DatasetViewSet(CustomModelViewSet): if dt.sql_query: try: + if dt.default_param: + query.update(dt.default_param) sql_f_ = check_sql_safe(dt.sql_query.format(**query)) except KeyError as e: - if is_test and dt.default_param: - new_query = dt.default_param + if is_test and dt.test_param: + new_query = dt.test_param new_query.update(query) try: sql_f_ = check_sql_safe(