From 395ba38d895d9026f0fcba30dca0b5b84b213589 Mon Sep 17 00:00:00 2001 From: xieqiyu Date: Thu, 23 Mar 2023 05:27:20 +0000 Subject: [PATCH] * Code for task#86981. --- module/upgrade/model.php | 53 ++++++++++++++++++++++++++++++++++------ 1 file changed, 45 insertions(+), 8 deletions(-) diff --git a/module/upgrade/model.php b/module/upgrade/model.php index 7bcdd83535..734583646d 100644 --- a/module/upgrade/model.php +++ b/module/upgrade/model.php @@ -8044,29 +8044,29 @@ class upgradeModel extends model $this->loadModel('dataset'); $this->loadModel('dataview'); - /* Create default module. */ - $defaultModuleID = $this->dao->select('id')->from(TABLE_MODULE)->where('type')->eq('dataview')->andWhere('name')->eq($this->lang->dataview->default)->fetch('id'); - if(empty($defaultModuleID)) + /* Create built-in module. */ + $builtInModuleID = $this->dao->select('id')->from(TABLE_MODULE)->where('type')->eq('dataview')->andWhere('name')->eq($this->lang->dataview->builtIn)->fetch('id'); + if(empty($builtInModuleID)) { $group = new stdclass(); $group->root = 0; - $group->name = $this->lang->dataview->default; + $group->name = $this->lang->dataview->builtIn; $group->parent = 0; $group->grade = 1; $group->order = 10; $group->type = 'dataview'; $this->dao->insert(TABLE_MODULE)->data($group)->exec(); - $defaultModuleID = $this->dao->lastInsertID(); - $this->dao->update(TABLE_MODULE)->set("`path` = CONCAT(',', `id`, ',')")->where('id')->eq($defaultModuleID)->exec(); + $builtInModuleID = $this->dao->lastInsertID(); + $this->dao->update(TABLE_MODULE)->set("`path` = CONCAT(',', `id`, ',')")->where('id')->eq($builtInModuleID)->exec(); } $dataview = new stdclass(); - $dataview->group = $defaultModuleID; + $dataview->group = $builtInModuleID; $dataview->createdBy = 'system'; $dataview->createdDate = helper::now(); - /* Process default dataset. */ + /* Process built-in dataset. */ foreach($this->lang->dataset->tables as $code => $dataset) { $dataview->name = $dataset['name']; @@ -8099,6 +8099,43 @@ class upgradeModel extends model if(!empty($dataview->view) and !empty($dataview->sql)) $this->dataview->createViewInDB($dataviewID, $dataview->view, $dataview->sql); } + /* Create custom module. */ + $defaultModuleID = $this->dao->select('id')->from(TABLE_MODULE)->where('type')->eq('dataview')->andWhere('name')->eq($this->lang->dataview->default)->fetch('id'); + if(empty($defaultModuleID)) + { + $group = new stdclass(); + $group->root = 0; + $group->name = $this->lang->dataview->default; + $group->parent = 0; + $group->grade = 1; + $group->order = 10; + $group->type = 'dataview'; + + $this->dao->insert(TABLE_MODULE)->data($group)->exec(); + $defaultModuleID = $this->dao->lastInsertID(); + $this->dao->update(TABLE_MODULE)->set("`path` = CONCAT(',', `id`, ',')")->where('id')->eq($defaultModuleID)->exec(); + } + + $dataview = new stdclass(); + $dataview->group = $defaultModuleID; + $dataview->createdBy = 'system'; + $dataview->createdDate = helper::now(); + + /* Process custom dataset. */ + $customDataset = $this->dao->select('*')->from(TABLE_DATASET)->fetchAll('id'); + foreach($customDataset as $datasetID => $dataset) + { + $dataview->name = $dataset->name; + $dataview->code = 'custom_' . $datasetID; + $dataview->view = 'ztv_custom_' . $datasetID; + $dataview->sql = $dataset->sql; + $dataview->fields = $dataset->fields; + + $this->dao->insert(TABLE_DATAVIEW)->data($dataview)->exec(); + $dataviewID = $this->dao->lastInsertID(); + if(!empty($dataview->view) and !empty($dataview->sql)) $this->dataview->createViewInDB($dataviewID, $dataview->view, $dataview->sql); + } + return true; }