From 3ce417d9e60d014687016318ea760db8a1c87dda Mon Sep 17 00:00:00 2001 From: qixinzhi Date: Wed, 30 Aug 2023 06:41:53 +0000 Subject: [PATCH] * Finish generate metric php template. --- module/metric/model.php | 30 ++++++++++++++ module/metric/template/metric.php.tmp | 60 +++++++++++++++++++++++++++ 2 files changed, 90 insertions(+) create mode 100644 module/metric/template/metric.php.tmp diff --git a/module/metric/model.php b/module/metric/model.php index 67bd90f6ff..6b681f266c 100755 --- a/module/metric/model.php +++ b/module/metric/model.php @@ -151,6 +151,36 @@ class metricModel extends model return $returnType == 'sql' ? $sql : $statement; } + /** + * 根据度量项信息生成度量项php模板内容。 + * Generante php template content from metric information. + * + * @param int $metricID + * @access public + * @return string + */ + public function getMetricPHPTemplate(int $metricID): string + { + $metric = $this->getByID($metricID); + + $metric->nameEN = ucfirst(str_replace('_', ' ', $metric->code)); + $metric->scope = $this->lang->metric->scopeList[$metric->scope]; + $metric->object = $this->lang->metric->objectList[$metric->object]; + $metric->purpose = $this->lang->metric->purposeList[$metric->purpose]; + + $replaceFields = array('name', 'nameEN', 'code', 'scope', 'object', 'purpose', 'unit', 'desc', 'definition'); + + $content = file_get_contents($this->app->getModuleRoot() . DS . 'metric' . DS . 'template' . DS . 'metric.php.tmp'); + + foreach($replaceFields as $replaceField) + { + $replaceContent = str_replace("\n", ';', $metric->$replaceField); + $content = str_replace("{{{$replaceField}}}", $replaceContent, $content); + } + + return $content; + } + /** * 根据代号获取计算实时度量项的结果。 * Get result of calculate metric by code. diff --git a/module/metric/template/metric.php.tmp b/module/metric/template/metric.php.tmp new file mode 100644 index 0000000000..94625da2e9 --- /dev/null +++ b/module/metric/template/metric.php.tmp @@ -0,0 +1,60 @@ +dao->XXX->query(); + } + + /** + * 计算度量项。 + * + * 对数据源查询得到的数据集进行逐行计算,该函数实现对于一行数据的计算逻辑 + * 计算完成后将数据临时记录到$this->result上 + * + * @param object $row 数据源的一行数据 + * @access public + * @return void|false + */ + public function calculate($row) + { + $this->result += 1; + } + + /** + * 汇总并获取度量项计算结果。 + * + * @param array $options 筛选参数 + * @access public + * @return array 度量数据 + */ + public function getResult($options = array()) + { + $records = $this->getRecords(array('value')); + return $this->filterByOptions($records, $options); + } +}